MythTV
master
libs
libmythtv
io
mythfifowriter.h
Go to the documentation of this file.
1
#ifndef FIFOWRITER
2
#define FIFOWRITER
3
4
// Qt
5
#include <QWaitCondition>
6
#include <QString>
7
#include <QMutex>
8
9
// MythTV
10
#include "
libmythbase/mthread.h
"
11
#include "
libmythtv/mythtvexp.h
"
12
13
class
MythFIFOWriter
;
14
15
class
MythFIFOThread
:
public
MThread
16
{
17
public
:
18
MythFIFOThread
();
19
~MythFIFOThread
()
override
;
20
21
void
SetId
(
int
Id);
22
void
SetParent
(
MythFIFOWriter
*Parent);
23
24
void
run
(
void
)
override
;
25
26
private
:
27
MythFIFOWriter
*
m_parent
{
nullptr
};
28
int
m_id
{ -1 };
29
};
30
31
class
MTV_PUBLIC
MythFIFOWriter
32
{
33
friend
class
MythFIFOThread
;
34
35
public
:
36
MythFIFOWriter
(
uint
Count,
bool
Sync);
37
~
MythFIFOWriter
(
void
);
38
39
bool
FIFOInit (
uint
Id,
const
QString& Desc,
const
QString&
Name
,
long
Size,
int
NumBufs);
40
void
FIFOWrite(
uint
Id,
void
*
Buffer
,
long
Size);
41
void
FIFODrain(
void
);
42
43
private
:
44
Q_DISABLE_COPY(
MythFIFOWriter
)
45
void
FIFOWriteThread(
int
Id);
46
47
struct
MythFifoBuffer
48
{
49
struct
MythFifoBuffer
*
m_next
;
50
unsigned
char
*
m_data
;
51
long
m_blockSize
;
52
};
53
54
MythFifoBuffer
**m_fifoBuf {
nullptr
};
55
MythFifoBuffer
**m_fbInptr {
nullptr
};
56
MythFifoBuffer
**m_fbOutptr {
nullptr
};
57
58
MythFIFOThread
*m_fifoThrds {
nullptr
};
59
QMutex *m_fifoLock {
nullptr
};
60
QWaitCondition *m_fullCond {
nullptr
};
61
QWaitCondition *m_emptyCond {
nullptr
};
62
63
QString *m_filename {
nullptr
};
64
QString *m_fbDesc {
nullptr
};
65
66
long
*m_maxBlkSize {
nullptr
};
67
int
*m_killWr {
nullptr
};
68
int
*m_fbCount {
nullptr
};
69
int
*m_fbMaxCount {
nullptr
};
70
uint
m_numFifos { 0 };
71
bool
m_useSync
;
72
};
73
74
#endif
75
MythFIFOThread::~MythFIFOThread
~MythFIFOThread() override
Definition:
mythfifowriter.cpp:30
mythtvexp.h
MythFIFOThread::MythFIFOThread
MythFIFOThread()
Definition:
mythfifowriter.cpp:25
MythFIFOThread
Definition:
mythfifowriter.h:15
MythFIFOWriter::m_useSync
bool m_useSync
Definition:
mythfifowriter.h:71
MythFIFOWriter
Definition:
mythfifowriter.h:31
MythFIFOThread::m_id
int m_id
Definition:
mythfifowriter.h:28
MythFIFOThread::SetParent
void SetParent(MythFIFOWriter *Parent)
Definition:
mythfifowriter.cpp:42
MythFIFOWriter::MythFifoBuffer
Definition:
mythfifowriter.h:47
MythFIFOWriter::MythFifoBuffer::m_blockSize
long m_blockSize
Definition:
mythfifowriter.h:51
MythFIFOThread::run
void run(void) override
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
Definition:
mythfifowriter.cpp:47
uint
unsigned int uint
Definition:
compat.h:81
MythFIFOWriter::MythFifoBuffer::m_next
struct MythFifoBuffer * m_next
Definition:
mythfifowriter.h:49
MTV_PUBLIC
#define MTV_PUBLIC
Definition:
mythtvexp.h:15
MythFIFOWriter::MythFifoBuffer::m_data
unsigned char * m_data
Definition:
mythfifowriter.h:50
Buffer
Definition:
MythExternControl.h:36
Name
Definition:
channelsettings.cpp:71
MThread
This is a wrapper around QThread that does several additional things.
Definition:
mthread.h:48
mthread.h
MythFIFOThread::m_parent
MythFIFOWriter * m_parent
Definition:
mythfifowriter.h:27
MythFIFOThread::SetId
void SetId(int Id)
Definition:
mythfifowriter.cpp:37
Generated on Tue Jun 6 2023 03:22:22 for MythTV by
1.8.17