]> git.vomp.tv Git - vompclient.git/blob - remotelinux.h
A much cleaner patch for enabling MVP again
[vompclient.git] / remotelinux.h
1 /*
2     Copyright 2004-2005 Chris Tallon; 2012 Marten Richter
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 REMOTELINUX_H
22 #define REMOTELINUX_H
23
24 #include <stdio.h>
25
26 #include "defines.h"
27 #include "log.h"
28 #include "remote.h"
29
30 #include <vector>
31 #include <libcec/cec.h>
32
33
34
35
36
37 class RemoteLinux : public Remote
38 {
39   public:
40     RemoteLinux();
41     virtual ~RemoteLinux();
42
43     int init(char *devName);
44     int shutdown();
45     int getDevice();
46     UCHAR getButtonPress(int how);
47     void clearBuffer();
48   //  void Signal();
49
50 //      void SendPower();
51     void InitHWCListwithDefaults();
52     const char*HardcodedTranslateStr(UCHAR command);
53     char* HCWDesc(ULLONG hcw);
54     
55     void changePowerState(bool poweron);
56
57     bool loadOptionsfromServer(VDR* vdr);
58     bool saveOptionstoServer();
59     bool addOptionsToPanes(int panenumber,Options *options,WOptionPane* pane);
60     bool handleOptionChanges(Option* option);
61
62     bool mayHaveFewButtons() {return true;};
63
64     virtual bool handlesVolume() {return cechandlesvolume;};
65     virtual void volumeUp();
66     virtual void volumeDown();
67     virtual void volumeMute();
68
69     int initCec();
70     void deinitCec();
71
72
73
74   private: 
75     int initted;
76         bool signal;
77         int curcec;
78     bool hascurcec;
79     bool cechandlesvolume;
80     bool haspower;
81     UCHAR powerkey;
82
83     UCHAR TranslateHWCFixed(ULLONG code);
84     void InitKeymap();
85     vector<int> devices;
86     int num_loop;
87
88     CEC::ICECAdapter * cec_adap;
89     CEC::libcec_configuration cec_config;
90     CEC::ICECCallbacks cec_callbacks;
91
92     void incomingCECkey(int keys);
93     void incomingPowerkey(UCHAR key);
94
95         static int cecLogMessage(void *param, const CEC::cec_log_message message);
96         static int cecKeyPress(void*param, const CEC::cec_keypress key);
97         static int cecCommand(void *param, const CEC::cec_command command);
98         static int cecConfigurationChanged(void *param, const CEC::libcec_configuration config);
99         static void cecSourceActivated(void*param, const CEC::cec_logical_address address, const uint8_t activated);
100
101 };
102
103 #endif
104