By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release. View | Details | Raw Unified | Return to bug 3159
Collapse All | Expand All

(-)tdemultimedia-trinity-14.0.8-orig/kmix/kmixapplet.cpp (-1 / +2 lines)
Lines 4-9 Link Here
4
 *
4
 *
5
 * Copyright (C) 2000 Stefan Schimanski <schimmi@kde.org>
5
 * Copyright (C) 2000 Stefan Schimanski <schimmi@kde.org>
6
 * Copyright (C) 2004 Christian Esken <esken@kde.org>
6
 * Copyright (C) 2004 Christian Esken <esken@kde.org>
7
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
7
 *
8
 *
8
 * This program is free software; you can redistribute it and/or
9
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Library General Public
10
 * modify it under the terms of the GNU Library General Public
Lines 225-231 Link Here
225
   s_instCount--;
226
   s_instCount--;
226
   if ( s_instCount == 0)
227
   if ( s_instCount == 0)
227
   {
228
   {
228
      MixerToolBox::deinitMixer();
229
      MixerToolBox::deinitMixer(Mixer::mixers());
229
   }
230
   }
230
   */
231
   */
231
}
232
}
(-)tdemultimedia-trinity-14.0.8-orig/kmix/kmix.cpp (-2 / +35 lines)
Lines 4-9 Link Here
4
 * Copyright (C) 2000 Stefan Schimanski <schimmi@kde.org>
4
 * Copyright (C) 2000 Stefan Schimanski <schimmi@kde.org>
5
 * Copyright (C) 2001 Preston Brown <pbrown@kde.org>
5
 * Copyright (C) 2001 Preston Brown <pbrown@kde.org>
6
 * Copyright (C) 2003 Sven Leiber <s.leiber@web.de>
6
 * Copyright (C) 2003 Sven Leiber <s.leiber@web.de>
7
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
7
 * This program is free software; you can redistribute it and/or
8
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Library General Public
9
 * modify it under the terms of the GNU Library General Public
9
 * License as published by the Free Software Foundation; either
10
 * License as published by the Free Software Foundation; either
Lines 62-68 Link Here
62
 */
63
 */
63
KMixWindow::KMixWindow()
64
KMixWindow::KMixWindow()
64
	: TDEMainWindow(0, 0, 0, 0), m_showTicks( true ),
65
	: TDEMainWindow(0, 0, 0, 0), m_showTicks( true ),
65
	m_dockWidget( 0L )
66
	m_dockWidget( 0L ), masterMixer(NULL)
66
{
67
{
67
	m_visibilityUpdateAllowed	= true;
68
	m_visibilityUpdateAllowed	= true;
68
	m_multiDriverMode		= false; // -<- I never-ever want the multi-drivermode to be activated by accident
69
	m_multiDriverMode		= false; // -<- I never-ever want the multi-drivermode to be activated by accident
Lines 94-105 Link Here
94
		hide();
95
		hide();
95
	}
96
	}
96
	connect( kapp, TQT_SIGNAL( aboutToQuit()), TQT_SLOT( saveSettings()) );
97
	connect( kapp, TQT_SIGNAL( aboutToQuit()), TQT_SLOT( saveSettings()) );
98
99
	masterMixer = Mixer::masterCard();
100
101
	mixersUpdTimer = new TQTimer();
102
	connect(mixersUpdTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(mixersUpdate()));
103
	mixersUpdTimer->start(10000);
97
}
104
}
98
105
99
106
100
KMixWindow::~KMixWindow()
107
KMixWindow::~KMixWindow()
101
{
108
{
102
   MixerToolBox::deinitMixer();
109
   delete mixersUpdTimer;
110
111
   MixerToolBox::deinitMixer(Mixer::mixers());
103
}
112
}
104
113
105
114
Lines 141-146 Link Here
141
			this, TQT_SLOT(applyPrefs(KMixPrefDlg *)) );
150
			this, TQT_SLOT(applyPrefs(KMixPrefDlg *)) );
