summaryrefslogtreecommitdiffstats
path: root/kmix
diff options
context:
space:
mode:
Diffstat (limited to 'kmix')
-rw-r--r--kmix/CMakeL10n.txt6
-rw-r--r--kmix/CMakeLists.txt33
-rw-r--r--kmix/kmix.cpp22
-rw-r--r--kmix/kmix.desktop83
-rw-r--r--kmix/kmixapplet.cpp6
-rw-r--r--kmix/kmixapplet.desktop102
-rw-r--r--kmix/kmixctrl_restore.desktop66
-rw-r--r--kmix/kmixdockwidget.cpp103
-rw-r--r--kmix/kmixdockwidget.h9
-rw-r--r--kmix/ksmallslider.cpp8
-rw-r--r--kmix/ksmallslider.h1
-rw-r--r--kmix/mdwenum.h1
-rw-r--r--kmix/mdwslider.h1
-rw-r--r--kmix/mdwswitch.h1
-rw-r--r--kmix/mixdevicewidget.h1
-rw-r--r--kmix/mixer.cpp83
-rw-r--r--kmix/mixer.h3
-rw-r--r--kmix/mixer_alsa9.cpp109
-rw-r--r--kmix/mixer_backend.h1
-rw-r--r--kmix/mixer_oss.h2
-rw-r--r--kmix/mixer_oss4.h2
-rw-r--r--kmix/mixertoolbox.cpp20
-rw-r--r--kmix/restore_kmix_volumes.desktop51
-rw-r--r--kmix/viewbase.cpp41
-rw-r--r--kmix/viewbase.h2
-rw-r--r--kmix/viewdockareapopup.cpp8
-rw-r--r--kmix/volume.h1
27 files changed, 279 insertions, 487 deletions
diff --git a/kmix/CMakeL10n.txt b/kmix/CMakeL10n.txt
index eae68bc2..b0e05b53 100644
--- a/kmix/CMakeL10n.txt
+++ b/kmix/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "kmix" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kmix-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kmix/CMakeLists.txt b/kmix/CMakeLists.txt
index 08006206..139b2535 100644
--- a/kmix/CMakeLists.txt
+++ b/kmix/CMakeLists.txt
@@ -25,12 +25,35 @@ link_directories(
##### other data ################################
-install( FILES kmix.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES kmix.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kmix.desktop
+ PO_DIR kmix-desktops
+)
+
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/kmix.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+)
+
install( FILES kmixui.rc DESTINATION ${DATA_INSTALL_DIR}/kmix )
-install( FILES restore_kmix_volumes.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
-install( FILES kmixapplet.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/applets )
-install( FILES kmixctrl_restore.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+tde_create_translated_desktop(
+ SOURCE restore_kmix_volumes.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+ PO_DIR kmix-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kmixapplet.desktop
+ DESTINATION ${DATA_INSTALL_DIR}/kicker/applets
+ PO_DIR kmix-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kmixctrl_restore.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmix-desktops
+)
##### kmix_panelapplet (module) #################
diff --git a/kmix/kmix.cpp b/kmix/kmix.cpp
index fc33d671..66a7692e 100644
--- a/kmix/kmix.cpp
+++ b/kmix/kmix.cpp
@@ -46,7 +46,6 @@
#include <tdeaccel.h>
#include <kglobalaccel.h>
#include <kkeydialog.h>
-#include <tdepopupmenu.h>
// application specific includes
#include "mixertoolbox.h"
@@ -119,7 +118,7 @@ KMixWindow::initActions()
(void) new TDEAction( i18n( "Hardware &Information" ), 0, TQT_TQOBJECT(this), TQT_SLOT( slotHWInfo() ), actionCollection(), "hwinfo" );
(void) new TDEAction( i18n( "Hide Mixer Window" ), Key_Escape, TQT_TQOBJECT(this), TQT_SLOT(hide()), actionCollection(), "hide_kmixwindow" );
- m_globalAccel = new TDEGlobalAccel( TQT_TQOBJECT(this) );
+ m_globalAccel = new TDEGlobalAccel(this, "KMix");
m_globalAccel->insert( "Increase volume", i18n( "Increase Volume of Master Channel"), TQString(),
TDEShortcut(TQString("XF86AudioRaiseVolume")), TDEShortcut(TQString("XF86AudioRaiseVolume")), TQT_TQOBJECT(this), TQT_SLOT( increaseVolume() ) );
m_globalAccel->insert( "Decrease volume", i18n( "Decrease Volume of Master Channel"), TQString(),
@@ -194,27 +193,8 @@ KMixWindow::updateDocking()
if (m_showDockWidget)
{
-
// create dock widget
- // !! This should be a View in the future
m_dockWidget = new KMixDockWidget( Mixer::mixers().first(), this, "mainDockWidget", m_volumeWidget, m_dockIconMuting );
-
-/* Belongs in KMixDockWidget
- // create RMB menu
- TDEPopupMenu *menu = m_dockWidget->contextMenu();
-
- // !! check this
- TDEAction *a = actionCollection()->action( "dock_mute" );
- if ( a ) a->plug( menu );
-*/
-
- /*
- * Mail from 31.1.2005: "make sure your features are at least string complete"
- * Preparation for fixing Bug #55078 - scheduled for KDE3.4.1 .
- * This text will be plugged into the dock-icon popup menu.
- */
- TQString selectChannel = i18n("Select Channel"); // This text will be used in KDE3.4.1 !!!
-
m_dockWidget->show();
}
}
diff --git a/kmix/kmix.desktop b/kmix/kmix.desktop
index 7b5a68af..c2d55119 100644
--- a/kmix/kmix.desktop
+++ b/kmix/kmix.desktop
@@ -7,86 +7,11 @@ Type=Application
MimeType=
Terminal=false
Icon=kmix
-GenericName=Sound Mixer
-GenericName[af]=Klank Menger
-GenericName[ar]=مازج الصوت
-GenericName[bg]=Аудио миксер
-GenericName[br]=Mesker ar Son
-GenericName[bs]=Zvučni mikser
-GenericName[ca]=Mesclador de so
-GenericName[cs]=Zvukový směšovač
-GenericName[cy]=Cymysgydd Sŵn
-GenericName[da]=Lydmikser
-GenericName[de]=Lautstärkeregler
-GenericName[el]=Μείκτης ήχου
-GenericName[eo]=Sonormiksilo
-GenericName[es]=Un mezclador audio
-GenericName[et]=Helimikser
-GenericName[eu]=Soinu nahasgailua
-GenericName[fa]=مخلوط‌کن صدا
-GenericName[fi]=Äänimikseri
-GenericName[fr]=Console de mixage
-GenericName[ga]=Meascthóir Fuaime
-GenericName[gl]=Mesturador de Son
-GenericName[he]=מערבל צליל
-GenericName[hi]=ध्वनि मिक्सर
-GenericName[hr]=Mikser zvuka
-GenericName[hu]=Hangkeverő
-GenericName[is]=Hljóðblöndun
-GenericName[it]=Mixer audio
-GenericName[ja]=サウンドミキサー
-GenericName[kk]=Дыбыс микшері
-GenericName[km]=កម្មវិធី​លាយ​សំឡេង
-GenericName[ko]=소리 믹서
-GenericName[lt]=Garsų maišiklis
-GenericName[lv]=Skaņas Mikšeris
-GenericName[mk]=Миксета за звук
-GenericName[ms]=Pengadun Bunyi
-GenericName[nb]=Lydmikser
-GenericName[nds]=Klangmischer
-GenericName[ne]=ध्वनि मिक्सर
-GenericName[nl]=Geluidsmixer
-GenericName[nn]=Lydmiksar
-GenericName[pa]=ਧੁਨੀ ਮਿਕਸਰ
-GenericName[pl]=Ustawienia głośności
-GenericName[pt]=Mesa de Mistura de Áudio
-GenericName[pt_BR]=Mixagem de som
-GenericName[ro]=Mixer de sunet
-GenericName[ru]=Звуковой микшер
-GenericName[se]=Jietnamixer
-GenericName[sk]=Zvukový mixér
-GenericName[sl]=Mešalnik zvoka
-GenericName[sr]=Звучна миксета
-GenericName[sr@Latn]=Zvučna mikseta
-GenericName[sv]=Ljudmixer
-GenericName[ta]=ஒலி ஒன்றுசேர்ப்பான்
-GenericName[tg]=Омехтакунаки Овоз
-GenericName[th]=โปรแกรมผสมเสียง
-GenericName[tr]=Ses Denetimleri
-GenericName[uk]=Аудіомікшер
-GenericName[uz]=Audio mikser
-GenericName[uz@cyrillic]=Аудио миксер
-GenericName[ven]=Tshitanganisi tsha mubvumo
-GenericName[wa]=Maxheu d' sons
-GenericName[xh]=Umxubi WokuvakalayoU
-GenericName[zh_CN]=混音器
-GenericName[zh_HK]=聲音混音器
-GenericName[zh_TW]=音效混音器
-GenericName[zu]=Umxubi Womsindo
+
Name=KMix
-Name[af]=Kmix
-Name[bn]=কে-মিক্স
-Name[ca]=Kmix
-Name[eo]=Miksilo
-Name[hi]=के-मिक्स
-Name[lv]=KMiks
-Name[ne]=केडीई मिक्स
-Name[pa]=ਕੇ-ਮਿਕਸ
-Name[sv]=Kmix
-Name[ta]=கேமிக்ஸ்
-Name[tg]=KОмезиш
-Name[ven]=U tanganisa ha K
-Name[zh_TW]=KMix 混音器
+
+GenericName=Sound Mixer
+
X-TDE-StartupNotify=true
X-DCOP-ServiceType=Unique
X-TDE-autostart-phase=2
diff --git a/kmix/kmixapplet.cpp b/kmix/kmixapplet.cpp
index 23c3768f..0bcdd3f2 100644
--- a/kmix/kmixapplet.cpp
+++ b/kmix/kmixapplet.cpp
@@ -32,7 +32,7 @@
#include <tqpushbutton.h>
#include <tqradiobutton.h>
#include <tqwmatrix.h>
-
+#include <tqtooltip.h>
// KDE
#include <tdeaboutapplication.h>
@@ -206,6 +206,7 @@ KMixApplet::KMixApplet( const TQString& configFile, Type t,
// We do NOT know which mixer to use => ask the User
m_errorLabel = new TQPushButton( i18n("Select Mixer"), this );
m_errorLabel->setGeometry(0, 0, m_errorLabel->sizeHint().width(), m_errorLabel->sizeHint().height() );
+ TQToolTip::add(m_errorLabel, "Select one of the available mixers");
resize( m_errorLabel->sizeHint() );
connect( m_errorLabel, TQT_SIGNAL(clicked()), this, TQT_SLOT(selectMixer()) );
}
@@ -287,6 +288,7 @@ void KMixApplet::loadConfig( TDEConfig *config, const TQString &grp )
if ( m_mixerWidget ) {
//config->setGroup( grp );
KMixToolBox::loadConfig(m_mixerWidget->_mdws, config, grp, "PanelApplet" );
+ connect(m_mixerWidget, TQT_SIGNAL(selectMixer()), this, TQT_SLOT(selectMixer()));
}
}
@@ -322,7 +324,7 @@ void KMixApplet::selectMixer()
bool ok = FALSE;
TQString res = KInputDialog::getItem( i18n("Mixers"),
i18n("Available mixers:"),
- lst, 1, FALSE, &ok, this );
+ lst, 0, FALSE, &ok, this );
if ( ok )
{
Mixer *mixer = Mixer::mixers().at( lst.findIndex( res ) );
diff --git a/kmix/kmixapplet.desktop b/kmix/kmixapplet.desktop
index ea61a672..179517dc 100644
--- a/kmix/kmixapplet.desktop
+++ b/kmix/kmixapplet.desktop
@@ -1,110 +1,8 @@
[Desktop Entry]
Type=Plugin
Name=Sound Mixer
-Name[bg]=Аудио миксер
-Name[br]=Mesker ar Son
-Name[bs]=Zvučni mikser
-Name[ca]=Mesclador de so
-Name[cs]=Zvukový směšovač
-Name[cy]=Cymysgydd Sŵn
-Name[da]=Lydmikser
-Name[de]=Lautstärkeregler
-Name[el]=Μείκτης ήχου
-Name[eo]=Sonmiksilo
-Name[es]=Mezclador de audio
-Name[et]=Helimikser
-Name[eu]=Soinu nahasgailua
-Name[fa]=مخلوط‌کن صدا
-Name[fi]=Äänimikseri
-Name[fr]=Console de mixage
-Name[ga]=Meascthóir Fuaime
-Name[gl]=Mesturador de Son
-Name[he]=מערבל צליל
-Name[hi]=ध्वनि मिक्सर
-Name[hr]=Mixer zvuka
-Name[hu]=Hangkeverő
-Name[is]=Hljóðblöndun
-Name[it]=Mixer sonoro
-Name[ja]=サウンドミキサー
-Name[kk]=Дыбыс микшері
-Name[km]=កម្មវិធី​លាយ​សំឡេង
-Name[ko]=소리 믹서
-Name[mk]=Миксета за звук
-Name[ms]=Pengadun Bunyi
-Name[nb]=Lydmikser
-Name[nds]=Klangmischer
-Name[ne]=ध्वनि मिक्सर
-Name[nl]=Geluidsmixer
-Name[nn]=Lydmiksar
-Name[pa]=ਸਾਊਂਡ ਮਿਕਸਰ
-Name[pl]=Mikser dźwięku
-Name[pt]=Mistura de Áudio
-Name[pt_BR]=Mixagem de som
-Name[ro]=Mixer de sunet
-Name[ru]=Микшер
-Name[sk]=Zvukový mixér
-Name[sl]=Mešalnik zvoka
-Name[sr]=Звучна миксета
-Name[sr@Latn]=Zvučna mikseta
-Name[sv]=Ljudmixer
-Name[ta]=ஒலிக் ஒன்றுசேர்ப்பான்
-Name[tg]=Омехтакунаки Овоз
-Name[th]=ปรับแต่งผสมเสียง
-Name[tr]=Ses Karıştırıcı
-Name[uk]=Аудіомікшер
-Name[uz]=Audio mikser
-Name[uz@cyrillic]=Аудио миксер
-Name[wa]=Maxheu d' sons
-Name[zh_CN]=混音器
-Name[zh_HK]=聲音混音器
-Name[zh_TW]=音效混音器
Comment=Volume and sound channel mixer control
-Comment[bg]=Управление на силата на звука и каналите
-Comment[br]=Renadur meskañ kanol ha nerzh
-Comment[bs]=Kontrola miksera kanala glasnoće i zvuka
-Comment[ca]=Control i mesclador de volum i canals de so
-Comment[cs]=Ovládání hlasitosti a zvukových kanálů
-Comment[da]=Mikserkontrol for lydstyrke og lydkanal
-Comment[de]=Kontrolle der Lautstärke
-Comment[el]=Στοιχείο μείκτη ήχων και έντασης καναλιών
-Comment[eo]=Stirado de volumo kaj sonkanalmiksilo
-Comment[es]=Control del volumen y los canales de sonido del mezclador
-Comment[et]=Helitugevuse ja helikanalite seadistamine
-Comment[eu]=Bolumena eta soinu-kanalen nahasketarako kontrola
-Comment[fa]=کنترل مخلوط‌کن مجرای صدا و حجم صدا
-Comment[fi]=Äänenvoimakkuuden ja äänikanavien mikserin hallinta
-Comment[fr]=Contrôle du volume et des canaux de la console de mixage
-Comment[gl]=Control do volume e da canle de son do mesturador
-Comment[he]=שינוי הגדרות עוצמת קול של כרטיס הקול
-Comment[hu]=Hangerőbeállító és keverő
-Comment[is]=Stjórnun á styrk og hljóðrása blöndun
-Comment[it]=Controllo del volume e del mixer sonoro
-Comment[ja]=ボリュームおよびサウンドチャンネルミキサー制御
-Comment[kk]=Дыбыс үнділігі мен арналарды басқару
-Comment[km]=ឧបករណ៍​លាយ​ឆានែល​កម្រិត​សំឡេង និង​សំឡេង​
-Comment[ko]=음량과 사운드 채널 믹서 조정
-Comment[lt]=Garso ir garso kanalų maišyklės valdymas
-Comment[nb]=Miksekontroll for lydnivået og lydkanalene
-Comment[nds]=Kuntrull för den Luutstärk- un Klangkanaalmischer
-Comment[ne]=भोल्युम र ध्वनि च्यानल मिक्सर नियन्त्रण
-Comment[nl]=Bedieningspaneel voor het regelen van het volume en de geluidskanalen
-Comment[nn]=Lydstyrke- og kanalmiksarkontroll
-Comment[pl]=Sterowanie mikserem dźwięku i kanałów
-Comment[pt]=Controlo de volume e canais de som
-Comment[pt_BR]=Controle de volume e mixer de canais de som
-Comment[ru]=Управление громкостью и звуковыми каналами
-Comment[sk]=Riadenie hlasitosti a zvukového kanálu mixéru
-Comment[sl]=Nadzor glasnosti in mešalnik zvočnih kanalov
-Comment[sr]=Контрола јачине и миксета звучних канала
-Comment[sr@Latn]=Kontrola jačine i mikseta zvučnih kanala
-Comment[sv]=Volymkontroll och ljudkanalmixer
-Comment[th]=โปรแกรมควบคุมช่องเสียงและระดับเสียง
-Comment[tr]=Ses düzeyi ve ses kanalı karıştırıcısını kontrol edin
-Comment[uk]=Керування гучністю і міксером звукових каналів
-Comment[zh_CN]=音量和声道混音器控制
-Comment[zh_HK]=音量與聲道混音控制器
-Comment[zh_TW]=音量與聲道混音器控制
Icon=kmix
X-TDE-Library=kmix_panelapplet
diff --git a/kmix/kmixctrl_restore.desktop b/kmix/kmixctrl_restore.desktop
index 52e25fc8..6469cefe 100644
--- a/kmix/kmixctrl_restore.desktop
+++ b/kmix/kmixctrl_restore.desktop
@@ -1,70 +1,4 @@
[Desktop Entry]
Type=Service
Name=Restore Mixer Settings
-Name[af]=Herstel Menger Instellings
-Name[az]=Qarışdırıcı Qurğularını Yenidən Yükle
-Name[bg]=Възстановяване на настройките на миксера
-Name[bn]=মিক্সার সেটিংস পুনঃস্থাপন করে
-Name[br]=Assav kefluniadur ar mesker
-Name[bs]=Vrati postavke miksera
-Name[ca]=Restaura l'arranjament del mesclador
-Name[cs]=Obnovit nastavení směšovače
-Name[cy]=Adfer Gosodiadau Cymysgydd
-Name[da]=Genopret mikseropsætning
-Name[de]=Lautstärkeeinstellungen wiederherstellen
-Name[el]=Αποκατάσταση ρυθμίσεων μείκτη
-Name[eo]=Restarigu Miksilagordon
-Name[es]=Restaurar opciones del mezclador
-Name[et]=Mikseri seadistuste taastamine
-Name[eu]=Nahasgailuaren ezarpenak berreskuratu
-Name[fa]=باز‌گردانی تنظیمات مخلوط‌کن
-Name[fi]=Palauta mikserin asetukset
-Name[fr]=Restaurer la configuration du mixage
-Name[gl]=Restaura-los Parámetros do Mesturador
-Name[he]=שיחזור הגדרות המערבל
-Name[hi]=मिक्सर विन्यास बहाल करें
-Name[hr]=Vrati postavke miksera
-Name[hu]=A hangkeverő beállításainak visszatöltése
-Name[id]=Kembalikan seting Mixer
-Name[is]=Sækja aftur stillingar hljóðrása
-Name[it]=Ripristina le impostazioni del mixer
-Name[ja]=ミキサーの設定を復元
-Name[kk]=Микшер баптауларын қалпына келтіру
-Name[km]=ស្ដារ​ការ​កំណត់​ឧបករណ៍​លាយ​ឡើង​វិញ
-Name[ko]=믹서 설정 복원
-Name[lt]=Gražinti mikšerio parametrus
-Name[lv]=Atjauno Miksera Uzstādījumus
-Name[mk]=Враќање на поставувањата на миксетата
-Name[ms]=Pulihkan Tetapan Pengadun
-Name[mt]=Reġġa' lura setings tal-Mixer
-Name[nb]=Gjennopprett mikserinnstillinger
-Name[nds]=Mischerinstellen wedderherstellen
-Name[ne]=मिक्सर सेटिङ पूर्वावस्थामा ल्याउनुहोस्
-Name[nl]=Mixerinstellingen herstellen
-Name[nn]=Gjenopprett miksarinnstillingar
-Name[pl]=Odtwarzanie ustawień miksera
-Name[pt]=Repor a Configuração do Volume
-Name[pt_BR]=Restaurar preferências do mixer
-Name[ro]=Reface setările mixerului
-Name[ru]=Восстанавливает настройки микшера
-Name[se]=Máhcat mixerheivehusat
-Name[sk]=Obnov Nastavenia Mixéra
-Name[sl]=Obnovi nastavitve mešalnika
-Name[sr]=Поврати поставке миксете
-Name[sr@Latn]=Povrati postavke miksete
-Name[sv]=Återställ mixerinställningar
-Name[ta]=ஒன்றுசேர்க்கும் அமைப்புகளை மீட்கவும்
-Name[tg]=Аз нав захиракунии Гузоришҳои Омехтакунак
-Name[th]=เรียกคืนค่าที่ตั้งไว้ของมิกเซอร์
-Name[tr]=Karıştırıcı Ayarlarını Yeniden Yükle
-Name[uk]=Відновити параметри мікшера
-Name[uz]=Mikserning moslamalarini qayta tiklash
-Name[uz@cyrillic]=Миксернинг мосламаларини қайта тиклаш
-Name[ven]=Vhuedzedzani vhuvha ha tshitanganisi
-Name[wa]=Rimete come divant les apontiaedjes d maxheu d' sons
-Name[xh]=Gcina kwakhona izicwangciso zoMxubi
-Name[zh_CN]=恢复混音器设置
-Name[zh_HK]=回復混音器設置
-Name[zh_TW]=回復混音器設定
-Name[zu]=Gcina futhi izilungiso zoMxubi
Exec=kmixctrl --restore
diff --git a/kmix/kmixdockwidget.cpp b/kmix/kmixdockwidget.cpp
index 1402191c..7b3ea1fa 100644
--- a/kmix/kmixdockwidget.cpp
+++ b/kmix/kmixdockwidget.cpp
@@ -22,17 +22,18 @@
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#include <tdeaction.h>
-#include <tdelocale.h>
-#include <tdeapplication.h>
#include <kpanelapplet.h>
-#include <tdepopupmenu.h>
-#include <tdeglobalsettings.h>
#include <kdialog.h>
#include <kaudioplayer.h>
#include <kiconloader.h>
#include <kdebug.h>
+#include <khelpmenu.h>
#include <twin.h>
+#include <tdeaction.h>
+#include <tdeapplication.h>
+#include <tdelocale.h>
+#include <tdepopupmenu.h>
+#include <tdeglobalsettings.h>
#include <tqapplication.h>
#include <tqcursor.h>
@@ -45,7 +46,6 @@
#include "mixer.h"
#include "mixdevicewidget.h"
#include "kmixdockwidget.h"
-#include "twin.h"
#include "viewdockareapopup.h"
KMixDockWidget::KMixDockWidget( Mixer *mixer, TQWidget *parent, const char *name, bool volumePopup, bool dockIconMuting )
@@ -80,30 +80,53 @@ KMixDockWidget::~KMixDockWidget()
void KMixDockWidget::createActions()
{
- // Put "Mute" selector in context menu
- (void)new TDEToggleAction( i18n( "M&ute" ), 0, TQT_TQOBJECT(this), TQT_SLOT( dockMute() ),
- actionCollection(), "dock_mute" );
- TDEAction *a = actionCollection()->action( "dock_mute" );
- TDEPopupMenu *popupMenu = contextMenu();
- if ( a ) a->plug( popupMenu );
-
- // Put "Select Master Channel" dialog in context menu
- if ( m_mixer != 0 ) {
- (void)new TDEAction( i18n("Select Master Channel..."), 0, TQT_TQOBJECT(this), TQT_SLOT(selectMaster()),
- actionCollection(), "select_master");
- TDEAction *a2 = actionCollection()->action( "select_master" );
- if (a2) a2->plug( popupMenu );
- }
+ TDEPopupMenu *popupMenu = contextMenu();
- // Setup volume preview
- if ( _playBeepOnVolumeChange ) {
- _audioPlayer = new KAudioPlayer("KDE_Beep_Digital_1.ogg");
- }
-}
+ // Put "Mute" selector in context menu
+ (void)new TDEToggleAction(i18n("M&ute"), 0, TQT_TQOBJECT(this), TQT_SLOT(dockMute()),
+ actionCollection(), "dock_mute");
+ TDEAction *a = actionCollection()->action("dock_mute");
+ if (a)
+ {
+ a->plug(popupMenu);
+ }
+
+ // Put "Select Master Channel" dialog in context menu
+ if (m_mixer)
+ {
+ (void)new TDEAction(i18n("Select Master Channel..."), 0, TQT_TQOBJECT(this), TQT_SLOT(selectMaster()),
+ actionCollection(), "select_master");
+ a = actionCollection()->action("select_master");
+ if (a)
+ {
+ a->plug(popupMenu);
+ }
+ }
+ // Show/hide mixer window (use "minimizeRestore" action
+ a = actionCollection()->action("minimizeRestore");
+ if (a)
+ {
+ a->plug(popupMenu);
+ }
+
+ // Help and quit
+ popupMenu->insertSeparator();
+ popupMenu->insertItem(SmallIcon("help"), KStdGuiItem::help().text(), (new KHelpMenu(this, TDEGlobal::instance()->aboutData(), false))->menu(), false);
+ popupMenu->insertSeparator();
+ a = actionCollection()->action(KStdAction::name(KStdAction::Quit));
+ if (a)
+ {
+ a->plug(popupMenu);
+ }
+ // Setup volume preview
+ if (_playBeepOnVolumeChange)
+ {
+ _audioPlayer = new KAudioPlayer("KDE_Beep_Digital_1.ogg");
+ }
+}
-void
-KMixDockWidget::createMasterVolWidget()
+void KMixDockWidget::createMasterVolWidget()
{
// Reset flags, so that the dock icon will be reconstructed
_oldToolTipValue = -1;
@@ -117,6 +140,11 @@ KMixDockWidget::createMasterVolWidget()
return;
}
// create devices
+ if (_dockAreaPopup)
+ {
+ // Delete the old popup widget if we are changing the channel
+ deleteMasterVolWidget();
+ }
_dockAreaPopup = new ViewDockAreaPopup(0, "dockArea", m_mixer, 0, this);
_dockAreaPopup->createDeviceWidgets();
@@ -134,9 +162,22 @@ KMixDockWidget::createMasterVolWidget()
* Refreshing the Icon
*
*/
- // connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), _dockAreaPopup, TQT_SLOT(refreshVolumeLevels()) );
- connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip() ) );
- connect( m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap() ) );
+ connect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip()));
+ connect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap()));
+}
+
+void KMixDockWidget::deleteMasterVolWidget()
+{
+ if (_dockAreaPopup)
+ {
+ delete _dockAreaPopup;
+ _dockAreaPopup = NULL;
+ }
+ if (m_mixer)
+ {
+ disconnect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(setVolumeTip()));
+ disconnect(m_mixer, TQT_SIGNAL(newVolumeLevels()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdatePixmap()));
+ }
}
void KMixDockWidget::slotUpdatePixmap()
@@ -161,6 +202,7 @@ void KMixDockWidget::handleNewMaster(int soundcard_id, TQString& channel_id) //
kdError(67100) << "KMixDockWidget::createPage(): Invalid Mixer (soundcard_id=" << soundcard_id << ")" << endl;
return; // can not happen
}
+ deleteMasterVolWidget();
m_mixer = mixer;
Mixer::setMasterCard(mixer->id()); // We must save this information "somewhere".
Mixer::setMasterCardDevice( channel_id );
@@ -263,7 +305,6 @@ void KMixDockWidget::resizeEvent ( TQResizeEvent * )
void KMixDockWidget::showEvent ( TQShowEvent *se )
{
updatePixmap(true);
- KSystemTray::showEvent(se);
}
void
diff --git a/kmix/kmixdockwidget.h b/kmix/kmixdockwidget.h
index 0899d28f..79a734c0 100644
--- a/kmix/kmixdockwidget.h
+++ b/kmix/kmixdockwidget.h
@@ -30,7 +30,7 @@ class TQString;
#include <ksystemtray.h>
-class Mixer;
+class DialogSelectMaster;
class KAudioPlayer;
class MixDeviceWidget;
class Mixer;
@@ -62,14 +62,15 @@ class KMixDockWidget : public KSystemTray {
protected:
void createMasterVolWidget();
+ void deleteMasterVolWidget();
void createActions();
void mousePressEvent(TQMouseEvent *);
void mouseReleaseEvent(TQMouseEvent *);
void wheelEvent(TQWheelEvent *);
- void contextMenuAboutToShow( TDEPopupMenu* menu );
+ void contextMenuAboutToShow(TDEPopupMenu *menu);
void toggleMinimizeRestore();
- void resizeEvent ( TQResizeEvent * );
- void showEvent ( TQShowEvent * );
+ void resizeEvent(TQResizeEvent *);
+ void showEvent(TQShowEvent *);
private:
bool _playBeepOnVolumeChange;
diff --git a/kmix/ksmallslider.cpp b/kmix/ksmallslider.cpp
index c976d3cb..5a67a8b6 100644
--- a/kmix/ksmallslider.cpp
+++ b/kmix/ksmallslider.cpp
@@ -165,7 +165,7 @@ void gradient( TQPainter &p, bool hor, const TQRect &rect, const TQColor &ca, co
int rDiff, gDiff, bDiff;
int rca, gca, bca, rcb, gcb, bcb;
- register int x, y;
+ int x, y;
if ((rect.width()<=0) || (rect.height()<=0)) return;
@@ -173,9 +173,9 @@ void gradient( TQPainter &p, bool hor, const TQRect &rect, const TQColor &ca, co
gDiff = (gcb = cb.green()) - (gca = ca.green());
bDiff = (bcb = cb.blue()) - (bca = ca.blue());
- register int rl = rca << 16;
- register int gl = gca << 16;
- register int bl = bca << 16;
+ int rl = rca << 16;
+ int gl = gca << 16;
+ int bl = bca << 16;
int rcdelta = ((1<<16) / ((!hor) ? rect.height() : rect.width())) * rDiff;
int gcdelta = ((1<<16) / ((!hor) ? rect.height() : rect.width())) * gDiff;
diff --git a/kmix/ksmallslider.h b/kmix/ksmallslider.h
index 16b11b70..e2949ab3 100644
--- a/kmix/ksmallslider.h
+++ b/kmix/ksmallslider.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mdwenum.h b/kmix/mdwenum.h
index 30e3b1a4..34018729 100644
--- a/kmix/mdwenum.h
+++ b/kmix/mdwenum.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mdwslider.h b/kmix/mdwslider.h
index 72b9546c..374cc28e 100644
--- a/kmix/mdwslider.h
+++ b/kmix/mdwslider.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mdwswitch.h b/kmix/mdwswitch.h
index e7759546..1a4f4cf9 100644
--- a/kmix/mdwswitch.h
+++ b/kmix/mdwswitch.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mixdevicewidget.h b/kmix/mixdevicewidget.h
index 676199e1..1ee0d8d3 100644
--- a/kmix/mixdevicewidget.h
+++ b/kmix/mixdevicewidget.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mixer.cpp b/kmix/mixer.cpp
index ba3bfee8..f2f3d188 100644
--- a/kmix/mixer.cpp
+++ b/kmix/mixer.cpp
@@ -372,7 +372,7 @@ TQString& Mixer::id()
return _id;
}
-void Mixer::setMasterCard(TQString& ref_id)
+void Mixer::setMasterCard(const TQString& ref_id)
{
// The value is taken over without checking on existance. This allows the User to define
// a MasterCard that is not always available (e.g. it is an USB hotplugging device).
@@ -528,6 +528,11 @@ void Mixer::setVolume( int deviceidx, int percentage )
void Mixer::commitVolumeChange( MixDevice* md ) {
_mixerBackend->writeVolumeToHW(md->num(), md->getVolume() );
_mixerBackend->setEnumIdHW(md->num(), md->enumId() );
+
+ // Muting/unmuting PulseAudio directly does not send back any notification to the mixer
+ // so we make sure we always update the tray icon after each operation.
+ readSetFromHWforceUpdate();
+ TQTimer::singleShot(50, this, TQT_SLOT(readSetFromHW()));
}
// @dcop only
@@ -563,7 +568,9 @@ int Mixer::volume( int deviceidx )
}
else
{
- return ( vol.getVolume( Volume::LEFT )*100) / volumeRange ;
+ // Make sure to round correctly, otherwise the volume level will always be 1% too low
+ // and increments of 1% of top of the value read will result in no change to the actual level
+ return ((100.0 * vol.getVolume(Volume::LEFT) + volumeRange / 2) / volumeRange);
}
}
@@ -625,51 +632,42 @@ int Mixer::masterVolume()
void Mixer::increaseVolume( int deviceidx )
{
MixDevice *mixdev= mixDeviceByType( deviceidx );
- if (mixdev != 0) {
- Volume vol=mixdev->getVolume();
- double fivePercent = (vol.maxVolume()-vol.minVolume()+1) / 20;
- for (unsigned int i=Volume::CHIDMIN; i <= Volume::CHIDMAX; i++) {
- int volToChange = vol.getVolume((Volume::ChannelID)i);
- if ( fivePercent < 1 ) fivePercent = 1;
- volToChange += (int)fivePercent;
- vol.setVolume((Volume::ChannelID)i, volToChange);
- }
- _mixerBackend->writeVolumeToHW(deviceidx, vol);
+ if (mixdev != 0)
+ {
+ Volume vol = mixdev->getVolume();
+ long inc = vol.maxVolume() / 20;
+ if (inc == 0)
+ {
+ inc = 1;
+ }
+ for (int i = 0; i < vol.count(); i++)
+ {
+ long newVal = (vol[i]) + inc;
+ mixdev->setVolume(i, newVal < vol.maxVolume() ? newVal : vol.maxVolume());
+ }
+ commitVolumeChange(mixdev);
}
-
- /* see comment at the end of decreaseVolume()
- int vol=volume(deviceidx);
- setVolume(deviceidx, vol+5);
- */
}
// @dcop
void Mixer::decreaseVolume( int deviceidx )
{
MixDevice *mixdev= mixDeviceByType( deviceidx );
- if (mixdev != 0) {
- Volume vol=mixdev->getVolume();
- double fivePercent = (vol.maxVolume()-vol.minVolume()+1) / 20;
- for (unsigned int i=Volume::CHIDMIN; i <= Volume::CHIDMAX; i++) {
- int volToChange = vol.getVolume((Volume::ChannelID)i);
- //std::cout << "Mixer::decreaseVolume(): before: volToChange " <<i<< "=" <<volToChange << std::endl;
- if ( fivePercent < 1 ) fivePercent = 1;
- volToChange -= (int)fivePercent;
- //std::cout << "Mixer::decreaseVolume(): after: volToChange " <<i<< "=" <<volToChange << std::endl;
- vol.setVolume((Volume::ChannelID)i, volToChange);
- //int volChanged = vol.getVolume((Volume::ChannelID)i);
- //std::cout << "Mixer::decreaseVolume(): check: volChanged " <<i<< "=" <<volChanged << std::endl;
- } // for
- _mixerBackend->writeVolumeToHW(deviceidx, vol);
+ if (mixdev != 0)
+ {
+ Volume vol = mixdev->getVolume();
+ long inc = vol.maxVolume() / 20;
+ if (inc == 0)
+ {
+ inc = 1;
+ }
+ for (int i = 0; i < vol.count(); i++)
+ {
+ long newVal = (vol[i]) - inc;
+ mixdev->setVolume(i, newVal > 0 ? newVal : 0);
+ }
+ commitVolumeChange(mixdev);
}
-
- /************************************************************
- It is important, not to implement this method like this:
- int vol=volume(deviceidx);
- setVolume(deviceidx, vol-5);
- It creates too big rounding errors. If you don't beleive me, then
- do a decreaseVolume() and increaseVolume() with "vol.maxVolume() == 31".
- ***********************************************************/
}
// @dcop
@@ -699,11 +697,8 @@ void Mixer::toggleMute( int deviceidx )
MixDevice *mixdev= mixDeviceByType( deviceidx );
if (!mixdev) return;
- bool previousState= mixdev->isMuted();
-
- mixdev->setMuted( !previousState );
-
- _mixerBackend->writeVolumeToHW(deviceidx, mixdev->getVolume() );
+ mixdev->setMuted(!mixdev->isMuted());
+ commitVolumeChange(mixdev);
}
// @dcop only
diff --git a/kmix/mixer.h b/kmix/mixer.h
index d9566e81..22f1458a 100644
--- a/kmix/mixer.h
+++ b/kmix/mixer.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
@@ -97,7 +96,7 @@ class Mixer : public TQObject, virtual public MixerIface
/// The KMix global master card. Please note that KMix and KMixPanelApplet can have a
/// different MasterCard's at the moment (but actually KMixPanelApplet does not read/save this yet).
/// At the moment it is only used for selecting the Mixer to use in KMix's DockIcon.
- static void setMasterCard(TQString& ref_id);
+ static void setMasterCard(const TQString& ref_id);
static Mixer* masterCard();
/// The global Master Device inside the current MasterCard (as returned by masterCard()).
static void setMasterCardDevice(TQString& ref_id);
diff --git a/kmix/mixer_alsa9.cpp b/kmix/mixer_alsa9.cpp
index 46d98d41..22303b43 100644
--- a/kmix/mixer_alsa9.cpp
+++ b/kmix/mixer_alsa9.cpp
@@ -199,9 +199,10 @@ Mixer_ALSA::open()
sid = (snd_mixer_selem_id_t*)malloc(snd_mixer_selem_id_sizeof()); // I believe *we* must malloc it for ourself
snd_mixer_selem_get_id( elem, sid );
- bool canRecord = false;
- bool canMute = false;
+ bool canPlay = false;
bool canCapture = false;
+ bool hasPlaySwitch = false;
+ bool hasCaptureSwitch = false;
long maxVolumePlay= 0, minVolumePlay= 0;
long maxVolumeRec = 0, minVolumeRec = 0;
validDevice = true;
@@ -261,6 +262,7 @@ Mixer_ALSA::open()
? Volume::MLEFT : (Volume::ChannelMask)(Volume::MLEFT | Volume::MRIGHT);
chn = (Volume::ChannelMask) (chn | chnTmp);
cc = MixDevice::SLIDER;
+ canPlay = true;
volPlay = new Volume( chn, maxVolumePlay, minVolumePlay );
} else {
volPlay = new Volume();
@@ -283,72 +285,83 @@ Mixer_ALSA::open()
mixer_sid_list.append( sid );
if ( snd_mixer_selem_has_playback_switch ( elem ) ) {
- //kdDebug(67100) << "has_playback_switch()" << endl;
- canMute = true;
+ //kdDebug(67100) << "has_playback_switch()" << endl;
+ hasPlaySwitch = true;
}
if ( snd_mixer_selem_has_capture_switch ( elem ) ) {
- //kdDebug(67100) << "has_capture_switch()" << endl;
- canRecord = true;
+ //kdDebug(67100) << "has_capture_switch()" << endl;
+ hasCaptureSwitch = true;
}
if ( snd_mixer_selem_has_common_switch ( elem ) ) {
- //kdDebug(67100) << "has_common_switch()" << endl;
- canMute = true;
- canRecord = true;
+ //kdDebug(67100) << "has_common_switch()" << endl;
+ hasPlaySwitch = true;
+ hasCaptureSwitch = true;
}
- if ( /*snd_mixer_selem_has_common_switch ( elem ) || */
- cc == MixDevice::UNDEFINED )
+ if (cc == MixDevice::UNDEFINED )
{
// Everything unknown is handled as switch
cc = MixDevice::SWITCH;
}
} // is ordinary mixer element (NOT an enum)
+ if (canPlay || cc == MixDevice::SWITCH || cc == MixDevice::ENUM)
+ {
MixDevice* md = new MixDevice( mixerIdx,
- canCapture ? *volCapture : *volPlay,
- canCapture ? true : canRecord,
- canMute,
- snd_mixer_selem_id_get_name( sid ),
- ct,
- cc );
-
- m_mixDevices.append( md );
-
+ *volPlay,
+ false,
+ hasPlaySwitch,
+ snd_mixer_selem_id_get_name( sid ),
+ ct,
+ cc );
+ m_mixDevices.append( md );
if (!masterChosen && ct==MixDevice::VOLUME) {
- // Determine a nicer MasterVolume
- m_recommendedMaster = md;
- masterChosen = true;
+ // Determine a nicer MasterVolume
+ m_recommendedMaster = md;
+ masterChosen = true;
}
if ( enumList.count() > 0 ) {
- int maxEnumId= enumList.count();
- TQPtrList<TQString>& enumValuesRef = md->enumValues(); // retrieve a ref
- for (int i=0; i<maxEnumId; i++ ) {
- // we have an enum. Lets set the names of the enum items in the MixDevice
- // the enum names are assumed to be static!
- enumValuesRef.append(enumList.at(i) );
- }
+ int maxEnumId= enumList.count();
+ TQPtrList<TQString>& enumValuesRef = md->enumValues(); // retrieve a ref
+ for (int i=0; i<maxEnumId; i++ ) {
+ // we have an enum. Lets set the names of the enum items in the MixDevice
+ // the enum names are assumed to be static!
+ enumValuesRef.append(enumList.at(i) );
+ }
}
- //kdDebug(67100) << "ALSA create MDW, vol= " << *vol << endl;
- delete volPlay;
- delete volCapture;
- } // virginOpen
- else
+ }
+ if (canCapture)
{
- MixDevice* md;
- bool found = false;
- for ( md = m_mixDevices.first(); md != 0; md = m_mixDevices.next() ) {
- if ( md->num() == mixerIdx ) {
- found = true;
- writeVolumeToHW( mixerIdx, md->getVolume() );
- }
- }
- if( !found )
- {
- return Mixer::ERR_INCOMPATIBLESET;
- }
- } // !virginOpen
+ MixDevice* md = new MixDevice( mixerIdx,
+ *volCapture,
+ true,
+ hasCaptureSwitch,
+ snd_mixer_selem_id_get_name( sid ),
+ ct,
+ cc );
+ m_mixDevices.append( md );
+ }
+ //kdDebug(67100) << "ALSA create MDW, vol= " << *vol << endl;
+ delete volPlay;
+ delete volCapture;
+ } // virginOpen
+ else
+ {
+ MixDevice* md;
+ bool found = false;
+ for ( md = m_mixDevices.first(); md != 0; md = m_mixDevices.next() ) {
+ if ( md->num() == mixerIdx ) {
+ found = true;
+ writeVolumeToHW( mixerIdx, md->getVolume() );
+ }
+ }
+ if( !found )
+ {
+ return Mixer::ERR_INCOMPATIBLESET;
+ }
+ } // !virginOpen
} // for all elems
/**************************************************************************************
diff --git a/kmix/mixer_backend.h b/kmix/mixer_backend.h
index d5a9ed18..d2725eb5 100644
--- a/kmix/mixer_backend.h
+++ b/kmix/mixer_backend.h
@@ -1,4 +1,3 @@
-//-*-C++-*-
/*
* KMix -- KDE's full featured mini mixer
*
diff --git a/kmix/mixer_oss.h b/kmix/mixer_oss.h
index 7bedf7f5..b1ed17d0 100644
--- a/kmix/mixer_oss.h
+++ b/kmix/mixer_oss.h
@@ -1,5 +1,3 @@
-//-*-C++-*-
-
#ifndef MIXER_OSS_H
#define MIXER_OSS_H
diff --git a/kmix/mixer_oss4.h b/kmix/mixer_oss4.h
index 40f14785..8ce23f54 100644
--- a/kmix/mixer_oss4.h
+++ b/kmix/mixer_oss4.h
@@ -1,5 +1,3 @@
-//-*-C++-*-
-
#ifndef MIXER_OSS4_H
#define MIXER_OSS4_H
diff --git a/kmix/mixertoolbox.cpp b/kmix/mixertoolbox.cpp
index b474eca6..4a19673b 100644
--- a/kmix/mixertoolbox.cpp
+++ b/kmix/mixertoolbox.cpp
@@ -213,13 +213,25 @@ void MixerToolBox::initMixer(TQPtrList<Mixer> &mixers, bool multiDriverMode, TQS
} // loop over sound card devices of current driver
} // loop over soundcard drivers
- if ( Mixer::masterCard() == 0 ) {
+ if (Mixer::masterCard() == 0)
+ {
// We have no master card yet. This actually only happens when there was
// not one defined in the kmixrc.
// So lets just set the first card as master card.
- if ( Mixer::mixers().count() > 0 ) {
- Mixer::setMasterCard( Mixer::mixers().first()->id());
- }
+ if (Mixer::mixers().count() > 0)
+ {
+ Mixer *mixer = Mixer::mixers().first();
+ Mixer::setMasterCard(mixer->id());
+ MixSet ms = mixer->getMixSet();
+ for (MixDevice *md = ms.first(); md != 0; md = ms.next())
+ {
+ if (!md->isRecordable() && !md->isSwitch() && !md->isEnum())
+ {
+ Mixer::setMasterCardDevice(md->getPK());
+ break;
+ }
+ }
+ }
}
ref_hwInfoString = i18n("Sound drivers supported:");
diff --git a/kmix/restore_kmix_volumes.desktop b/kmix/restore_kmix_volumes.desktop
index dfa95c0c..152708ad 100644
--- a/kmix/restore_kmix_volumes.desktop
+++ b/kmix/restore_kmix_volumes.desktop
@@ -5,54 +5,3 @@ Type=Application
Exec=kmixctrl --restore
OnlyShowIn=TDE;
Name=Restore Mixer Volumes
-Name[bg]=Възстановяване на стойностите на миксера
-Name[bn]=মিক্সার ভলিউম পুনঃস্থাপন করে
-Name[br]=Assav pep tolzennad mesker
-Name[bs]=Vrati jačine miksera
-Name[ca]=Restaura els volums del mesclador
-Name[cs]=Obnovit nastavení hlasitosti
-Name[cy]=Adfer Lefelau Sain y Cymysgydd
-Name[da]=Genopret mikser lydstyrke
-Name[de]=Lautstärken wiederherstellen
-Name[el]=Επαναφορά των εντάσεων του μείκτη
-Name[eo]=Restarigu Miksilagordon
-Name[es]=Restaurar opciones del mezclador
-Name[et]=Mikseri helitugevuste taastamine
-Name[eu]=Nahasgailuaren bolumenak berreskuratu
-Name[fa]=باز‌گردانی حجم صداهای مخلوط‌کن
-Name[fi]=Palauta mikserin äänivoimakkuudet
-Name[fr]=Restaurer les volumes du mixage
-Name[gl]=Restaurar os Volumes do Mesturador
-Name[he]=שיחזור עוצמות הקול של המערבל
-Name[hu]=A hangkeverő hangerőinek visszaállítása
-Name[is]=Sækja aftur stillingar hljóðrása
-Name[it]=Ripristina i volumi del Mixer
-Name[ja]=ミキサーの音量設定を復元する
-Name[kk]=Микшер деңгейлерін қалпына келтіру
-Name[km]=ស្ដារ​សំឡេង​ឧបករណ៍​លាយ
-Name[ko]=믹서 음량 복원
-Name[lt]=Atstatyti maišytuvo garso lygius
-Name[mk]=Враќање на гласностите на миксетата
-Name[nb]=Gjenopprett lydstyrkene til mikser
-Name[nds]=Mischerluutstärken wedderherstellen
-Name[ne]=मिक्सर भोल्युम पूर्वावस्थामा ल्यानुहोस्
-Name[nl]=Mixervolumes herstellen
-Name[nn]=Gjenopprett miksarlydstyrkar
-Name[pl]=Odtwarzanie głośności miksera
-Name[pt]=Repor os Volumes
-Name[pt_BR]=Restaurar volumes do mixer
-Name[ro]=Reface volumele mixerului
-Name[ru]=Восстановление настроек микшера
-Name[sk]=Obnoviť nastavenia mixéra
-Name[sl]=Obnovi nastavitve mešalnika
-Name[sr]=Обнови јачине миксете
-Name[sr@Latn]=Obnovi jačine miksete
-Name[sv]=Återställ mixervolymer
-Name[ta]=ஒன்றுசேர்க்கும் ஒலியளவு மீட்கவும்
-Name[th]=เรียกคืนระดับเสียงของมิกเซอร์
-Name[tr]=Karıştırıcı Seslerini Yenile
-Name[uk]=Відновити параметри мікшера
-Name[zh_CN]=恢复混音器设置
-Name[zh_HK]=回復混音器音量
-Name[zh_TW]=回復混音器音量
-
diff --git a/kmix/viewbase.cpp b/kmix/viewbase.cpp
index 11bb06a8..86d1524c 100644
--- a/kmix/viewbase.cpp
+++ b/kmix/viewbase.cpp
@@ -60,6 +60,7 @@ ViewBase::ViewBase(TQWidget* parent, const char* name, const TQString & caption,
}
}
new TDEAction(i18n("&Channels"), 0, TQT_TQOBJECT(this), TQT_SLOT(configureView()), _actions, "toggle_channels");
+ new TDEAction(i18n("&Select Mixer"), 0, TQT_TQOBJECT(this), TQT_SLOT(selectMixerSlot()), _actions, "select_mixer");
connect ( _mixer, TQT_SIGNAL(newVolumeLevels()), this, TQT_SLOT(refreshVolumeLevels()) );
}
@@ -129,15 +130,28 @@ TDEPopupMenu* ViewBase::getPopup()
void ViewBase::popupReset()
{
TDEAction *a;
-
_popMenu = new TDEPopupMenu( this );
- _popMenu->insertTitle( SmallIcon( "kmix" ), i18n("Device Settings") );
+ TDEAction *smb = _actions->action( "options_show_menubar" );
+
+ if (!smb && Mixer::mixers().count() > 1)
+ {
+ _popMenu->insertTitle( SmallIcon( "kmix" ), i18n("General") );
+ a = _actions->action( "select_mixer" );
+ a->plug(_popMenu);
+ }
+
+ _popMenu->insertTitle( SmallIcon( "kmix" ), i18n("Device Settings") );
a = _actions->action( "toggle_channels" );
- if ( a ) a->plug( _popMenu );
+ if (a)
+ {
+ a->plug(_popMenu);
+ }
- a = _actions->action( "options_show_menubar" );
- if ( a ) a->plug( _popMenu );
+ if (smb)
+ {
+ smb->plug(_popMenu);
+ }
}
@@ -161,7 +175,8 @@ void ViewBase::refreshVolumeLevels()
// is virtual
}
-Mixer* ViewBase::getMixer() {
+Mixer* ViewBase::getMixer()
+{
return _mixer;
}
@@ -169,19 +184,27 @@ Mixer* ViewBase::getMixer() {
* Open the View configuration dialog. The user can select which channels he wants
* to see and which not.
*/
-void ViewBase::configureView() {
-
+void ViewBase::configureView()
+{
DialogViewConfiguration* dvc = new DialogViewConfiguration(0, *this);
dvc->show();
// !! The dialog is modal. Does it delete itself?
}
-void ViewBase::toggleMenuBarSlot() {
+void ViewBase::toggleMenuBarSlot()
+{
//kdDebug(67100) << "ViewBase::toggleMenuBarSlot() start\n";
emit toggleMenuBar();
//kdDebug(67100) << "ViewBase::toggleMenuBarSlot() done\n";
}
+void ViewBase::selectMixerSlot()
+{
+ //kdDebug(67100) << "ViewBase::selectMixerSlot() start\n";
+ emit selectMixer();
+ //kdDebug(67100) << "ViewBase::selectMixerSlot() done\n";
+}
+
// ---------- Popup stuff END ---------------------
#include "viewbase.moc"
diff --git a/kmix/viewbase.h b/kmix/viewbase.h
index 96840d88..79f4220b 100644
--- a/kmix/viewbase.h
+++ b/kmix/viewbase.h
@@ -107,12 +107,14 @@ public slots:
virtual void refreshVolumeLevels();
virtual void configureView();
void toggleMenuBarSlot();
+ void selectMixerSlot();
protected slots:
void mousePressEvent( TQMouseEvent *e );
signals:
void toggleMenuBar();
+ void selectMixer();
private:
TQString _caption;
diff --git a/kmix/viewdockareapopup.cpp b/kmix/viewdockareapopup.cpp
index 081aec18..e9cd9155 100644
--- a/kmix/viewdockareapopup.cpp
+++ b/kmix/viewdockareapopup.cpp
@@ -130,14 +130,14 @@ TQWidget* ViewDockAreaPopup::add(MixDevice *md)
Qt::Vertical, // Direction: only 1 device, so doesn't matter
_frame, // parent
0, // Is "NULL", so that there is no RMB-popup
- _dockDevice->name().latin1() );
+ _dockDevice->name().local8Bit());
_layoutMDW->addItem( new TQSpacerItem( 5, 20 ), 0, 2 );
_layoutMDW->addItem( new TQSpacerItem( 5, 20 ), 0, 0 );
_layoutMDW->addWidget( _mdw, 0, 1 );
- // Add button to show main panel
- _showPanelBox = new TQPushButton( i18n("Mixer"), _frame, "MixerPanel" );
- connect ( _showPanelBox, TQT_SIGNAL( clicked() ), TQT_SLOT( showPanelSlot() ) );
+ // Add button to show main panel
+ _showPanelBox = new TQPushButton( i18n("Mixer"), _frame, "MixerPanel" );
+ connect ( _showPanelBox, TQT_SIGNAL( clicked() ), TQT_SLOT( showPanelSlot() ) );
_layoutMDW->addMultiCellWidget( _showPanelBox, 1, 1, 0, 2 );
return _mdw;
diff --git a/kmix/volume.h b/kmix/volume.h
index 9051ed0c..8f3b8537 100644
--- a/kmix/volume.h
+++ b/kmix/volume.h
@@ -1,4 +1,3 @@
-// -*-C++-*-
#ifndef VOLUME_H
#define VOLUME_H