vdr
2.0.4
Main Page
Namespaces
Classes
Files
File List
File Members
PLUGINS
src
dvbhddevice
dvbhdffdevice.h
Go to the documentation of this file.
1
/*
2
* dvbhdffdevice.h: The DVB HD Full Featured device interface
3
*
4
* See the README file for copyright information and how to reach the author.
5
*/
6
7
#ifndef __DVBHDFFDEVICE_H
8
#define __DVBHDFFDEVICE_H
9
10
#include "
hdffcmd.h
"
11
#include <vdr/dvbdevice.h>
12
#include <vdr/dvbspu.h>
13
15
16
class
cDvbHdFfDevice
:
public
cDvbDevice
{
17
private
:
18
int
fd_osd
,
fd_audio
,
fd_video
;
19
protected
:
20
virtual
void
MakePrimaryDevice
(
bool
On);
21
public
:
22
static
bool
Probe
(
int
Adapter
,
int
Frontend
);
23
cDvbHdFfDevice
(
int
Adapter
,
int
Frontend
);
24
virtual
~cDvbHdFfDevice
();
25
virtual
bool
HasDecoder
(
void
)
const
;
26
27
// SPU facilities
28
29
private
:
30
cDvbSpuDecoder
*
spuDecoder
;
31
public
:
32
virtual
cSpuDecoder
*
GetSpuDecoder
(
void
);
33
34
// Channel facilities
35
36
private
:
37
void
TurnOffLiveMode
(
bool
LiveView);
38
protected
:
39
virtual
bool
SetChannelDevice
(
const
cChannel
*Channel,
bool
LiveView);
40
41
// PID handle facilities
42
43
protected
:
44
virtual
bool
SetPid
(
cPidHandle
*Handle,
int
Type,
bool
On);
45
46
// Image Grab facilities
47
48
public
:
49
virtual
uchar
*
GrabImage
(
int
&Size,
bool
Jpeg =
true
,
int
Quality = -1,
int
SizeX = -1,
int
SizeY = -1);
50
51
// Video format facilities
52
53
public
:
54
virtual
void
SetVideoDisplayFormat
(
eVideoDisplayFormat
VideoDisplayFormat);
55
virtual
void
SetVideoFormat
(
bool
VideoFormat16_9);
56
virtual
eVideoSystem
GetVideoSystem
(
void
);
57
virtual
void
GetVideoSize
(
int
&Width,
int
&Height,
double
&VideoAspect);
58
virtual
void
GetOsdSize
(
int
&Width,
int
&Height,
double
&PixelAspect);
59
60
// Track facilities
61
62
protected
:
63
virtual
void
SetAudioTrackDevice
(
eTrackType
Type);
64
65
// Audio facilities
66
67
private
:
68
int
audioChannel
;
69
protected
:
70
virtual
int
GetAudioChannelDevice
(
void
);
71
virtual
void
SetAudioChannelDevice
(
int
AudioChannel);
72
virtual
void
SetVolumeDevice
(
int
Volume);
73
virtual
void
SetDigitalAudioDevice
(
bool
On);
74
75
// Player facilities
76
77
private
:
78
int
playVideoPid
;
79
int
playAudioPid
;
80
bool
freezed
;
81
bool
trickMode
;
82
bool
isPlayingVideo
;
83
84
// Pes2Ts conversion stuff
85
uint8_t
videoCounter
;
86
uint8_t
audioCounter
;
87
void
BuildTsPacket
(uint8_t * TsBuffer,
bool
PusiSet, uint16_t Pid, uint8_t Counter,
const
uint8_t * Data, uint32_t Length);
88
uint32_t
PesToTs
(uint8_t * TsBuffer, uint16_t Pid, uint8_t & Counter,
const
uint8_t * Data, uint32_t Length);
89
90
protected
:
91
ePlayMode
playMode
;
92
virtual
bool
CanReplay
(
void
)
const
;
93
virtual
bool
SetPlayMode
(
ePlayMode
PlayMode);
94
virtual
int
PlayVideo
(
const
uchar
*Data,
int
Length);
95
virtual
int
PlayAudio
(
const
uchar
*Data,
int
Length,
uchar
Id);
96
virtual
int
PlayTsVideo
(
const
uchar
*Data,
int
Length);
97
virtual
int
PlayTsAudio
(
const
uchar
*Data,
int
Length);
98
public
:
99
virtual
int64_t
GetSTC
(
void
);
100
virtual
cRect
CanScaleVideo
(
const
cRect
&Rect,
int
Alignment =
taCenter
);
101
virtual
void
ScaleVideo
(
const
cRect
&Rect =
cRect::Null
);
102
virtual
void
TrickSpeed
(
int
Speed);
103
virtual
void
Clear
(
void
);
104
virtual
void
Play
(
void
);
105
virtual
void
Freeze
(
void
);
106
virtual
void
Mute
(
void
);
107
virtual
void
StillPicture
(
const
uchar
*Data,
int
Length);
108
virtual
bool
Poll
(
cPoller
&Poller,
int
TimeoutMs = 0);
109
virtual
bool
Flush
(
int
TimeoutMs = 0);
110
111
// HDFF specific things
112
113
public
:
114
static
HDFF::cHdffCmdIf
*
GetHdffCmdHandler
(
void
);
115
private
:
116
static
int
devHdffOffset
;
//TODO
117
bool
isHdffPrimary
;
//TODO implicit!
118
HDFF::cHdffCmdIf
*
mHdffCmdIf
;
119
};
120
121
class
cDvbHdFfDeviceProbe
:
public
cDvbDeviceProbe
{
122
public
:
123
virtual
bool
Probe
(
int
Adapter,
int
Frontend);
124
};
125
126
#endif //__DVBHDFFDEVICE_H
127
Generated by
1.8.3.1