142
}
151
}
143
152
153
void
154
KMixWindow::mixersUpdate()
155
{
156
    //Do not update the mixers at the mixer window and the dock widget visibility
157
    if(!m_dockWidget || isVisible() || (m_dockWidget->_dockAreaPopup && ((TQWidget*)m_dockWidget->_dockAreaPopup)->isVisible()))	return;
158
    //Detection the master mixer change and reloading mixers for DCOP rebinding
159
    if(masterMixer != Mixer::masterCard()) ;
160
    //Detection the mixers configuration change
161
    else {
162
	TQPtrList<Mixer> tmpMix;
163
	MixerToolBox::initMixer(tmpMix, m_multiDriverMode, m_hwInfoString);
164
	bool chMixers = (tmpMix.count() != Mixer::mixers().count());
165
	MixerToolBox::deinitMixer(tmpMix);
166
	if(!chMixers)	return;
167
    }
168
    MixerToolBox::deinitMixer(Mixer::mixers());
169
    MixerToolBox::initMixer(Mixer::mixers(), m_multiDriverMode, m_hwInfoString);
170
171
    initMixerWidgets();
172
    updateDocking();
173
    masterMixer = Mixer::masterCard();
174
}
144
175
145
void
176
void
146
KMixWindow::initWidgets()
177
KMixWindow::initWidgets()
Lines 348-353 Link Here
348
KMixWindow::initMixerWidgets()
379
KMixWindow::initMixerWidgets()
349
{
380
{
350
   m_mixerWidgets.clear();
381
   m_mixerWidgets.clear();
382
   m_cMixer->clear();
383
   mixerNameLayout->show();
351
384
352
	int id=0;
385
	int id=0;
353
	Mixer *mixer;
386
	Mixer *mixer;
(-)tdemultimedia-trinity-14.0.8-orig/kmix/kmixctrl.cpp (-1 / +2 lines)
Lines 2-7 Link Here
2
 * kmixctrl - kmix volume save/restore utility
2
 * kmixctrl - kmix volume save/restore utility
3
 *
3
 *
4
 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
4
 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
5
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
5
 *
6
 *
6
 * This program is free software; you can redistribute it and/or
7
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Library General Public
8
 * modify it under the terms of the GNU Library General Public
Lines 84-90 Link Here
84
	 mixer->volumeSave( TDEGlobal::config() );
85
	 mixer->volumeSave( TDEGlobal::config() );
85
   }
86
   }
86
87
87
   MixerToolBox::deinitMixer();
88
   MixerToolBox::deinitMixer(Mixer::mixers());
88
89
89
   return 0;
90
   return 0;
90
}
91
}
(-)tdemultimedia-trinity-14.0.8-orig/kmix/kmix.h (+5 lines)
Lines 3-8 Link Here
3
 *
3
 *
4
 *
4
 *
5
 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
5
 * Copyright (C) 2000 Stefan Schimanski <1Stein@gmx.de>
6
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
6
 *
7
 *
7
 * This program is free software; you can redistribute it and/or
8
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Library General Public
9
 * modify it under the terms of the GNU Library General Public
Lines 30-35 Link Here
30
// include files for TQt
31
// include files for TQt
31
#include <tqstring.h>
32
#include <tqstring.h>
32
#include <tqmap.h>
33
#include <tqmap.h>
34
#include <tqtimer.h>
33
35
34
class TQHBox;
36
class TQHBox;
35
class TQWidgetStack;
37
class TQWidgetStack;
Lines 124-132 Link Here
124
   KMixDockWidget *m_dockWidget;
126
   KMixDockWidget *m_dockWidget;
125
   TQString m_hwInfoString;
127
   TQString m_hwInfoString;
126
   TQVBoxLayout *widgetsLayout;
128
   TQVBoxLayout *widgetsLayout;
129
   TQTimer *mixersUpdTimer;
130
   Mixer *masterMixer;
127
131
128
  private slots:
132
  private slots:
129
   //void removeMixerWidget( KMixerWidget *mw );
133
   //void removeMixerWidget( KMixerWidget *mw );
134
   void mixersUpdate();
130
   void slotHWInfo();
135
   void slotHWInfo();
131
   void showSelectedMixer( int mixer );
136
   void showSelectedMixer( int mixer );
132
   void configureGlobalShortcuts();
137
   void configureGlobalShortcuts();
(-)tdemultimedia-trinity-14.0.8-orig/kmix/mixer_alsa9.cpp (-7 / +32 lines)
Lines 6-11 Link Here
6
 *
6
 *
7
 * Copyright (C) 2002 Helio Chissini de Castro <helio@conectiva.com.br>
