]> git.vomp.tv Git - vompclient-marten.git/blob - audiovpe.h
Motion Compensation, all implemented, all buggy
[vompclient-marten.git] / audiovpe.h
1 /*\r
2     Copyright 2004-2005 Chris Tallon, 2009 Marten Richter\r
3 \r
4     This file is part of VOMP.\r
5 \r
6     VOMP is free software; you can redistribute it and/or modify\r
7     it under the terms of the GNU General Public License as published by\r
8     the Free Software Foundation; either version 2 of the License, or\r
9     (at your option) any later version.\r
10 \r
11     VOMP is distributed in the hope that it will be useful,\r
12     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14     GNU General Public License for more details.\r
15 \r
16     You should have received a copy of the GNU General Public License\r
17     along with VOMP; if not, write to the Free Software\r
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
19 */\r
20 \r
21 #ifndef AUDIOVPE_H\r
22 #define AUDIOVPE_H\r
23 \r
24 #include <stdio.h>\r
25 #include <unistd.h>\r
26 #include <fcntl.h>\r
27 #include <sys/ioctl.h>\r
28 \r
29 #include "defines.h"\r
30 #include "audio.h"\r
31 \r
32 \r
33 \r
34 \r
35 \r
36 class AudioVPE : public Audio\r
37 {\r
38   public:\r
39     AudioVPE();\r
40     virtual ~AudioVPE();\r
41 \r
42     int init(UCHAR streamType);\r
43     int shutdown();\r
44 \r
45     int setStreamType(UCHAR streamType);\r
46     int setChannel();\r
47     int setSource();\r
48     int sync();\r
49     int play();\r
50     int stop();\r
51     int pause();\r
52     int unPause();\r
53     int reset();\r
54     int setVolume(int volume);\r
55     int mute();\r
56     int unMute();\r
57     bool supportsAc3() { return true; }\r
58 \r
59     //Writing Data to Audiodevice\r
60     virtual void PrepareMediaSample(const MediaPacketList&, UINT samplepos);\r
61     virtual UINT DeliverMediaSample(UCHAR* buffer, UINT *samplepos);\r
62     virtual long long SetStartOffset(long long curreftime, bool *rsync) { return 0; };\r
63     virtual void ResetTimeOffsets();\r
64 \r
65         int getLastPacketNum() {return lastpacketnum;}; \r
66         int getCurrentPacketNum(){return currentpacketnum;};\r
67         UCHAR getLastAType() {return lastAType;}\r
68 \r
69 #ifdef DEV\r
70     int test();\r
71 #endif\r
72 \r
73   private:\r
74     int initAllParams();\r
75     UCHAR streamType;\r
76         UCHAR lastAType;\r
77     int lastpacketnum;\r
78         int currentpacketnum;\r
79 \r
80     MediaPacket packet;\r
81     UINT packetpos;\r
82 };\r
83 \r
84 #endif\r