00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #include "mediarenderer.h"
00012 #include "compat.h"
00013
00016
00017
00018
00021
00023
00025
00026 MediaRenderer::MediaRenderer()
00027 {
00028 VERBOSE(VB_UPNP, "MediaRenderer::Begin" );
00029
00030
00031
00032
00033
00034 SetConfiguration( new XmlConfiguration( "config.xml" ));
00035
00036
00037
00038
00039
00040 int nPort = g_pConfig->GetValue( "UPnP/MythFrontend/ServicePort", 6547 );
00041
00042 m_pHttpServer = new HttpServer( nPort );
00043
00044 if (!m_pHttpServer)
00045 return;
00046
00047 if (!m_pHttpServer->ok())
00048 {
00049 VERBOSE(VB_IMPORTANT, "MediaRenderer::HttpServer Create Error");
00050
00051 delete m_pHttpServer;
00052 m_pHttpServer = NULL;
00053 return;
00054 }
00055
00056
00057
00058
00059
00060 if (Initialize( nPort, m_pHttpServer ))
00061 {
00062
00063
00064
00065
00066 VERBOSE(VB_UPNP, QString( "MediaRenderer::Creating UPnp Description" ));
00067
00068 UPnpDevice &device = g_UPnpDeviceDesc.m_rootDevice;
00069
00070 device.m_sDeviceType = "urn:schemas-upnp-org:device:MediaRenderer:1";
00071 device.m_sFriendlyName = "MythTv AV Renderer";
00072 device.m_sManufacturer = "MythTV";
00073 device.m_sManufacturerURL = "http://www.mythtv.org";
00074 device.m_sModelDescription = "MythTV AV Media Renderer";
00075 device.m_sModelName = "MythTV AV Media Renderer";
00076 device.m_sModelURL = "http://www.mythtv.org";
00077 device.m_sUPC = "";
00078 device.m_sPresentationURL = "";
00079
00080
00081
00082
00083
00084 QString sSinkProtocols = "http-get:*:image/gif:*,"
00085 "http-get:*:image/jpeg:*,"
00086 "http-get:*:image/png:*,"
00087 "http-get:*:video/avi:*,"
00088 "http-get:*:audio/mpeg:*,"
00089 "http-get:*:audio/wav:*,"
00090 "http-get:*:video/mpeg:*,"
00091 "http-get:*:video/nupplevideo:*,"
00092 "http-get:*:video/x-ms-wmv:*";
00093
00094
00095
00096
00097 VERBOSE(VB_UPNP, QString( "MediaRenderer::Registering CMGR Service." ));
00098
00099 m_pHttpServer->RegisterExtension( m_pUPnpCMGR= new UPnpCMGR( RootDevice(), "", "", sSinkProtocols ));
00100
00101
00102
00103
00104 Start();
00105
00106 }
00107 else
00108 {
00109 VERBOSE(VB_IMPORTANT, "MediaRenderer::Unable to Initialize UPnp Stack");
00110
00111 }
00112
00113
00114
00115 VERBOSE(VB_UPNP, QString( "MediaRenderer::End" ));
00116 }
00117
00119
00121
00122 MediaRenderer::~MediaRenderer()
00123 {
00124 if (m_pHttpServer)
00125 delete m_pHttpServer;
00126 }