7
 * Copyright (C) 2002 Helio Chissini de Castro <helio@conectiva.com.br>
8
 *               2004 Christian Esken <esken@kde.org>
8
 *               2004 Christian Esken <esken@kde.org>
9
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
9
 *
10
 *
10
 * This program is free software; you can redistribute it and/or
11
 * This program is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU Library General Public
12
 * modify it under the terms of the GNU Library General Public
Lines 107-117 Link Here
107
108
108
    snd_ctl_t *ctl_handle;
109
    snd_ctl_t *ctl_handle;
109
    snd_ctl_card_info_t *hw_info;
110
    snd_ctl_card_info_t *hw_info;
110
    snd_ctl_card_info_alloca(&hw_info);
111
    snd_ctl_card_info_malloc(&hw_info);
111
112
    snd_mixer_elem_t *elem;
113
    snd_mixer_selem_id_t *sid;
114
    snd_mixer_selem_id_alloca( &sid );
115
112
116
    // Card information
113
    // Card information
117
    if ((unsigned)m_devnum > 31) m_devnum = -1;
114
    if ((unsigned)m_devnum > 31) m_devnum = -1;
Lines 126-131 Link Here
126
    {
123
    {
127
	kdDebug(67100) << probeMessage << "not found: snd_ctl_open err=" << snd_strerror(err) << endl;
124
	kdDebug(67100) << probeMessage << "not found: snd_ctl_open err=" << snd_strerror(err) << endl;
128
	//_stateMessage = errorText( Mixer::ERR_NODEV );
125
	//_stateMessage = errorText( Mixer::ERR_NODEV );
126
	snd_ctl_card_info_free(hw_info);
129
	return Mixer::ERR_OPEN;
127
	return Mixer::ERR_OPEN;
130
    }
128
    }
131
129
Lines 134-139 Link Here
134
	kdDebug(67100) << probeMessage << "not found: snd_ctl_card_info err=" << snd_strerror(err) << endl;
132
	kdDebug(67100) << probeMessage << "not found: snd_ctl_card_info err=" << snd_strerror(err) << endl;
135
	//_stateMessage = errorText( Mixer::ERR_READ );
133
	//_stateMessage = errorText( Mixer::ERR_READ );
136
	snd_ctl_close( ctl_handle );
134
	snd_ctl_close( ctl_handle );
135
	snd_ctl_card_info_free(hw_info);
137
	return Mixer::ERR_READ;
136
	return Mixer::ERR_READ;
138
    }
137
    }
139
138
Lines 155-160 Link Here
155
	kdDebug(67100) << probeMessage << "not found: snd_mixer_open err=" << snd_strerror(err) << endl;
154
	kdDebug(67100) << probeMessage << "not found: snd_mixer_open err=" << snd_strerror(err) << endl;
156
	//errormsg( Mixer::ERR_NODEV );
155
	//errormsg( Mixer::ERR_NODEV );
157
	_handle = 0;
156
	_handle = 0;
157
	snd_ctl_card_info_free(hw_info);
158
	return Mixer::ERR_NODEV; // if we cannot open the mixer, we have no devices
158
	return Mixer::ERR_NODEV; // if we cannot open the mixer, we have no devices
159
    }
159
    }
160
    //kdDebug(67100) << "OUT Mixer_ALSA snd_mixer_open()" << endl;
160
    //kdDebug(67100) << "OUT Mixer_ALSA snd_mixer_open()" << endl;
Lines 163-168 Link Here
163
    {
163
    {
164
	kdDebug(67100) << probeMessage << "not found: snd_mixer_attach err=" << snd_strerror(err) << endl;
164
	kdDebug(67100) << probeMessage << "not found: snd_mixer_attach err=" << snd_strerror(err) << endl;
165
	//errormsg( Mixer::ERR_PERM );
165
	//errormsg( Mixer::ERR_PERM );
166
	close();
167
	snd_ctl_card_info_free(hw_info);
166
	return Mixer::ERR_OPEN;
168
	return Mixer::ERR_OPEN;
167
    }
169
    }
