--- a/upmpd/upmpd.cxx
+++ b/upmpd/upmpd.cxx
@@ -91,59 +91,6 @@
// Main program
#include "conftree.hxx"
-
-static char *thisprog;
-
-static int op_flags;
-#define OPT_MOINS 0x1
-#define OPT_h 0x2
-#define OPT_p 0x4
-#define OPT_d 0x8
-#define OPT_D 0x10
-#define OPT_c 0x20
-#define OPT_l 0x40
-#define OPT_f 0x80
-#define OPT_q 0x100
-#define OPT_i 0x200
-#define OPT_P 0x400
-
-static const char usage[] =
-"-c configfile \t configuration file to use\n"
-"""""""""""""""""""""""""""""-h host \t specify host MPD is running on\n"""""""""""""""""""""""""""""
-"-p port \t specify MPD port\n"
-"-d logfilename\t debug messages to\n"
-"-l loglevel\t log level (0-6)\n"
-"-D \t run as a daemon\n"
-"-f friendlyname\t define device displayed name\n"
-"-q 0|1\t if set, we own the mpd queue, else avoid clearing it whenever we feel like it\n"
-"-i iface \t specify network interface name to be used for UPnP"
-"-P upport \t specify port number to be used for UPnP"
-" \n\n"
- ;
-static void
-Usage(void)
-{
- fprintf(stderr, "%s: usage:\n%s", thisprog, usage);
- exit(1);
-}
-
-static string myDeviceUUID;
-
-static string datadir(DATADIR "/");
-static string configdir(CONFIGDIR "/");
-
-// Our XML description data. !Keep description.xml first!
-static vector<const char *> xmlfilenames =
-{
- /* keep first */ "description.xml", /* keep first */
- "RenderingControl.xml", "AVTransport.xml", "ConnectionManager.xml",
-};
-static vector<const char *> ohxmlfilenames =
-{
- "OHProduct.xml", "OHInfo.xml", "OHTime.xml", "OHVolume.xml",
- "OHPlaylist.xml",
-};
-
static const string ohDesc(
"<service>"
@@ -183,6 +130,61 @@
"</service>"
);
+static char *thisprog;
+
+static int op_flags;
+#define OPT_MOINS 0x1
+#define OPT_h 0x2
+#define OPT_p 0x4
+#define OPT_d 0x8
+#define OPT_D 0x10
+#define OPT_c 0x20
+#define OPT_l 0x40
+#define OPT_f 0x80
+#define OPT_q 0x100
+#define OPT_i 0x200
+#define OPT_P 0x400
+#define OPT_O 0x800
+
+static const char usage[] =
+"-c configfile \t configuration file to use\n"
+"""""""""""""""""""""""""""""-h host \t specify host MPD is running on\n"""""""""""""""""""""""""""""
+"-p port \t specify MPD port\n"
+"-d logfilename\t debug messages to\n"
+"-l loglevel\t log level (0-6)\n"
+"-D \t run as a daemon\n"
+"-f friendlyname\t define device displayed name\n"
+"-q 0|1\t if set, we own the mpd queue, else avoid clearing it whenever we feel like it\n"
+"-i iface \t specify network interface name to be used for UPnP\n"
+"-P upport \t specify port number to be used for UPnP\n"
+"-O 0|1\t decide if we run and export the OpenHome services\n"
+"\n"
+ ;
+static void
+Usage(void)
+{
+ fprintf(stderr, "%s: usage:\n%s", thisprog, usage);
+ exit(1);
+}
+
+static string myDeviceUUID;
+
+static string datadir(DATADIR "/");
+static string configdir(CONFIGDIR "/");
+
+// Our XML description data. !Keep description.xml first!
+static vector<const char *> xmlfilenames =
+{
+ /* keep first */ "description.xml", /* keep first */
+ "RenderingControl.xml", "AVTransport.xml", "ConnectionManager.xml",
+};
+static vector<const char *> ohxmlfilenames =
+{
+ "OHProduct.xml", "OHInfo.xml", "OHTime.xml", "OHVolume.xml",
+ "OHPlaylist.xml",
+};
+
+
int main(int argc, char *argv[])
{
string mpdhost("localhost");
@@ -222,25 +224,34 @@
Usage();
while (**argv)
switch (*(*argv)++) {
- case 'D': op_flags |= OPT_D; break;
case 'c': op_flags |= OPT_c; if (argc < 2) Usage();
configfile = *(++argv); argc--; goto b1;
+ case 'D': op_flags |= OPT_D; break;
+ case 'd': op_flags |= OPT_d; if (argc < 2) Usage();
+ logfilename = *(++argv); argc--; goto b1;
case 'f': op_flags |= OPT_f; if (argc < 2) Usage();
friendlyname = *(++argv); argc--; goto b1;
- case 'd': op_flags |= OPT_d; if (argc < 2) Usage();
- logfilename = *(++argv); argc--; goto b1;
case 'h': op_flags |= OPT_h; if (argc < 2) Usage();
mpdhost = *(++argv); argc--; goto b1;
+ case 'i': op_flags |= OPT_i; if (argc < 2) Usage();
+ iface = *(++argv); argc--; goto b1;
case 'l': op_flags |= OPT_l; if (argc < 2) Usage();
loglevel = atoi(*(++argv)); argc--; goto b1;
+ case 'O': {
+ op_flags |= OPT_O;
+ if (argc < 2) Usage();
+ const char *cp = *(++argv);
+ if (*cp == '1' || *cp == 't' || *cp == 'T' || *cp == 'y' ||
+ *cp == 'Y')
+ openhome = true;
+ argc--; goto b1;
+ }
+ case 'P': op_flags |= OPT_P; if (argc < 2) Usage();
+ upport = atoi(*(++argv)); argc--; goto b1;
case 'p': op_flags |= OPT_p; if (argc < 2) Usage();
mpdport = atoi(*(++argv)); argc--; goto b1;
case 'q': op_flags |= OPT_q; if (argc < 2) Usage();
ownqueue = atoi(*(++argv)) != 0; argc--; goto b1;
- case 'i': op_flags |= OPT_i; if (argc < 2) Usage();
- iface = *(++argv); argc--; goto b1;
- case 'P': op_flags |= OPT_P; if (argc < 2) Usage();
- upport = atoi(*(++argv)); argc--; goto b1;
default: Usage(); break;
}
b1: argc--; argv++;