diff options
Diffstat (limited to '')
-rw-r--r-- | lib/libUPnP/Platinum/Source/Tests/MediaRenderer/MediaRendererTest.cpp | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/lib/libUPnP/Platinum/Source/Tests/MediaRenderer/MediaRendererTest.cpp b/lib/libUPnP/Platinum/Source/Tests/MediaRenderer/MediaRendererTest.cpp new file mode 100644 index 0000000..54d9d24 --- /dev/null +++ b/lib/libUPnP/Platinum/Source/Tests/MediaRenderer/MediaRendererTest.cpp @@ -0,0 +1,121 @@ +/***************************************************************** +| +| Platinum - Test UPnP A/V MediaRenderer +| +| Copyright (c) 2004-2010, Plutinosoft, LLC. +| All rights reserved. +| http://www.plutinosoft.com +| +| This program is free software; you can redistribute it and/or +| modify it under the terms of the GNU General Public License +| as published by the Free Software Foundation; either version 2 +| of the License, or (at your option) any later version. +| +| OEMs, ISVs, VARs and other distributors that combine and +| distribute commercially licensed software with Platinum software +| and do not wish to distribute the source code for the commercially +| licensed software under version 2, or (at your option) any later +| version, of the GNU General Public License (the "GPL") must enter +| into a commercial license agreement with Plutinosoft, LLC. +| licensing@plutinosoft.com +| +| This program is distributed in the hope that it will be useful, +| but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +| GNU General Public License for more details. +| +| You should have received a copy of the GNU General Public License +| along with this program; see the file LICENSE.txt. If not, write to +| the Free Software Foundation, Inc., +| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +| http://www.gnu.org/licenses/gpl-2.0.html +| + ****************************************************************/ + +/*---------------------------------------------------------------------- +| includes ++---------------------------------------------------------------------*/ +#include "PltUPnP.h" +#include "PltMediaRenderer.h" + +#include <stdlib.h> + +/*---------------------------------------------------------------------- +| globals ++---------------------------------------------------------------------*/ +struct Options { + const char* friendly_name; +} Options; + +/*---------------------------------------------------------------------- +| PrintUsageAndExit ++---------------------------------------------------------------------*/ +static void +PrintUsageAndExit(char** args) +{ + fprintf(stderr, "usage: %s [-f <friendly_name>]\n", args[0]); + fprintf(stderr, "-f : optional upnp server friendly name\n"); + fprintf(stderr, "<path> : local path to serve\n"); + exit(1); +} + +/*---------------------------------------------------------------------- +| ParseCommandLine ++---------------------------------------------------------------------*/ +static void +ParseCommandLine(char** args) +{ + const char* arg; + char** tmp = args+1; + + /* default values */ + Options.friendly_name = NULL; + + while ((arg = *tmp++)) { + if (!strcmp(arg, "-f")) { + Options.friendly_name = *tmp++; + } else { + fprintf(stderr, "ERROR: too many arguments\n"); + PrintUsageAndExit(args); + } + } +} + +/*---------------------------------------------------------------------- +| main ++---------------------------------------------------------------------*/ +int +main(int /* argc */, char** argv) +{ + PLT_UPnP upnp; + + /* parse command line */ + ParseCommandLine(argv); + + PLT_DeviceHostReference device( + new PLT_MediaRenderer(Options.friendly_name?Options.friendly_name:"Platinum Media Renderer", + false, + "e6572b54-f3c7-2d91-2fb5-b757f2537e21")); + upnp.AddDevice(device); + bool added = true; + + upnp.Start(); + + char buf[256]; + while (gets(buf)) { + if (*buf == 'q') + break; + + if (*buf == 's') { + if (added) { + upnp.RemoveDevice(device); + } else { + upnp.AddDevice(device); + } + added = !added; + } + } + + upnp.Stop(); + return 0; +} |