168
170
Lines 170-175 Link Here
170
    {
172
    {
171
	kdDebug(67100) << probeMessage << "not found: snd_mixer_selem_register err=" << snd_strerror(err) << endl;
173
	kdDebug(67100) << probeMessage << "not found: snd_mixer_selem_register err=" << snd_strerror(err) << endl;
172
	//errormsg( Mixer::ERR_READ );
174
	//errormsg( Mixer::ERR_READ );
175
	close();
176
	snd_ctl_card_info_free(hw_info);
173
	return Mixer::ERR_READ;
177
	return Mixer::ERR_READ;
174
    }
178
    }
175
179
Lines 178-188 Link Here
178
	kdDebug(67100) << probeMessage << "not found: snd_mixer_load err=" << snd_strerror(err) << endl;
182
	kdDebug(67100) << probeMessage << "not found: snd_mixer_load err=" << snd_strerror(err) << endl;
179
	//errormsg( Mixer::ERR_READ );
183
	//errormsg( Mixer::ERR_READ );
180
	close();
184
	close();
185
	snd_ctl_card_info_free(hw_info);
181
	return Mixer::ERR_READ;
186
	return Mixer::ERR_READ;
182
    }
187
    }
183
188
184
    kdDebug(67100) << probeMessage << "found" << endl;
189
    kdDebug(67100) << probeMessage << "found" << endl;
185
190
191
    snd_mixer_elem_t *elem;
192
    snd_mixer_selem_id_t *sid;
193
186
    unsigned int mixerIdx = 0;
194
    unsigned int mixerIdx = 0;
187
    for ( elem = snd_mixer_first_elem( _handle ); elem; elem = snd_mixer_elem_next( elem ), mixerIdx++ )
195
    for ( elem = snd_mixer_first_elem( _handle ); elem; elem = snd_mixer_elem_next( elem ), mixerIdx++ )
188
    {
196
    {
Lines 195-202 Link Here
195
	    continue;
203
	    continue;
196
	}
204
	}
197
205
198
206
	snd_mixer_selem_id_malloc( &sid );
199
	sid = (snd_mixer_selem_id_t*)malloc(snd_mixer_selem_id_sizeof());  // I believe *we* must malloc it for ourself
200
	snd_mixer_selem_get_id( elem, sid );
207
	snd_mixer_selem_get_id( elem, sid );
201
208
202
	bool canRecord = false;
209
	bool canRecord = false;
Lines 346-351 Link Here
346
			}
353
			}
347
			if( !found )
354
			if( !found )
348
			{
355
			{
356
				close();
357
				snd_ctl_card_info_free(hw_info);
349
				return Mixer::ERR_INCOMPATIBLESET;
358
				return Mixer::ERR_INCOMPATIBLESET;
350
			}
359
			}
351
	    } // !virginOpen
360
	    } // !virginOpen
Lines 359-364 Link Here
359
    ***************************************************************************************/
368
    ***************************************************************************************/
360
    if ( !validDevice )
369
    if ( !validDevice )
361
    {
370
    {
371
	close();
372
	snd_ctl_card_info_free(hw_info);
362
	return Mixer::ERR_NODEV;
373
	return Mixer::ERR_NODEV;
363
    }
374
    }
364
375
Lines 372-377 Link Here
372
    /* setup for select on stdin and the mixer fd */
383
    /* setup for select on stdin and the mixer fd */
373
    if ((m_count = snd_mixer_poll_descriptors_count(_handle)) < 0) {
384
    if ((m_count = snd_mixer_poll_descriptors_count(_handle)) < 0) {
374
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" <<  m_count << "\n";
385
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" <<  m_count << "\n";
386
	close();
387
	snd_ctl_card_info_free(hw_info);
375
	return Mixer::ERR_OPEN;
388
	return Mixer::ERR_OPEN;
376
    }
389
    }
377
390
Lines 380-398 Link Here
380
    m_fds = (struct pollfd*)calloc(m_count, sizeof(struct pollfd));
393
    m_fds = (struct pollfd*)calloc(m_count, sizeof(struct pollfd));
381
    if (m_fds == NULL) {
394
    if (m_fds == NULL) {
382
	kdDebug(67100) << "Mixer_ALSA::poll() , calloc() = null" << "\n";
395
	kdDebug(67100) << "Mixer_ALSA::poll() , calloc() = null" << "\n";
396
	close();
397
	snd_ctl_card_info_free(hw_info);
383
        return Mixer::ERR_OPEN;
398
        return Mixer::ERR_OPEN;
384
    }
399
    }
