]> git.vomp.tv Git - vompserver.git/blob - vompclientrrproc.h
Vogel Media Player 2008-11-28
[vompserver.git] / vompclientrrproc.h
1 /*
2     Copyright 2008 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #ifndef VOMPCLIENTRRPROC_H
22 #define VOMPCLIENTRRPROC_H
23
24 #include "thread.h"
25 #include "responsepacket.h"
26 #include <queue>
27 #include "serialize.h"
28
29 using namespace std;
30
31 class VompClient;
32 class Log;
33
34 class RequestPacket
35 {
36   public:
37     RequestPacket(ULONG requestID, ULONG opcode, UCHAR* data, ULONG dataLength)
38      : requestID(requestID), opcode(opcode), data(data), dataLength(dataLength) {}
39     
40     ULONG requestID;
41     ULONG opcode;
42     UCHAR* data;
43     ULONG dataLength;
44 };
45
46 typedef queue<RequestPacket*> RequestPacketQueue;
47
48 class VompClientRRProc : public Thread
49 {
50   public:
51     VompClientRRProc(VompClient& x);
52     ~VompClientRRProc();
53     
54     bool init();
55     bool recvRequest(RequestPacket*);
56
57   private:
58     bool processPacket();
59     void sendPacket(SerializeBuffer *b);
60   
61 #ifndef VOMPSTANDALONE
62     int processGetRecordingsList();
63     int processDeleteRecording();
64     int processMoveRecording();
65     int processGetChannelsList();
66     int processStartStreamingChannel();
67     int processGetBlock();
68     int processStopStreaming();
69     int processStartStreamingRecording();
70     int processGetChannelSchedule();
71     int processGetTimers();
72     int processSetTimer();
73     int processPositionFromFrameNumber();
74     int processFrameNumberFromPosition();
75     int processGetIFrame();
76     int processGetRecInfo();
77     int processGetMarks();
78     int processGetChannelPids();
79     int processDeleteTimer();
80     int processReScanRecording();           // FIXME obselete
81 #endif
82     int processLogin();
83     int processConfigSave();
84     int processConfigLoad();
85     int processGetMediaList();
86     int processOpenMedia();
87     int processGetMediaBlock();
88     int processGetMediaInfo();
89     int processCloseMediaChannel();
90     int processGetLanguageList();
91     int processGetLanguageContent();
92
93     void threadMethod();
94
95     VompClient& x;
96     RequestPacket* req;
97     RequestPacketQueue req_queue;
98     ResponsePacket* resp;
99     
100     Log* log;
101 };
102
103 #endif
104