]> git.vomp.tv Git - vompserver.git/blob - vompserver.c
Updates for media player after protocol change
[vompserver.git] / vompserver.c
1 /*
2     Copyright 2004-2005 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #ifndef VOMPSTANDALONE
22 #include <vdr/plugin.h>
23 #endif
24 #include <iostream>
25 #include <getopt.h>
26
27 #include "mvpserver.h"
28 #include "mvpclient.h"
29
30 static const char *VERSION        = "0.2.7";
31 static const char *DESCRIPTION    = "VDR on MVP plugin by Chris Tallon";
32
33 #ifndef VOMPSTANDALONE
34 class cPluginVompserver : public cPlugin
35 {
36 public:
37   cPluginVompserver(void);
38   virtual ~cPluginVompserver();
39   virtual const char *Version(void) { return VERSION; }
40   virtual const char *Description(void) { return DESCRIPTION; }
41   virtual const char *CommandLineHelp(void);
42   virtual bool ProcessArgs(int argc, char *argv[]);
43   virtual bool Initialize(void);
44   virtual bool Start(void);
45   virtual bool SetupParse(const char *Name, const char *Value);
46 #if VDRVERSNUM > 10300
47   virtual cString Active(void);
48 #endif
49
50 private:
51
52   MVPServer mvpserver;
53   char* configDir;
54 };
55
56 cPluginVompserver::cPluginVompserver(void)
57 {
58   // Initialize any member variables here.
59   // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
60   // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
61
62   configDir = NULL;
63 }
64
65 bool cPluginVompserver::Start(void)
66 {
67   // Start any background activities the plugin shall perform.
68   int success = mvpserver.run(configDir);
69   if (success) return true;
70   else return false;
71 }
72
73 cPluginVompserver::~cPluginVompserver()
74 {
75   // Clean up after yourself!
76   mvpserver.stop();
77 }
78
79 const char *cPluginVompserver::CommandLineHelp(void)
80 {
81   // Return a string that describes all known command line options.
82
83   return "  -c dir    config path relative to VDR plugins config path\n";
84 }
85
86 bool cPluginVompserver::ProcessArgs(int argc, char *argv[])
87 {
88   // Implement command line argument processing here if applicable.
89
90   int c;
91   while ((c = getopt(argc, argv, "c:")) != -1)
92   {
93     if (c == 'c')
94     {
95       configDir = optarg;
96     }
97     else
98     {
99       return false;
100     }
101   }
102
103   return true;
104 }
105
106 bool cPluginVompserver::Initialize(void)
107 {
108   // Initialize any background activities the plugin shall perform.
109   return true;
110 }
111
112 bool cPluginVompserver::SetupParse(const char *Name, const char *Value)
113 {
114   // Parse your own setup parameters and store their values.
115   return false;
116 }
117
118 #if VDRVERSNUM > 10300
119
120 cString cPluginVompserver::Active(void)
121 {
122   if(MVPClient::getNrClients() != 0) return tr("VOMP client(s) connected");
123   return NULL;
124 }
125
126 #endif
127
128 VDRPLUGINCREATOR(cPluginVompserver); // Don't touch this!
129
130 #else //VOMPSTANDALONE
131
132 int main(int argc, char **argv) {
133   char *cdir=".";
134     if (argc > 1) {
135       cdir=argv[1];
136     }
137   std::cout << "Vompserver starting Version " << VERSION << " " << DESCRIPTION << std::endl;
138   MVPServer server;
139   if ( server.run(cdir) != 1) {
140         std::cerr << "unable to start vompserver" << std::endl;
141         return 1;
142     }
143   while (1) sleep(1);
144   return 0;
145 }
146
147 #endif //VOMPSTANDALONE