385
400
386
    m_fds->events = POLLIN;
401
    m_fds->events = POLLIN;
387
    if ((err = snd_mixer_poll_descriptors(_handle, m_fds, m_count)) < 0) {
402
    if ((err = snd_mixer_poll_descriptors(_handle, m_fds, m_count)) < 0) {
388
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" <<  err << "\n";
403
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" <<  err << "\n";
404
	close();
405
	snd_ctl_card_info_free(hw_info);
389
        return Mixer::ERR_OPEN;
406
        return Mixer::ERR_OPEN;
390
    }
407
    }
391
    if (err != m_count) {
408
    if (err != m_count) {
392
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" << err << " m_count=" <<  m_count << "\n";
409
	kdDebug(67100) << "Mixer_ALSA::poll() , snd_mixer_poll_descriptors_count() err=" << err << " m_count=" <<  m_count << "\n";
410
	close();
411
	snd_ctl_card_info_free(hw_info);
393
        return Mixer::ERR_OPEN;
412
        return Mixer::ERR_OPEN;
394
    }
413
    }
395
414
415
    snd_ctl_card_info_free(hw_info);
416
396
    return 0;
417
    return 0;
397
}
418
}
398
419
Lines 449-454 Link Here
449
470
450
  }
471
  }
451
472
473
  for(int iMS = 0; iMS < mixer_sid_list.count(); iMS++)
474
    if(mixer_sid_list[iMS])
475
	snd_mixer_selem_id_free(mixer_sid_list[iMS]);
476
452
  mixer_elem_list.clear();
477
  mixer_elem_list.clear();
453
  mixer_sid_list.clear();
478
  mixer_sid_list.clear();
454
  m_mixDevices.clear();
479
  m_mixDevices.clear();
(-)tdemultimedia-trinity-14.0.8-orig/kmix/mixer.cpp (+2 lines)
Lines 4-9 Link Here
4
 *
4
 *
5
 * Copyright (C) 1996-2004 Christian Esken - esken@kde.org
5
 * Copyright (C) 1996-2004 Christian Esken - esken@kde.org
6
 *                    2002 Helio Chissini de Castro - helio@conectiva.com.br
6
 *                    2002 Helio Chissini de Castro - helio@conectiva.com.br
7
 * Copyright (C) 2017,2020 Roman Savochenko <roman@oscada.org>
7
 *
8
 *
8
 * This program is free software; you can redistribute it and/or
9
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Library General Public
10
 * modify it under the terms of the GNU Library General Public
Lines 98-103 Link Here
98
   // Close the mixer. This might also free memory, depending on the called backend method
99
   // Close the mixer. This might also free memory, depending on the called backend method
99
   close();
100
   close();
100
   delete _pollingTimer;
101
   delete _pollingTimer;
102
   delete _mixerBackend;
101
}
103
}
102
104
103
void Mixer::setDCOP_id( bool master )
105
void Mixer::setDCOP_id( bool master )
(-)tdemultimedia-trinity-14.0.8-orig/kmix/mixer.h (+1 lines)
Lines 7-12 Link Here
7
 * 1996-2000 Christian Esken <esken@kde.org>
7
 * 1996-2000 Christian Esken <esken@kde.org>
8
 * Sven Fischer <herpes@kawo2.rwth-aachen.de>
8
 * Sven Fischer <herpes@kawo2.rwth-aachen.de>
9
 * 2002 - Helio Chissini de Castro <helio@conectiva.com.br>
9
 * 2002 - Helio Chissini de Castro <helio@conectiva.com.br>
10
 * Copyright (C) 2017 Roman Savochenko <roman@oscada.org>
10
 *
11
 *
11
 * This program is free software; you can redistribute it and/or
12
 * This program is free software; you can redistribute it and/or
12
 * modify it under the terms of the GNU Library General Public
13
 * modify it under the terms of the GNU Library General Public
(-)tdemultimedia-trinity-14.0.8-orig/kmix/mixertoolbox.cpp (-4 / +7 lines)
Lines 3-8 Link Here
3
 *
3
 *
4
 *
4
 *
5
 * Copyright (C) 2004 Christian Esken <esken@kde.org>
5
 * Copyright (C) 2004 Christian Esken <esken@kde.org>
