Qmmp
src
qmmp
recycler_p.h
1
// Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com>
2
//
3
// Use, modification and distribution is allowed without limitation,
4
// warranty, or liability of any kind.
5
//
6
7
#ifndef RECYCLER_P_H
8
#define RECYCLER_P_H
9
10
#include <QMutex>
11
#include <QWaitCondition>
12
#include "qmmp.h"
13
#include "buffer.h"
14
19
class
Recycler
20
{
21
public
:
25
Recycler();
29
~Recycler();
35
void
configure(quint32 freq,
int
chan);
39
bool
full()
const
;
43
bool
empty()
const
;
47
int
available()
const
;
51
int
used()
const
;
55
Buffer
*next();
59
Buffer
*get();
// get next in recycle
63
void
add();
// add to queue
67
void
done();
// add to recycle
71
void
clear();
// clear queue
75
size_t
samples()
const
;
// size in samples
79
size_t
blockSamples()
const
;
// size in samples
80
84
QMutex *mutex()
85
{
86
return
&m_mtx;
87
}
91
QWaitCondition *cond()
92
{
93
return
&m_cnd;
94
}
98
bool
blocked();
99
100
private
:
101
unsigned
int
m_buffer_count = 0, m_add_index = 0, m_done_index = 0, m_current_count = 0;
102
size_t
m_block_samples = 0;
103
Buffer
**m_buffers =
nullptr
;
104
QMutex m_mtx;
105
QWaitCondition m_cnd;
106
Buffer
*m_blocked =
nullptr
;
107
};
108
109
#endif
// __recycler_h
Buffer
Audio buffer class.
Definition:
buffer.h:21
Generated on Tue Dec 26 2023 13:28:49 for Qmmp by
1.9.1