LMMS
Loading...
Searching...
No Matches
AudioPulseAudio.h
Go to the documentation of this file.
1/*
2 * AudioPulseAudio.h - device-class which implements PulseAudio-output
3 *
4 * Copyright (c) 2008-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_PULSEAUDIO_H
26#define LMMS_AUDIO_PULSEAUDIO_H
27
28#include "lmmsconfig.h"
29
30#ifdef LMMS_HAVE_PULSEAUDIO
31
32#include <pulse/pulseaudio.h>
33#include <QSemaphore>
34#include <QThread>
35
36#include "AudioDevice.h"
38
39class QLineEdit;
40
41namespace lmms
42{
43
44namespace gui
45{
46class LcdSpinBox;
47}
48
49
50class AudioPulseAudio : public QThread, public AudioDevice
51{
52 Q_OBJECT
53public:
54 AudioPulseAudio( bool & _success_ful, AudioEngine* audioEngine );
55 ~AudioPulseAudio() override;
56
57 inline static QString name()
58 {
59 return QT_TRANSLATE_NOOP( "AudioDeviceSetupWidget", "PulseAudio" );
60 }
61
62 static QString probeDevice();
63
64
66 {
67 public:
68 setupWidget( QWidget * _parent );
69 ~setupWidget() override;
70
71 void saveSettings() override;
72
73 private:
74 QLineEdit * m_device;
76
77 } ;
78
79
80 void streamWriteCallback( pa_stream * s, size_t length );
81
82 void signalConnected( bool connected );
83
84 pa_stream * m_s;
85 pa_sample_spec m_sampleSpec;
86
87
88private:
89 void startProcessing() override;
90 void stopProcessing() override;
91 void run() override;
92
93 volatile bool m_quit;
94
96
99
100} ;
101
102} // namespace lmms
103
104#endif // LMMS_HAVE_PULSEAUDIO
105
106#endif // LMMS_AUDIO_PULSEAUDIO_H
AudioEngine * audioEngine()
Definition AudioDevice.h:121
AudioDevice(const ch_cnt_t _channels, AudioEngine *audioEngine)
Definition AudioDevice.cpp:33
Definition AudioEngine.h:66
void saveSettings() override
Definition AudioPulseAudio.cpp:323
QLineEdit * m_device
Definition AudioPulseAudio.h:74
gui::LcdSpinBox * m_channels
Definition AudioPulseAudio.h:75
~setupWidget() override
Definition AudioPulseAudio.cpp:315
setupWidget(QWidget *_parent)
Definition AudioPulseAudio.cpp:292
void signalConnected(bool connected)
Definition AudioPulseAudio.cpp:280
~AudioPulseAudio() override
Definition AudioPulseAudio.cpp:69
static QString probeDevice()
Definition AudioPulseAudio.cpp:77
QSemaphore m_connectedSemaphore
Definition AudioPulseAudio.h:98
AudioPulseAudio(bool &_success_ful, AudioEngine *audioEngine)
Definition AudioPulseAudio.cpp:48
pa_sample_spec m_sampleSpec
Definition AudioPulseAudio.h:85
void stopProcessing() override
Definition AudioPulseAudio.cpp:105
bool m_convertEndian
Definition AudioPulseAudio.h:95
void run() override
Definition AudioPulseAudio.cpp:190
volatile bool m_quit
Definition AudioPulseAudio.h:93
void startProcessing() override
Definition AudioPulseAudio.cpp:94
pa_stream * m_s
Definition AudioPulseAudio.h:84
bool m_connected
Definition AudioPulseAudio.h:97
static QString name()
Definition AudioPulseAudio.h:57
void streamWriteCallback(pa_stream *s, size_t length)
Definition AudioPulseAudio.cpp:249
Definition AudioDeviceSetupWidget.h:35
Definition LcdSpinBox.h:35
unsigned s
Definition inflate.c:1555
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
png_uint_32 length
Definition png.c:2247