]> git.vomp.tv Git - vompclient.git/blob - command.h
Convert PlayerRadioRec to std::thread
[vompclient.git] / command.h
1 /*
2     Copyright 2004-2020 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, see <https://www.gnu.org/licenses/>.
18 */
19
20 #ifndef COMMAND_H
21 #define COMMAND_H
22
23 #ifndef WIN32
24 #include <unistd.h> // for reboot
25 #include <linux/reboot.h>
26 #include <sys/reboot.h>
27 #endif
28
29 #include <time.h>
30 #ifndef WIN32
31 #include <pthread.h>
32 #endif
33
34 #include <string>
35 #include <vector>
36
37 #include "defines.h"
38 #include "messagequeue.h"
39
40 class VConnect;
41 class Message;
42 class InputMan;
43 class Boxx;
44 class BoxStack;
45 class Log;
46 class VInfo;
47 class WJpeg;
48
49 struct ASLPref
50 {
51   std::string langcode;
52   int audiopref;
53   int subtitlepref;
54 };
55
56 typedef std::vector<struct ASLPref> ASLPrefList;
57
58 class Command : public MessageQueue
59 {
60   public:
61     Command();
62     ~Command();
63     static Command* getInstance();
64
65     int init(bool crashed = false, char* server = NULL);
66     int shutdown();
67     void run();
68     void stop();
69     void doReboot();
70     void connectionLost();
71
72     void setAdvMenus(bool adv) { advMenus = adv; };
73     bool isAdvMenus() { return advMenus; };
74     int getLangPref(bool subtitle,const char* langcode);
75     void setSubDefault(int subon) { subdefault = subon; };
76     int getSubDefault() { return subdefault; };
77     ASLPrefList &getASLList() { return langcodes; };
78
79   private:
80     void handleCommand(int);
81     void doStandby();
82     void doPowerOn();
83     void doPowerOff();
84     void doJustConnected(VConnect* vconnect);
85     void doWallpaper();
86     void doFromTheTop(bool which);  // true - show vinfo,wait. false - del vinfo,restart
87     void buildCrashedBox();
88     void sig1();
89     void clearMQInputEvents();
90
91     static Command* instance;
92
93     Log* logger;
94     BoxStack* boxstack;
95     InputMan* inputMan;
96
97     bool initted{};
98     bool irun{};
99     bool isStandby{};
100     bool firstBoot{true};
101     Boxx* wallpaper{};
102     WJpeg* wallpaper_pict{};
103     VInfo* connLost{};
104     bool crashed{};
105     char* server{};
106
107     bool advMenus{};
108     ASLPrefList langcodes;
109     int subdefault;
110         
111     void processMessage(Message* m);
112 };
113
114 #endif