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());
}
Example #2
0
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));
}
Example #4
0
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;
}
Example #5
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");
}