2
* AudioDummy.h - dummy audio-device
4
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
6
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU 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.
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
* General Public License for more details.
18
* You should have received a copy of the GNU General Public
19
* License along with this program (see COPYING); if not, write to the
20
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
* Boston, MA 02110-1301 USA.
25
#ifndef _AUDIO_DUMMY_H
26
#define _AUDIO_DUMMY_H
28
#include "AudioDevice.h"
29
#include "MicroTimer.h"
32
class AudioDummy : public AudioDevice, public QThread
35
AudioDummy( bool & _success_ful, mixer * _mixer ) :
36
AudioDevice( DEFAULT_CHANNELS, _mixer )
46
inline static QString name()
48
return QT_TRANSLATE_NOOP( "setupWidget", "Dummy (no sound output)" );
52
class setupWidget : public AudioDevice::setupWidget
55
setupWidget( QWidget * _parent ) :
56
AudioDevice::setupWidget( AudioDummy::name(), _parent )
60
virtual ~setupWidget()
64
virtual void saveSettings()
70
parentWidget()->hide();
78
virtual void startProcessing()
83
virtual void stopProcessing()
98
const surroundSampleFrame * b =
99
getMixer()->nextBuffer();
106
const Sint32 microseconds = static_cast<Sint32>(
107
getMixer()->framesPerPeriod() *
109
getMixer()->processingSampleRate() -
111
if( microseconds > 0 )
113
usleep( microseconds );