Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qalsaaudiosource_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
//
5
// W A R N I N G
6
// -------------
7
//
8
// This file is not part of the Qt API. It exists for the convenience
9
// of other Qt classes. This header file may change from version to
10
// version without notice, or even be removed.
11
//
12
// We mean it.
13
//
14
15
16
#
ifndef
QAUDIOINPUTALSA_H
17
#
define
QAUDIOINPUTALSA_H
18
19
#
include
<
alsa
/
asoundlib
.
h
>
20
21
#
include
<
QtCore
/
qfile
.
h
>
22
#
include
<
QtCore
/
qdebug
.
h
>
23
#
include
<
QtCore
/
qtimer
.
h
>
24
#
include
<
QtCore
/
qstring
.
h
>
25
#
include
<
QtCore
/
qstringlist
.
h
>
26
#
include
<
QtCore
/
qelapsedtimer
.
h
>
27
#
include
<
QtCore
/
qiodevice
.
h
>
28
29
#
include
<
QtMultimedia
/
qaudio
.
h
>
30
#
include
<
QtMultimedia
/
qaudiodevice
.
h
>
31
#
include
<
private
/
qaudiosystem_p
.
h
>
32
33
QT_BEGIN_NAMESPACE
34
35
36
class
AlsaInputPrivate;
37
38
class
RingBuffer
39
{
40
public
:
41
RingBuffer
();
42
43
void
resize
(
int
size);
44
45
int
bytesOfDataInBuffer
()
const
;
46
int
freeBytes
()
const
;
47
48
const
char
*
availableData
()
const
;
49
int
availableDataBlockSize
()
const
;
50
void
readBytes
(
int
bytes);
51
52
void
write
(
char
*data,
int
len);
53
54
private
:
55
int
m_head;
56
int
m_tail;
57
58
QByteArray m_data;
59
};
60
61
class
QAlsaAudioSource
:
public
QPlatformAudioSource
62
{
63
Q_OBJECT
64
public
:
65
QAlsaAudioSource
(
QAudioDevice
device
,
const
QAudioFormat
&,
QObject
*
parent
);
66
~
QAlsaAudioSource
();
67
68
qint64
read
(
char
* data, qint64 len);
69
70
void
start
(QIODevice* device)
override
;
71
QIODevice
*
start
()
override
;
72
void
stop
()
override
;
73
void
reset
()
override
;
74
void
suspend
()
override
;
75
void
resume
()
override
;
76
qsizetype
bytesReady
()
const
override
;
77
void
setBufferSize
(qsizetype value)
override
;
78
qsizetype
bufferSize
()
const
override
;
79
qint64
processedUSecs
()
const
override
;
80
QAudio
::
State
state
()
const
override
;
81
bool
resuming
;
82
snd_pcm_t*
handle
;
83
qint64
totalTimeValue
;
84
QIODevice
*
audioSource
;
85
QAudio
::
State
deviceState
;
86
87
private
Q_SLOTS
:
88
void
userFeed
();
89
bool
deviceReady();
90
91
private
:
92
int
checkBytesReady();
93
int
xrun_recovery(
int
err);
94
int
setFormat();
95
bool
open();
96
void
close();
97
void
drain();
98
99
QTimer* timer;
100
qint64 elapsedTimeOffset;
101
RingBuffer
ringBuffer;
102
qsizetype bytesAvailable;
103
bool
pullMode;
104
qsizetype buffer_size;
105
int
period_size;
106
unsigned
int
buffer_time;
107
unsigned
int
period_time;
108
snd_pcm_uframes_t buffer_frames;
109
snd_pcm_uframes_t period_frames;
110
snd_pcm_access_t access;
111
snd_pcm_format_t pcmformat;
112
snd_pcm_hw_params_t *hwparams;
113
};
114
115
class
AlsaInputPrivate
:
public
QIODevice
116
{
117
Q_OBJECT
118
public
:
119
AlsaInputPrivate
(
QAlsaAudioSource
*
audio
);
120
~
AlsaInputPrivate
();
121
122
qint64
readData
(
char
* data, qint64 len)
override
;
123
qint64
writeData
(
const
char
* data, qint64 len)
override
;
124
125
void
trigger
();
126
private
:
127
QAlsaAudioSource
*audioDevice;
128
};
129
130
QT_END_NAMESPACE
131
132
133
#
endif
AlsaInputPrivate
Definition
qalsaaudiosource_p.h:116
AlsaInputPrivate::trigger
void trigger()
Definition
qalsaaudiosource.cpp:637
AlsaInputPrivate::~AlsaInputPrivate
~AlsaInputPrivate()
Definition
qalsaaudiosource.cpp:621
AlsaInputPrivate::readData
qint64 readData(char *data, qint64 len) override
Reads up to maxSize bytes from the device into data, and returns the number of bytes read or -1 if an...
Definition
qalsaaudiosource.cpp:625
AlsaInputPrivate::writeData
qint64 writeData(const char *data, qint64 len) override
Writes up to maxSize bytes from data to the device.
Definition
qalsaaudiosource.cpp:630
QAlsaAudioSource
Definition
qalsaaudiosource_p.h:62
QAlsaAudioSource::resume
void resume() override
Definition
qalsaaudiosource.cpp:506
QAlsaAudioSource::reset
void reset() override
Definition
qalsaaudiosource.cpp:602
QAlsaAudioSource::stop
void stop() override
Definition
qalsaaudiosource.cpp:168
QAlsaAudioSource::bytesReady
qsizetype bytesReady() const override
Definition
qalsaaudiosource.cpp:357
QAlsaAudioSource::deviceState
QAudio::State deviceState
Definition
qalsaaudiosource_p.h:85
QAlsaAudioSource::start
QIODevice * start() override
Definition
qalsaaudiosource.cpp:146
QAlsaAudioSource::setBufferSize
void setBufferSize(qsizetype value) override
Definition
qalsaaudiosource.cpp:530
QAlsaAudioSource::state
QAudio::State state() const override
Definition
qalsaaudiosource.cpp:41
QAlsaAudioSource::resuming
bool resuming
Definition
qalsaaudiosource_p.h:81
QAlsaAudioSource::bufferSize
qsizetype bufferSize() const override
Definition
qalsaaudiosource.cpp:535
QAlsaAudioSource::processedUSecs
qint64 processedUSecs() const override
Definition
qalsaaudiosource.cpp:540
QAlsaAudioSource::audioSource
QIODevice * audioSource
Definition
qalsaaudiosource_p.h:84
QAlsaAudioSource::handle
snd_pcm_t * handle
Definition
qalsaaudiosource_p.h:82
QAlsaAudioSource::start
void start(QIODevice *device) override
Definition
qalsaaudiosource.cpp:127
QAlsaAudioSource::read
qint64 read(char *data, qint64 len)
Definition
qalsaaudiosource.cpp:362
QAlsaAudioSource::totalTimeValue
qint64 totalTimeValue
Definition
qalsaaudiosource_p.h:83
QAlsaAudioSource::~QAlsaAudioSource
~QAlsaAudioSource()
Definition
qalsaaudiosource.cpp:34
QAlsaAudioSource::suspend
void suspend() override
Definition
qalsaaudiosource.cpp:549
QAudioDevice
The QAudioDevice class provides an information about audio devices and their functionality.
Definition
qaudiodevice.h:23
RingBuffer
Definition
qalsaaudiosource_p.h:39
RingBuffer::availableData
const char * availableData() const
Definition
qalsaaudiosource.cpp:673
RingBuffer::availableDataBlockSize
int availableDataBlockSize() const
Definition
qalsaaudiosource.cpp:678
RingBuffer::RingBuffer
RingBuffer()
Definition
qalsaaudiosource.cpp:642
RingBuffer::write
void write(char *data, int len)
Definition
qalsaaudiosource.cpp:693
RingBuffer::freeBytes
int freeBytes() const
Definition
qalsaaudiosource.cpp:663
RingBuffer::readBytes
void readBytes(int bytes)
Definition
qalsaaudiosource.cpp:688
RingBuffer::bytesOfDataInBuffer
int bytesOfDataInBuffer() const
Definition
qalsaaudiosource.cpp:653
RingBuffer::resize
void resize(int size)
Definition
qalsaaudiosource.cpp:648
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtmultimedia
src
multimedia
alsa
qalsaaudiosource_p.h
Generated on
for Qt by
1.18.0