Beispiel #1
0
void MenuManager::AppendServicesMenu(ITSMenu& mnu, ItemTypeEnum it)
{
	PrgAPI* pAPI = PRGAPI();
	ServicesRegistrationSrv* pSRS = pAPI->GetServicesRegistrationSrv();
	INT added = 0;
	for (INT i = 0; i < (INT)pSRS->GetServicesCount(); i++)
	{
		ServiceTypeEnum st = STYPE_Unknown;
		switch (it)
		{
		case IT_Artist:
			st = STYPE_ArtistInfo;
			break;
		case IT_Album:
			st = STYPE_AlbumInfo;
			break;
		case IT_Track:
			st = STYPE_TrackInfo;
			break;
		default:
			ASSERT(0);
			break;
		}
		ServiceInfo si;
		if (pSRS->GetServiceInfo(i, si) && si.CanHandle(st))
		{
			if ((added-1) % 5 == 0 && added > 1)
				mnu.AppendMenu(ITSMenu::MIT_Separator, 0, 0);
			added++;
			mnu.AppendMenu(ITSMenu::MIT_String, MENU_WebServicesHolder + i, (LPTSTR)si.Name, si.hIcon);
		}
	}
}
Beispiel #2
0
BOOL WebPane::OnButton(UINT idx)
{
	if (idx >= MENU_WebServicesHolder && idx < MENU_WebServicesHolderEnd)
	{
		PrgAPI* pAPI = PRGAPI();
		ServicesRegistrationSrv* pSRS = pAPI->GetServicesRegistrationSrv();
		ServiceInfo si;
		INT serviceID = idx - MENU_WebServicesHolder;
		if (pSRS->GetServiceInfo(serviceID, si))
		{
			if (si.CanHandle(STYPE_ArtistInfo))
			{
				if (m_SyncWithArtistService == serviceID)
					m_SyncWithArtistService = -1;
				else
					m_SyncWithArtistService = serviceID;
			}
			else if (si.CanHandle(STYPE_AlbumInfo))
			{
				if (m_SyncWithAlbumService == serviceID)
					m_SyncWithAlbumService = -1;
				else
					m_SyncWithAlbumService = serviceID;
			}
			else if (si.CanHandle(STYPE_TrackInfo))
			{
				if (m_SyncWithTrackService == serviceID)
					m_SyncWithTrackService = -1;
				else
					m_SyncWithTrackService = serviceID;
			}
			else
				ASSERT(0);
		}
		return TRUE;
	}
	else
	{
		switch (idx)
		{
		case MI_SyncWithPlayer:
			m_bSyncWithPlayer = !m_bSyncWithPlayer;
			break;
		case MI_SyncWithSectionChanger:
			m_bSyncWithSectionsChanger= !m_bSyncWithSectionsChanger;
			break;
		case MI_SyncWithTracksChanger:
			m_bSyncWithTracksChanger = !m_bSyncWithTracksChanger;
			break;
		case MI_UseAsWebViewer:
			{
				ServicesRegistrationSrv* pSRS = PRGAPI()->GetServicesRegistrationSrv();
				ServicesRegistrationSrv::IWebViewer* pViewer = pSRS->GetWebViewer();
				if (pViewer != this)
					pSRS->SetWebViewer(this);
				else
					pSRS->SetWebViewer(NULL);
			}
			break;
		default:
			ASSERT(0);
			return FALSE;
		}
	}
	return TRUE;
}