LMMS
Loading...
Searching...
No Matches
AudioSdl.h
Go to the documentation of this file.
1/*
2 * AudioSdl.h - device-class that performs PCM-output via SDL
3 *
4 * Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
5 *
6 * This file is part of LMMS - https://lmms.io
7 *
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.
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 * General Public License for more details.
17 *
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.
22 *
23 */
24
25#ifndef LMMS_AUDIO_SDL_H
26#define LMMS_AUDIO_SDL_H
27
28#include "lmmsconfig.h"
29
30#ifdef LMMS_HAVE_SDL
31
32#include <SDL2/SDL_audio.h>
33
34#include "AudioDevice.h"
36
37class QComboBox;
38
39namespace lmms
40{
41
42class AudioSdl : public AudioDevice
43{
44public:
45 AudioSdl( bool & _success_ful, AudioEngine* audioEngine );
46 ~AudioSdl() override;
47
48 inline static QString name()
49 {
50 return QT_TRANSLATE_NOOP( "AudioDeviceSetupWidget",
51 "SDL (Simple DirectMedia Layer)" );
52 }
53
54
56 {
57 public:
58 setupWidget( QWidget * _parent );
59 ~setupWidget() override = default;
60
61 void saveSettings() override;
62
63 private:
66
67 private:
68 QComboBox* m_playbackDeviceComboBox = nullptr;
69 QComboBox* m_inputDeviceComboBox = nullptr;
70
71 static QString s_systemDefaultDevice;
72 } ;
73
74
75private:
76 void startProcessingImpl() override;
77 void stopProcessingImpl() override;
78
79 static void sdlAudioCallback( void * _udata, Uint8 * _buf, int _len );
80 void sdlAudioCallback( Uint8 * _buf, int _len );
81
82 static void sdlInputAudioCallback( void * _udata, Uint8 * _buf, int _len );
83 void sdlInputAudioCallback( Uint8 * _buf, int _len );
84
85 SDL_AudioSpec m_audioHandle;
87
88 SDL_AudioSpec m_inputAudioHandle;
90} ;
91
92
93} // namespace lmms
94
95#endif // LMMS_HAVE_SDL
96
97#endif // LMMS_AUDIO_SDL_H
Uint32 SDL_AudioDeviceID
Definition CarlaEngineSDL.cpp:27
AudioEngine * audioEngine()
Definition AudioDevice.h:84
AudioDevice(const ch_cnt_t _channels, AudioEngine *audioEngine)
Definition AudioDevice.cpp:33
Definition AudioEngine.h:66
QComboBox * m_inputDeviceComboBox
Definition AudioSdl.h:69
void saveSettings() override
Definition AudioSdl.cpp:214
QComboBox * m_playbackDeviceComboBox
Definition AudioSdl.h:68
static QString s_systemDefaultDevice
Definition AudioSdl.h:71
~setupWidget() override=default
setupWidget(QWidget *_parent)
Definition AudioSdl.cpp:192
void populatePlaybackDeviceComboBox()
Definition AudioSdl.cpp:239
void populateInputDeviceComboBox()
Definition AudioSdl.cpp:259
~AudioSdl() override
Definition AudioSdl.cpp:118
SDL_AudioDeviceID m_outputDevice
Definition AudioSdl.h:86
SDL_AudioSpec m_inputAudioHandle
Definition AudioSdl.h:88
SDL_AudioDeviceID m_inputDevice
Definition AudioSdl.h:89
static QString name()
Definition AudioSdl.h:48
static void sdlInputAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition AudioSdl.cpp:177
static void sdlAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition AudioSdl.cpp:155
void startProcessingImpl() override
Definition AudioSdl.cpp:131
SDL_AudioSpec m_audioHandle
Definition AudioSdl.h:85
void stopProcessingImpl() override
Definition AudioSdl.cpp:140
AudioSdl(bool &_success_ful, AudioEngine *audioEngine)
Definition AudioSdl.cpp:44
Definition AudioDeviceSetupWidget.h:35
Definition AudioAlsa.cpp:35