Пример #1
0
void ScriptManager::inventoryAdd(int16 item) {
	int8 cnt = inventoryGetCount();

	if (cnt < 49) {
		bool notExist = true;

		if (cnt == 0) {
			inventorySetItem(0, 0);
			inventorySetCount(1); // we needed empty item for cycle code
			cnt = 1;
		}

		for (int8 cur = 0; cur < cnt; cur++)
			if (inventoryGetItem(cur) == item) {
				notExist = false;
				break;
			}

		if (notExist) {
			for (int8 i = cnt; i > 0; i--)
				inventorySetItem(i, inventoryGetItem(i - 1));

			inventorySetItem(0, item);

			setStateValue(StateKey_InventoryItem, item);

			inventorySetCount(cnt + 1);
		}
	}
}
Пример #2
0
void ScriptManager::inventoryDrop(int16 item) {
	int8 itemCount = inventoryGetCount();

	// if items in inventory > 0
	if (itemCount != 0) {
		int8 index = 0;

		// finding needed item
		while (index < itemCount) {
			if (inventoryGetItem(index) == item)
				break;

			index++;
		}

		// if item in the inventory
		if (itemCount != index) {
			// shift all items left with rewrite founded item
			for (int8 v = index; v < itemCount - 1 ; v++)
				inventorySetItem(v, inventoryGetItem(v + 1));

			// del last item
			inventorySetItem(itemCount - 1, 0);
			inventorySetCount(inventoryGetCount() - 1);

			setStateValue(StateKey_InventoryItem, inventoryGetItem(0));
		}
	}
}
Пример #3
0
void ScriptManager::inventoryCycle() {
	int8 itemCount = inventoryGetCount();
	int8 curItem = inventoryGetItem(0);
	if (itemCount > 1) {
		for (int8 i = 0; i < itemCount - 1; i++)
			inventorySetItem(i, inventoryGetItem(i + 1));

		inventorySetItem(itemCount - 1, curItem);

		setStateValue(StateKey_InventoryItem, inventoryGetItem(0));

	}
}
Пример #4
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);
}
Пример #5
0
bool executeCodeTest(ThreadState& state, uint32_t baseAddress, const TestData& test) {
   for (auto i = 0; i < TargetId::Max; ++i) {
      if (test.fields[i].hasInput) {
         setStateValue(state, i, test.fields[i].input);
      }
   }

   // Save the original state for comparison later
   ThreadState originalState = state;

   // Execute test
   gInterpreter.execute(&state, baseAddress + test.offset);

   bool result = true;
   for (auto i = 0; i < TargetId::Max; ++i) {
      result &= checkField(test.fields[i], i, state, originalState);
   }
   return result;
}
Пример #6
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");
}
Пример #7
0
void SimpleDMR::setVar(DMRVAR varIndex, const NPT_String& value)
{
	if (varIndex >= DMRVAR_BaseIndexAVT && varIndex <= DMRVAR_LastIndexAVT) {
		const char *varName;
		m_avtVars[varIndex - DMRVAR_BaseIndexAVT] = value;
		switch (varIndex) {
		case DMRVAR_TransportState:
			varName = "TransportState";
			break;
		case DMRVAR_TransportStatus:
			varName = "TransportStatus";
			break;
		case DMRVAR_PlaybackStorageMedium:
			varName = "PlaybackStorageMedium";
			break;
		case DMRVAR_RecordStorageMedium:
			varName = "RecordStorageMedium";
			break;
		case DMRVAR_PossiblePlaybackStorageMedia:
			varName = "PossiblePlaybackStorageMedia";
			break;
		case DMRVAR_PossibleRecordStorageMedia:
			varName = "PossibleRecordStorageMedia";
			break;
		case DMRVAR_CurrentPlayMode:
			varName = "CurrentPlayMode";
			break;
		case DMRVAR_TransportPlaySpeed:
			varName = "TransportPlaySpeed";
			break;
		case DMRVAR_RecordMediumWriteStatus:
			varName = "RecordMediumWriteStatus";
			break;
		case DMRVAR_CurrentRecordQualityMode:
			varName = "CurrentRecordQualityMode";
			break;
		case DMRVAR_PossibleRecordQualityModes:
			varName = "PossibleRecordQualityModes";
			break;
		case DMRVAR_NumberOfTracks:
			varName = "NumberOfTracks";
			break;
		case DMRVAR_CurrentTrack:
			varName = "CurrentTrack";
			break;
		case DMRVAR_CurrentTrackDuration:
			varName = "CurrentTrackDuration";
			break;
		case DMRVAR_CurrentMediaDuration:
			varName = "CurrentMediaDuration";
			break;
		case DMRVAR_CurrentTrackMetaData:
			varName = "CurrentTrackMetaData";
			break;
		case DMRVAR_CurrentTrackURI:
			varName = "CurrentTrackURI";
			break;
		case DMRVAR_AVTransportURI:
			varName = "AVTransportURI";
			break;
		case DMRVAR_AVTransportURIMetaData:
			varName = "AVTransportURIMetaData";
			break;
		case DMRVAR_NextAVTransportURI:
			varName = "NextAVTransportURI";
			break;
		case DMRVAR_NextAVTransportURIMetaData:
			varName = "NextAVTransportURIMetaData";
			break;
		case DMRVAR_RelativeTimePosition:
			varName = "RelativeTimePosition";
			break;
		case DMRVAR_AbsoluteTimePosition:
			varName = "AbsoluteTimePosition";
			break;
		case DMRVAR_RelativeCounterPosition:
			varName = "RelativeCounterPosition";
			break;
		case DMRVAR_AbsoluteCounterPosition:
			varName = "AbsoluteCounterPosition";
			break;
		case DMRVAR_CurrentTransportActions:
		default:
			varName = "CurrentTransportActions";
			break;
		}
		setStateValue("urn:upnp-org:serviceId:AVTransport", varName, value);
	} else if (varIndex >= DMRVAR_BaseIndexRCS && varIndex <= DMRVAR_LastIndexRCS) {
		const char *varName;
		m_rcsVars[varIndex - DMRVAR_BaseIndexRCS] = value;
		switch (varIndex) {
		case DMRVAR_PresetNameList:
			varName = "PresetNameList";
			break;
		case DMRVAR_Mute:
			varName = "Mute";
			break;
		case DMRVAR_Volume:
			varName = "Volume";
			break;
		}
		setStateValue("urn:upnp-org:serviceId:RenderingControl", varName, value);
	}
}
Пример #8
0
void SimpleDMR::setVarRCS(const NPT_String& name, const NPT_String& value)
{
	setStateValue("urn:upnp-org:serviceId:RenderingControl", name, value);
}
Пример #9
0
void SimpleDMR::setVarAVT(const NPT_String& name, const NPT_String& value)
{
	setStateValue("urn:upnp-org:serviceId:AVTransport", name, value);
}
Пример #10
0
void SimpleDMR::setSinkProtocolInfo(const NPT_String& value)
{
	setStateValue("urn:upnp-org:serviceId:ConnectionManager", "SinkProtocolInfo", value);
}
Пример #11
0
void ScriptManager::inventorySetItem(int8 id, int16 item) {
	if (id < 49 && id >= 0)
		setStateValue(StateKey_Inv_1_Slot + id, item);
}
Пример #12
0
void ScriptManager::inventorySetCount(int8 cnt) {
	setStateValue(StateKey_Inv_Cnt_Slot, cnt);
}
Пример #13
0
void SimpleDMS::onMediaStoreUpdated(MediaStore *mediaStore)
{
	setStateValue("urn:upnp-org:serviceId:ContentDirectory", "SystemUpdateID", NPT_String::FromIntegerU(mediaStore->systemUpdateId()));
}