void RegistryHandler::commandHandler() { DimCommand *currCmnd = getCommand(); std::string message; message.resize(currCmnd->getSize()); message = std::string(currCmnd->getString()); std::cout << "Received message: " << message << std::endl; std::vector<std::string> services; boost::split(services, message, boost::is_any_of(",")); if (currCmnd == registerCommand_) { registerServices(services); } else if (currCmnd == unregisterCommand_) { unregisterServices(services); } else { LOG(ERROR)<<"RegistryHandler received command from a non registered DimCommand"; } std::stringstream allServices; bool first = true; for (auto kv : registeredServices) { if (!first) { allServices << ","; } else { first = false; } allServices << kv.first; } registeredServicesService_->updateService( (char*) allServices.str().c_str()); }
SimpleDMS::SimpleDMS(const UUID& uuid) { m_uuid = uuid; m_deviceType = "urn:schemas-upnp-org:device:MediaServer:1"; m_friendlyName = "SimpleDMS[WTF]"; m_manufacturer = "NETGEAR Inc."; m_manufacturerURL = "http://www.netgear.com"; m_modelDescription = "GENIE SimpleDMS"; m_modelName = "SimpleDMS"; m_modelNumber = "DJ-DMS"; m_modelURL = "http://www.netgear.com"; m_serialNumber = "260471"; m_upc = "400240112013"; m_presentationURL = "http://www.netgear.com"; /* m_modelName = "Windows Media Player Sharing"; m_modelNumber = "12.0"; m_friendlyName = "SimpleDMS[WTF] : 2";*/ /* m_modelURL = "http://go.microsoft.com/fwlink/?LinkId=105926"; m_manufacturer = "Microsoft Corporation"; m_manufacturerURL = "http://www.microsoft.com";*/ // NPT_String friendlyName = "SimpleDMS248"; // m_friendlyName = NPT_String::Format("%s: 1", friendlyName.GetChars()); // m_modelName = NPT_String::Format("Windows Media Connect compatible (%s)", m_friendlyName.GetChars()); // m_modelNumber = "1"; //m_modelURL = "http://www.netgear.com/"; //m_manufacturer = "NETGEAR32"; //m_manufacturerURL = "http://www.siteview.com/"; //m_serialNumber = "12345678"; //m_modelDescription = friendlyName; registerServices(g_DMSServiceTable, g_DMSServiceTableSize); registerStaticContent("icon1", "image/png", NPT_DataBuffer(g_icon120_png, g_icon120_png_size, false), false); registerStaticContent("icon2", "image/png", NPT_DataBuffer(g_icon48_png, g_icon48_png_size, false), false); registerStaticContent("icon3", "image/png", NPT_DataBuffer(g_icon32_png, g_icon32_png_size, false), false); registerStaticContent("icon4", "image/jpeg", NPT_DataBuffer(g_icon120_jpg, g_icon120_jpg_size, false), false); registerStaticContent("icon5", "image/jpeg", NPT_DataBuffer(g_icon48_jpg, g_icon48_jpg_size, false), false); registerStaticContent("icon6", "image/jpeg", NPT_DataBuffer(g_icon32_jpg, g_icon32_jpg_size, false), false); const char *cds = "urn:upnp-org:serviceId:ContentDirectory"; setStateValue(cds, "SearchCapabilities", "*"); setStateValue(cds, "SortCapabilities", "*"); setStateValue(cds, "SystemUpdateID", "0"); setStateValue(cds, "ContainerUpdateIDs", ""); const char *cms = "urn:upnp-org:serviceId:ConnectionManager"; setStateValue(cms, "SourceProtocolInfo", ""); setStateValue(cms, "SinkProtocolInfo", ""); setStateValue(cms, "CurrentConnectionIDs", "0"); m_store = new MediaStore(this); }
RegistryHandler::RegistryHandler() : registerCommand_( new DimCommand( std::string("EOB_DATA_COLLECTOR/REGISTER").data(), (char*) ("C"), this)), unregisterCommand_( new DimCommand( std::string("EOB_DATA_COLLECTOR/UNREGISTER").data(), (char*) ("C"), this)), registeredServicesService_( new DimService("EOB_DATA_COLLECTOR/REGISTERED", (char*) Options::GetString(OPTION_REGISTERED_SERVICES).c_str())) { registerServices(Options::GetStringList(OPTION_REGISTERED_SERVICES)); }
int main() { Router::RequestRouter router; registerServices(router); try { Http::Server server("0.0.0.0", "80", [&router](const Http::Request& r) { return router.routeRequest(r); }); server.run(); } catch (const Tcp::SocketError& e) { std::cerr << e.what() << std::endl; } return 0; }
SimpleDMR::SimpleDMR(Callback *callback, const UUID& uuid) : m_callback(callback) { m_uuid = uuid; m_deviceType = "urn:schemas-upnp-org:device:MediaRenderer:1"; m_friendlyName = "SimpleDMR[WTF]"; m_manufacturer = "NETGEAR Inc."; m_manufacturerURL = "http://www.netgear.com"; m_modelDescription = "GENIE SimpleDMR"; m_modelName = "SimpleDMR"; m_modelNumber = "DJ-DMR"; m_modelURL = "http://www.netgear.com"; m_serialNumber = "262471"; m_upc = "400240112011"; m_presentationURL = "http://www.netgear.com"; registerServices(g_DMRServiceTable, g_DMRServiceTableSize); registerStaticContent("icon1", "image/png", NPT_DataBuffer(g_icon120_png, g_icon120_png_size, false), false); registerStaticContent("icon2", "image/png", NPT_DataBuffer(g_icon48_png, g_icon48_png_size, false), false); registerStaticContent("icon3", "image/png", NPT_DataBuffer(g_icon32_png, g_icon32_png_size, false), false); registerStaticContent("icon4", "image/jpeg", NPT_DataBuffer(g_icon120_jpg, g_icon120_jpg_size, false), false); registerStaticContent("icon5", "image/jpeg", NPT_DataBuffer(g_icon48_jpg, g_icon48_jpg_size, false), false); registerStaticContent("icon6", "image/jpeg", NPT_DataBuffer(g_icon32_jpg, g_icon32_jpg_size, false), false); /* const char *sinkProtocolInfo = "http-get:*:image/png:*," "http-get:*:image/jpeg:*," "http-get:*:image/bmp:*," "http-get:*:image/gif:*," "http-get:*:audio/mpeg:*," "http-get:*:audio/3gpp:*," "http-get:*:audio/mp4:*," "http-get:*:audio/x-ms-wma:*," "http-get:*:audio/wav:*," "http-get:*:video/mp4:*," "http-get:*:video/mpeg:*," "http-get:*:video/x-ms-wmv:*," "http-get:*:video/x-ms-asf:*," "http-get:*:video/3gpp:*," "http-get:*:video/avi:*," "http-get:*:video/quicktime:*" ; */ const char *cms = "urn:upnp-org:serviceId:ConnectionManager"; setStateValue(cms, "SourceProtocolInfo", ""); // setStateValue(cms, "SinkProtocolInfo", sinkProtocolInfo); setStateValue(cms, "CurrentConnectionIDs", "0"); /* const char *avt = "urn:upnp-org:serviceId:AVTransport"; setStateValue(avt, "TransportState", "NO_MEDIA_PRESENT"); setStateValue(avt, "TransportStatus", "OK"); setStateValue(avt, "PlaybackStorageMedium", "NONE"); setStateValue(avt, "RecordStorageMedium", "NOT_IMPLEMENTED"); setStateValue(avt, "PossiblePlaybackStorageMedia", "NONE,NETWORK,UNKNOWN,HDD"); setStateValue(avt, "PossibleRecordStorageMedia", "NOT_IMPLEMENTED"); setStateValue(avt, "CurrentPlayMode", "NORMAL"); setStateValue(avt, "TransportPlaySpeed", "1"); setStateValue(avt, "RecordMediumWriteStatus", "NOT_IMPLEMENTED"); setStateValue(avt, "CurrentRecordQualityMode", "NOT_IMPLEMENTED"); setStateValue(avt, "PossibleRecordQualityModes", "NOT_IMPLEMENTED"); setStateValue(avt, "NumberOfTracks", "0"); setStateValue(avt, "CurrentTrack", "0"); setStateValue(avt, "CurrentTrackDuration", "00:00:00"); setStateValue(avt, "CurrentMediaDuration", "00:00:00"); setStateValue(avt, "CurrentTrackMetaData", ""); setStateValue(avt, "CurrentTrackURI", ""); setStateValue(avt, "AVTransportURI", ""); setStateValue(avt, "AVTransportURIMetaData", ""); setStateValue(avt, "NextAVTransportURI", "NOT_IMPLEMENTED"); setStateValue(avt, "NextAVTransportURIMetaData", "NOT_IMPLEMENTED"); setStateValue(avt, "RelativeTimePosition", "00:00:00"); setStateValue(avt, "AbsoluteTimePosition", "NOT_IMPLEMENTED"); setStateValue(avt, "RelativeCounterPosition", "-1"); setStateValue(avt, "AbsoluteCounterPosition", "-1"); setStateValue(avt, "CurrentTransportActions", ""); const char *rcs = "urn:upnp-org:serviceId:RenderingControl"; setStateValue(rcs, "PresetNameList", "FactoryDefaults"); setStateValue(rcs, "Mute", "0"); setStateValue(rcs, "Volume", "100"); */ setVar(DMRVAR_TransportState, "NO_MEDIA_PRESENT"); setVar(DMRVAR_TransportStatus, "OK"); setVar(DMRVAR_PlaybackStorageMedium, "NONE"); setVar(DMRVAR_RecordStorageMedium, "NOT_IMPLEMENTED"); setVar(DMRVAR_PossiblePlaybackStorageMedia, "NONE,NETWORK,UNKNOWN,HDD"); setVar(DMRVAR_PossibleRecordStorageMedia, "NOT_IMPLEMENTED"); setVar(DMRVAR_CurrentPlayMode, "NORMAL"); setVar(DMRVAR_TransportPlaySpeed, "1"); setVar(DMRVAR_RecordMediumWriteStatus, "NOT_IMPLEMENTED"); setVar(DMRVAR_CurrentRecordQualityMode, "NOT_IMPLEMENTED"); setVar(DMRVAR_PossibleRecordQualityModes, "NOT_IMPLEMENTED"); setVar(DMRVAR_NumberOfTracks, "0"); setVar(DMRVAR_CurrentTrack, "0"); setVar(DMRVAR_CurrentTrackDuration, "00:00:00"); setVar(DMRVAR_CurrentMediaDuration, "00:00:00"); setVar(DMRVAR_CurrentTrackMetaData, ""); setVar(DMRVAR_CurrentTrackURI, ""); setVar(DMRVAR_AVTransportURI, ""); setVar(DMRVAR_AVTransportURIMetaData, ""); setVar(DMRVAR_NextAVTransportURI, "NOT_IMPLEMENTED"); setVar(DMRVAR_NextAVTransportURIMetaData, "NOT_IMPLEMENTED"); setVar(DMRVAR_RelativeTimePosition, "00:00:00"); setVar(DMRVAR_AbsoluteTimePosition, "NOT_IMPLEMENTED"); setVar(DMRVAR_RelativeCounterPosition, "-1"); setVar(DMRVAR_AbsoluteCounterPosition, "-1"); setVar(DMRVAR_CurrentTransportActions, ""); setVar(DMRVAR_PresetNameList, "FactoryDefaults"); setVar(DMRVAR_Mute, "0"); setVar(DMRVAR_Volume, "100"); }