lmms
Cross-platform music production software
Toggle main menu visibility
Loading...
Searching...
No Matches
include
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
"
35
#include "
AudioDeviceSetupWidget.h
"
36
37
class
QComboBox;
38
39
namespace
lmms
40
{
41
42
class
AudioSdl
:
public
AudioDevice
43
{
44
public
:
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
55
class
setupWidget
:
public
gui::AudioDeviceSetupWidget
56
{
57
public
:
58
setupWidget
( QWidget * _parent );
59
~setupWidget
()
override
=
default
;
60
61
void
saveSettings
()
override
;
62
63
private
:
64
void
populatePlaybackDeviceComboBox
();
65
void
populateInputDeviceComboBox
();
66
67
private
:
68
QComboBox*
m_playbackDeviceComboBox
=
nullptr
;
69
QComboBox*
m_inputDeviceComboBox
=
nullptr
;
70
71
static
QString
s_systemDefaultDevice
;
72
} ;
73
74
75
private
:
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
;
86
SDL_AudioDeviceID
m_outputDevice
;
87
88
SDL_AudioSpec
m_inputAudioHandle
;
89
SDL_AudioDeviceID
m_inputDevice
;
90
} ;
91
92
93
}
// namespace lmms
94
95
#endif
// LMMS_HAVE_SDL
96
97
#endif
// LMMS_AUDIO_SDL_H
AudioDevice.h
AudioDeviceSetupWidget.h
lmms::AudioDevice::audioEngine
AudioEngine * audioEngine()
Definition
AudioDevice.h:84
lmms::AudioDevice::AudioDevice
AudioDevice(const ch_cnt_t _channels, AudioEngine *audioEngine)
Definition
AudioDevice.cpp:33
lmms::AudioEngine
Definition
AudioEngine.h:66
lmms::AudioSdl::setupWidget::m_inputDeviceComboBox
QComboBox * m_inputDeviceComboBox
Definition
AudioSdl.h:69
lmms::AudioSdl::setupWidget::saveSettings
void saveSettings() override
Definition
AudioSdl.cpp:214
lmms::AudioSdl::setupWidget::m_playbackDeviceComboBox
QComboBox * m_playbackDeviceComboBox
Definition
AudioSdl.h:68
lmms::AudioSdl::setupWidget::s_systemDefaultDevice
static QString s_systemDefaultDevice
Definition
AudioSdl.h:71
lmms::AudioSdl::setupWidget::~setupWidget
~setupWidget() override=default
lmms::AudioSdl::setupWidget::setupWidget
setupWidget(QWidget *_parent)
Definition
AudioSdl.cpp:192
lmms::AudioSdl::setupWidget::populatePlaybackDeviceComboBox
void populatePlaybackDeviceComboBox()
Definition
AudioSdl.cpp:239
lmms::AudioSdl::setupWidget::populateInputDeviceComboBox
void populateInputDeviceComboBox()
Definition
AudioSdl.cpp:259
lmms::AudioSdl::m_outputDevice
SDL_AudioDeviceID m_outputDevice
Definition
AudioSdl.h:86
lmms::AudioSdl::m_inputAudioHandle
SDL_AudioSpec m_inputAudioHandle
Definition
AudioSdl.h:88
lmms::AudioSdl::m_inputDevice
SDL_AudioDeviceID m_inputDevice
Definition
AudioSdl.h:89
lmms::AudioSdl::name
static QString name()
Definition
AudioSdl.h:48
lmms::AudioSdl::sdlInputAudioCallback
static void sdlInputAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition
AudioSdl.cpp:177
lmms::AudioSdl::sdlAudioCallback
static void sdlAudioCallback(void *_udata, Uint8 *_buf, int _len)
Definition
AudioSdl.cpp:155
lmms::AudioSdl::startProcessingImpl
void startProcessingImpl() override
Definition
AudioSdl.cpp:131
lmms::AudioSdl::m_audioHandle
SDL_AudioSpec m_audioHandle
Definition
AudioSdl.h:85
lmms::AudioSdl::stopProcessingImpl
void stopProcessingImpl() override
Definition
AudioSdl.cpp:140
lmms::AudioSdl::AudioSdl
AudioSdl(bool &_success_ful, AudioEngine *audioEngine)
Definition
AudioSdl.cpp:44
lmms::gui::AudioDeviceSetupWidget
Definition
AudioDeviceSetupWidget.h:35
lmms
Definition
RemotePluginBase.cpp:34
Generated on
for lmms by
1.18.0