6
 * Copyright (C) 2017,2020 Roman Savochenko <roman@oscada.org>
6
 *
7
 *
7
 * This program is free software; you can redistribute it and/or
8
 * This program is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Library General Public
9
 * modify it under the terms of the GNU Library General Public
Lines 115-121 Link Here
115
	    // approach doesn't work for the one or other user.
116
	    // approach doesn't work for the one or other user.
116
	    int devNumMax = 19;
117
	    int devNumMax = 19;
117
	    getDevIteratorFunc* f = g_mixerFactories[drv].getDevIterator;
118
	    getDevIteratorFunc* f = g_mixerFactories[drv].getDevIterator;
118
	    for( DevIterator* I = f ? f() : new DevIterator(); !I->end(); I->next())
119
	    DevIterator *I = f ? f() : new DevIterator();
120
	    for( ; !I->end(); I->next())
119
	    {
121
	    {
120
		int dev = I->getdev();
122
		int dev = I->getdev();
121
		Mixer *mixer = new Mixer( drv, dev );
123
		Mixer *mixer = new Mixer( drv, dev );
Lines 212-217 Link Here
212
		} //  !multipleDriversActive
214
		} //  !multipleDriversActive
213
		
215
		
214
	    } // loop over sound card devices of current driver
216
	    } // loop over sound card devices of current driver
217
	    delete I;
215
	} // loop over soundcard drivers
218
	} // loop over soundcard drivers
216
219
217
        if ( Mixer::masterCard() == 0 ) {
220
        if ( Mixer::masterCard() == 0 ) {
Lines 241-255 Link Here
241
/*
244
/*
242
 * Clean up and free all ressources of all found Mixers, which were found in the initMixer() call
245
 * Clean up and free all ressources of all found Mixers, which were found in the initMixer() call
243
 */
246
 */
244
void MixerToolBox::deinitMixer()
247
void MixerToolBox::deinitMixer(TQPtrList<Mixer> &mixers)
245
{
248
{
246
   //kdDebug(67100) << "IN MixerToolBox::deinitMixer()"<<endl;
249
   //kdDebug(67100) << "IN MixerToolBox::deinitMixer()"<<endl;
247
   Mixer *mixer;
250
   Mixer *mixer;
248
   while ( (mixer=Mixer::mixers().first()) != 0)
251
   while ( (mixer=mixers.first()) != 0)
249
   {
252
   {
250
      //kdDebug(67100) << "MixerToolBox::deinitMixer() Remove Mixer" << endl;
253
      //kdDebug(67100) << "MixerToolBox::deinitMixer() Remove Mixer" << endl;
251
      mixer->close();
254
      mixer->close();
252
      Mixer::mixers().remove(mixer);
255
      mixers.remove(mixer);
253
      delete mixer;
256
      delete mixer;
254
   }
257
   }
255
   // kdDebug(67100) << "OUT MixerToolBox::deinitMixer()"<<endl;
258
   // kdDebug(67100) << "OUT MixerToolBox::deinitMixer()"<<endl;
(-)tdemultimedia-trinity-14.0.8-orig/kmix/mixertoolbox.h (-1 / +23 lines)
Lines 1-3 Link Here
1
/*
2
 * KMix -- KDE's full featured mini mixer
3
 *
4
 *
5
 * Copyright (C) 2004 Christian Esken <esken@kde.org>
6
 * Copyright (C) 2020 Roman Savochenko <roman@oscada.org>
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Library General Public
10
 * License as published by the Free Software Foundation; either
11
 * version 2 of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Library General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Library General Public
19
 * License along with this program; if not, write to the Free
20
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
 */
22
1
#ifndef MIXERTOOLBOX_H
23
#ifndef MIXERTOOLBOX_H
2
#define MIXERTOOLBOX_H
24
#define MIXERTOOLBOX_H
3
25
Lines 15-21 Link Here
15
class MixerToolBox {
37
class MixerToolBox {
16
 public:
38
 public:
17
    static void initMixer(TQPtrList<Mixer>&, bool, TQString&);
39
    static void initMixer(TQPtrList<Mixer>&, bool, TQString&);
18
    static void deinitMixer();
40
    static void deinitMixer(TQPtrList<Mixer>&);
19
};
41
};
20
    
42
    
21
43

Return to bug 3159