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 startProcessing() override;
77 void stopProcessing() 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;
86
88
91
93
95
96 SDL_AudioSpec m_inputAudioHandle;
98} ;
99
100
101} // namespace lmms
102
103#endif // LMMS_HAVE_SDL
104
105#endif // LMMS_AUDIO_SDL_H
Uint32 SDL_AudioDeviceID
Definition CarlaEngineSDL.cpp:27
AudioEngine * audioEngine()
Definition AudioDevice.h:121
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:250
QComboBox * m_playbackDeviceComboBox
Definition AudioSdl.h:68
static QString s_systemDefaultDevice
Definition AudioSdl.h:71
~setupWidget() override=default
setupWidget(QWidget *_parent)
Definition AudioSdl.cpp:228
void populatePlaybackDeviceComboBox()
Definition AudioSdl.cpp:275
void populateInputDeviceComboBox()
Definition AudioSdl.cpp:295
SampleFrame * m_outBuf
Definition AudioSdl.h:87
~AudioSdl() override
Definition AudioSdl.cpp:122
SDL_AudioDeviceID m_outputDevice
Definition AudioSdl.h:94
SDL_AudioSpec m_inputAudioHandle
Definition AudioSdl.h:96
SDL_AudioDeviceID m_inputDevice
Definition AudioSdl.h:97
void stopProcessing() override
Definition AudioSdl.cpp:150
static QString name()
Definition AudioSdl.h:48
static void sdlInputAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition AudioSdl.cpp:213
size_t m_currentBufferFramePos
Definition AudioSdl.h:89
static void sdlAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition AudioSdl.cpp:167
bool m_stopped
Definition AudioSdl.h:92
SDL_AudioSpec m_audioHandle
Definition AudioSdl.h:85
void startProcessing() override
Definition AudioSdl.cpp:139
size_t m_currentBufferFramesCount
Definition AudioSdl.h:90
AudioSdl(bool &_success_ful, AudioEngine *audioEngine)
Definition AudioSdl.cpp:44
Definition SampleFrame.h:41
Definition AudioDeviceSetupWidget.h:35
Definition AudioAlsa.cpp:35