From: <che...@us...> - 2008-07-17 19:36:18
|
Revision: 1928 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1928&view=rev Author: chef_koch Date: 2008-07-17 19:34:36 +0000 (Thu, 17 Jul 2008) Log Message: ----------- moved MyMusicVideos plugin from MediaPortal svn Added Paths: ----------- trunk/plugins/MyMusicVideos/ trunk/plugins/MyMusicVideos/MyMusicVideos/ trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideo.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoPlaylist.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.designer.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.resx trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupForm.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupForm.designer.cs trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupForm.resx trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/ trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/MVPlayListItem.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/MusicVideoDatabase.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/MusicVideoDatabaseTest.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooFavorites.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooGenres.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooNewVideos.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooSearch.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooSettings.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooSite.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooTopVideos.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooUtil.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MusicVideos/YahooVideo.cs trunk/plugins/MyMusicVideos/MyMusicVideos/MyMusicVideos.csproj trunk/plugins/MyMusicVideos/MyMusicVideos/Properties/ trunk/plugins/MyMusicVideos/MyMusicVideos/Properties/AssemblyInfo.cs trunk/plugins/MyMusicVideos/MyMusicVideos.xmp trunk/plugins/MyMusicVideos/release/ trunk/plugins/MyMusicVideos/release/skin/ trunk/plugins/MyMusicVideos/release/skin/BlueTwo/ trunk/plugins/MyMusicVideos/release/skin/BlueTwo/mymusicvideoplaylist.xml trunk/plugins/MyMusicVideos/release/skin/BlueTwo/mymusicvideos.xml trunk/plugins/MyMusicVideos/release/skin/BlueTwo wide/ trunk/plugins/MyMusicVideos/release/skin/BlueTwo wide/mymusicvideoplaylist.xml trunk/plugins/MyMusicVideos/release/skin/BlueTwo wide/mymusicvideos.xml Added: trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideo.cs =================================================================== --- trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideo.cs (rev 0) +++ trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideo.cs 2008-07-17 19:34:36 UTC (rev 1928) @@ -0,0 +1,975 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections; +using System.Collections.Generic; + +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using MediaPortal.Player; +using MediaPortal.Playlists; +using MediaPortal.MusicVideos.Database; + +namespace MediaPortal.GUI.MusicVideos +{ + public class GUIMusicVideos : GUIWindow, ISetupForm, IShowPlugin + { + #region SkinControlAttributes + [SkinControlAttribute(2)] protected GUIButtonControl btnTop = null; + [SkinControlAttribute(7)] protected GUIButtonControl btnNew = null; + [SkinControlAttribute(8)] protected GUIButtonControl btnPlayAll = null; + [SkinControlAttribute(3)] protected GUIButtonControl btnSearch = null; + [SkinControlAttribute(6)] protected GUIButtonControl btnFavorites = null; + [SkinControlAttribute(9)] protected GUIButtonControl btnBack = null; + [SkinControlAttribute(25)] protected GUIButtonControl btnPlayList = null; + [SkinControlAttribute(34)] protected GUIButtonControl btnNextPage = null; + [SkinControlAttribute(35)] protected GUIButtonControl btnPreviousPage = null; + [SkinControlAttribute(36)] protected GUIImage imgCountry = null; + [SkinControlAttribute(37)] protected GUIButtonControl btnGenre = null; + [SkinControlAttribute(38)] protected GUIButtonControl btnCountry = null; + + [SkinControlAttribute(50)] protected GUIListControl listSongs = null; + + #endregion + + #region Enumerations + enum State + { + HOME = -1, + TOP = 0, + SEARCH = 1, + FAVORITE = 2, + NEW = 3, + GENRE = 4 + }; + + #endregion + + #region variables + private int WINDOW_ID = 4734; + private YahooSettings moSettings; + private YahooTopVideos moTopVideos; + private YahooNewVideos moNewVideos; + private YahooSearch moYahooSearch; + private YahooFavorites moFavoriteManager; + private YahooGenres moGenre; + private int CURRENT_STATE = (int)State.HOME; + private int miSelectedIndex = 0; + private YahooVideo moCurrentPlayingVideo; + private string msSelectedGenre; + #endregion + + public GUIMusicVideos() + { + } + + #region ISetupForm Members + + public bool CanEnable() + { + return true; + } + + public string PluginName() + { + return "My Music Videos "; + } + + public bool DefaultEnabled() + { + return false; + } + + public bool HasSetup() + { + return true; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = GUILocalizeStrings.Get(30000);// "My MusicVideos"; + strButtonImage = ""; + strButtonImageFocus = ""; + strPictureImage = "hover_musicvideo.png"; + return true; + } + + public string Author() + { + return "Gregmac45"; + } + + public string Description() + { + return "This plugin shows online music videos from Yahoo"; + } + + public bool ShowDefaultHome() + { + return false; + } + + public void ShowPlugin() // show the setup dialog + { + System.Windows.Forms.Form setup = new SetupForm(); + setup.ShowDialog(); + } + + public int GetWindowId() + { + return GetID; + } + + #endregion + + #region GUIWindow Overrides + + public override int GetID + { + get { return WINDOW_ID; } + set { base.GetID = value; } + } + + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\mymusicvideos.xml"); + } + + protected override void OnPageDestroy(int new_windowId) + { + //labelState.Label = ""; + base.OnPageDestroy(new_windowId); + } + + public override void OnAction(Action action) + { + if (action.wID != Action.ActionType.ACTION_MOUSE_MOVE) + { + Log.Info("action wID = {0}", action.wID); + } + if (action.wID == Action.ActionType.ACTION_PREVIOUS_MENU && CURRENT_STATE != (int)State.HOME) + { + CURRENT_STATE = (int)State.HOME; + updateButtonStates(); + this.LooseFocus(); + btnTop.Focus = true; + return; + } + + base.OnAction(action); + } + public override bool OnMessage(GUIMessage message) + { + if (GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED != message.Message + && GUIMessage.MessageType.GUI_MSG_SETFOCUS != message.Message) + { + Log.Info("Message = {0}", message.Message); + } + + if (GUIMessage.MessageType.GUI_MSG_SETFOCUS == message.Message) + { + if (message.TargetControlId == listSongs.GetID && listSongs.Count > 0) + { + ////labelSelected.Label = "Press Menu or F9 for more options."; + // todo : show current title here... + //GUIPropertyManager.SetProperty("#title", listSongs.SelectedItem); + } + else + { + //labelSelected.Label = ""; + } + } + + return base.OnMessage(message); + } + protected override void OnPreviousWindow() + { + if (g_Player.Playing) + { + Log.Info("in OnPreviousWindow and g_player is playing"); + + if (moCurrentPlayingVideo != null) + GUIPropertyManager.SetProperty("#Play.Current.Title", moCurrentPlayingVideo.artistName + "-" + moCurrentPlayingVideo.songName); + } + base.OnPreviousWindow(); + } + protected override void OnPageLoad() + { + if (moSettings == null) + { + moSettings = YahooSettings.getInstance(); + } + Log.Info("Image filename = '{0}'", imgCountry.FileName); + if (String.IsNullOrEmpty(imgCountry.FileName)) + { + Log.Info("Updating country image"); + YahooUtil loUtil = YahooUtil.getInstance(); + string lsCountryId = loUtil.getYahooSite(moSettings.msDefaultCountryName).countryId; + Log.Info("country image -country id = {0}", lsCountryId); + string countryFlag = GUIGraphicsContext.Skin + @"\media\" + lsCountryId + ".png"; + if (System.IO.File.Exists(countryFlag)) + imgCountry.SetFileName(countryFlag); + } + + if (CURRENT_STATE == (int)State.HOME) + { + updateButtonStates(); + this.LooseFocus(); + btnTop.Focus = true; + } + else + { + if (CURRENT_STATE == (int)State.TOP) + { + refreshStage2Screen(); + } + else if (CURRENT_STATE == (int)State.NEW) + { + refreshStage2Screen(); + } + else if (CURRENT_STATE == (int)State.FAVORITE) + { + refreshStage2Screen(); + } + else if (CURRENT_STATE == (int)State.SEARCH) + { + refreshStage2Screen(); + } + else if (CURRENT_STATE == (int)State.GENRE) + { + refreshStage2Screen(); + } + this.LooseFocus(); + listSongs.Focus = true; + + } + if (g_Player.Playing) + { + if (moCurrentPlayingVideo != null) + { + GUIPropertyManager.SetProperty("#Play.Current.Title", moCurrentPlayingVideo.artistName + " - " + moCurrentPlayingVideo.songName); + } + } + + } + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + Log.Info("GUIMusicVideo: Clicked"); + if (actionType == Action.ActionType.ACTION_QUEUE_ITEM) + { + Log.Info("Caught on Queue action for list item {0}", listSongs.SelectedListItemIndex); + OnQueueItem(); + return; + } + if (control == listSongs) + { + miSelectedIndex = listSongs.SelectedListItemIndex; + playVideo(getSelectedVideo()); + } + else if (control == btnTop) + { + onClickTopVideos(); + } + else if (control == btnNew) + { + onClickNewVideos(); + } + else if (control == btnSearch) + { + SearchVideos(true, string.Empty); + } + else if (control == btnFavorites) + { + onClickFavorites(); + } + else if (control == btnGenre) + { + onClickGenre(); + } + else if (control == btnBack) + { + CURRENT_STATE = (int)State.HOME; + updateButtonStates(); + this.LooseFocus(); + btnTop.Focus = true; + } + + else if (control == btnPlayAll) + { + OnQueueAllItems(getStateVideoList()); + } + else if (control == btnPlayList) + { + onClickPlaylist(); + } + + else if (control == btnNextPage) + { + OnClickNextPage(); + } + else if (control == btnPreviousPage) + { + OnClickPreviousPage(); + } + else if (control == btnCountry) + { + onClickChangeCountry(); + } + } + public override void Process() + { + base.Process(); + } + protected override void OnShowContextMenu() + { + YahooVideo loVideo = getSelectedVideo(); + if (loVideo == null) + { + return; + } + GUIListItem loSelectVideo = listSongs.SelectedListItem; + int liSelectedIndex = listSongs.SelectedListItemIndex; + if (liSelectedIndex > -1) + { + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + dlgSel.Reset(); + if (dlgSel != null) + { + dlgSel.SetHeading(GUILocalizeStrings.Get(498)); // Menu + + dlgSel.Add(GUILocalizeStrings.Get(208)); // Play + dlgSel.Add(GUILocalizeStrings.Get(926)); // Add to playList + if ((int)State.FAVORITE == CURRENT_STATE) + dlgSel.Add(GUILocalizeStrings.Get(933)); // Remove from favorites + else + dlgSel.Add(GUILocalizeStrings.Get(930)); // Add to favorites + dlgSel.Add(GUILocalizeStrings.Get(30007)); // Search other videos by this artist + + dlgSel.DoModal(GetID); + int liSelectedIdx = dlgSel.SelectedId; + Log.Info("you selected action :{0}", liSelectedIdx); + switch (liSelectedIdx) + { + case 1: + playVideo(loVideo); + break; + case 2: + OnQueueItem(); + break; + case 3: + if (CURRENT_STATE == (int)State.FAVORITE) + { + moFavoriteManager.removeFavorite(loVideo); + DisplayVideoList(moFavoriteManager.getFavoriteVideos()); + } + else + { + //prompt user for favorite list to add to + string lsSelectedFav = promptForFavoriteList(); + Log.Info("adding to favorites."); + if (moFavoriteManager == null) + { + moFavoriteManager = new YahooFavorites(); + } + moFavoriteManager.setSelectedFavorite(lsSelectedFav); + moFavoriteManager.addFavorite(loVideo); + } + break; + case 4: + SearchVideos(false, loVideo.artistName); + break; + } + } + } + } + #endregion + + #region userdefined methods + private void onClickFavorites() + { + if (moFavoriteManager == null) + { + moFavoriteManager = new YahooFavorites(); + } + + string lsSelectedFav = promptForFavoriteList(); + if (String.IsNullOrEmpty(lsSelectedFav)) + { + return; + } + + CURRENT_STATE = (int)State.FAVORITE; + + + if (lsSelectedFav != null || lsSelectedFav.Length > 0) + { + moFavoriteManager.setSelectedFavorite(lsSelectedFav); + } + DisplayVideoList(moFavoriteManager.getFavoriteVideos()); + //labelState.Label = (GUILocalizeStrings.Get(932) + " - " + moFavoriteManager.getSelectedFavorite()); + updateButtonStates(); + if (listSongs.Count == 0) + { + this.LooseFocus(); + btnBack.Focus = true; + } + } + + private void onClickPlaylist() + { + if (GetID == GUIWindowManager.ActiveWindow) + { + GUIWindowManager.ActivateWindow(4735); + } + } + + private string promptForGenre() + { + string lsSelectedGenre = ""; + moGenre = new YahooGenres(); + ArrayList loGenreNames = moGenre.moSortedGenreList; + + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + dlgSel.Reset(); + if (dlgSel != null) + { + foreach (string lsGenreNm in loGenreNames) + dlgSel.Add(lsGenreNm); + + dlgSel.SetHeading(GUILocalizeStrings.Get(496)); // Menu + dlgSel.DoModal(GetID); + if (dlgSel.SelectedLabel == -1) + return ""; + + Log.Info("you selected genre :{0}", dlgSel.SelectedLabelText); + lsSelectedGenre = dlgSel.SelectedLabelText; + } + return lsSelectedGenre; + } + + private string promptForFavoriteList() + { + + string lsSelectedFav = ""; + if (moFavoriteManager == null) + moFavoriteManager = new YahooFavorites(); + + ArrayList loFavNames = moFavoriteManager.getFavoriteNames(); + if (loFavNames.Count > 1) + { + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + dlgSel.Reset(); + if (dlgSel != null) + { + foreach (string lsFavNm in loFavNames) + dlgSel.Add(lsFavNm); + + dlgSel.SetHeading(GUILocalizeStrings.Get(497)); // Menu + dlgSel.DoModal(GetID); + if (dlgSel.SelectedLabel == -1) + return ""; + + Log.Info("you selected favorite :{0}", dlgSel.SelectedLabelText); + lsSelectedFav = dlgSel.SelectedLabelText; + } + } + else + lsSelectedFav = (string)loFavNames[0]; + + return lsSelectedFav; + } + + private void onClickChangeCountry() + { + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + dlgSel.Reset(); + if (dlgSel != null) + { + String[] loCountryArray = new String[moSettings.moYahooSiteTable.Keys.Count]; + moSettings.moYahooSiteTable.Keys.CopyTo(loCountryArray, 0); + Array.Sort(loCountryArray); + + foreach (string country in loCountryArray) + dlgSel.Add(country); + + dlgSel.SetHeading(GUILocalizeStrings.Get(496)); // Menu + dlgSel.DoModal(GetID); + if (dlgSel.SelectedLabel == -1) + return; + + Log.Info("you selected country :{0}", dlgSel.SelectedLabelText); + moSettings.msDefaultCountryName = dlgSel.SelectedLabelText; + moYahooSearch = new YahooSearch(moSettings.msDefaultCountryName); + moTopVideos = new YahooTopVideos(moSettings.msDefaultCountryName); + RefreshPage(); + } + } + + private void onClickNewVideos() + { + miSelectedIndex = 0; + + CURRENT_STATE = (int)State.NEW; + Log.Info("button new clicked"); + if (moNewVideos == null) + { + moNewVideos = new YahooNewVideos(); + } + moNewVideos.loadNewVideos(moSettings.msDefaultCountryName); + Log.Info("The new video page has next video ={0}", moNewVideos.hasNext()); + if (moNewVideos.hasNext()) + btnNextPage.Disabled = false; + else + btnNextPage.Disabled = true; + + btnPreviousPage.Disabled = true; + refreshStage2Screen(); + } + + private void onClickGenre() + { + miSelectedIndex = 0; + if (moGenre == null) + moGenre = new YahooGenres(); + + msSelectedGenre = promptForGenre(); + if (String.IsNullOrEmpty(msSelectedGenre)) + { + return; + } + CURRENT_STATE = (int)State.GENRE; + + Log.Info("button GENRE clicked"); + + moGenre.loadFirstGenreVideos(msSelectedGenre); + + if (moGenre.hasNext()) + btnNextPage.Disabled = false; + else + btnNextPage.Disabled = true; + + btnPreviousPage.Disabled = true; + refreshStage2Screen(); + } + + private void OnQueueItem() + { + + PlayListPlayer loPlaylistPlayer = PlayListPlayer.SingletonPlayer; + loPlaylistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + PlayList loPlaylist = loPlaylistPlayer.GetPlaylist(loPlaylistPlayer.CurrentPlaylistType); + MVPlayListItem loItem; + YahooVideo loVideo = getSelectedVideo(); + + + loItem = new MVPlayListItem(); + loItem.YahooVideo = loVideo; + loPlaylist.Add(loItem); + + + if (listSongs.SelectedListItemIndex + 1 < listSongs.Count) + { + listSongs.SelectedListItemIndex = listSongs.SelectedListItemIndex + 1; + } + //} + } + + private void OnQueueAllItems(List<YahooVideo> foVideoList) + { + Log.Info("in Onqueue All"); + PlayListPlayer loPlaylistPlayer = PlayListPlayer.SingletonPlayer; + loPlaylistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + PlayList loPlaylist = loPlaylistPlayer.GetPlaylist(loPlaylistPlayer.CurrentPlaylistType); + MVPlayListItem loItem; + foreach (YahooVideo loVideo in foVideoList) + { + loItem = new MVPlayListItem(); + loItem.YahooVideo = loVideo; + loItem.Description = loVideo.artistName + "-" + loVideo.songName; + loPlaylist.Add(loItem); + } + Log.Info("current playlist type:{0}", loPlaylistPlayer.CurrentPlaylistType); + Log.Info("playlist count:{0}", loPlaylistPlayer.GetPlaylist(loPlaylistPlayer.CurrentPlaylistType)); + + onClickPlaylist(); + loPlaylistPlayer.PlayNext(); + } + + + private void SearchVideos(bool fbClicked, String fsSearchTxt) + { + + CURRENT_STATE = (int)State.SEARCH; + if (moYahooSearch == null) + { + moYahooSearch = new YahooSearch(moSettings.msDefaultCountryName); + } + + //clear the list + listSongs.Clear(); + if (fbClicked) + { + VirtualKeyboard keyBoard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + if (null == keyBoard) + return; + keyBoard.Reset(); + keyBoard.DoModal(GUIWindowManager.ActiveWindow); + + if (!keyBoard.IsConfirmed) + return; + moYahooSearch.searchVideos(keyBoard.Text); + } + else + { + moYahooSearch.searchVideos(fsSearchTxt); + } + DisplayVideoList(moYahooSearch.moLastSearchResult); + + btnNextPage.Disabled = !moYahooSearch.hasNext(); + btnPreviousPage.Disabled = true; + updateButtonStates(); + } + + private void onClickTopVideos() + { + CURRENT_STATE = (int)State.TOP; + miSelectedIndex = 0; + if (moTopVideos == null) + { + moTopVideos = new YahooTopVideos(moSettings.msDefaultCountryName); + } + moTopVideos.loadFirstPage(); + if (moTopVideos.hasMorePages()) + { + btnNextPage.Disabled = false; + } + else + { + btnNextPage.Disabled = true; + } + btnPreviousPage.Disabled = true; + refreshStage2Screen(); + } + + private void OnClickNextPage() + { + miSelectedIndex = 0; + bool lbNext = false; + bool lbPrevious = false; + switch (CURRENT_STATE) + { + case (int)State.NEW: + moNewVideos.loadNextVideos(moSettings.msDefaultCountryName); + lbNext = moNewVideos.hasNext(); + lbPrevious = moNewVideos.hasPrevious(); + DisplayVideoList(moNewVideos.moNewVideoList); + break; + case (int)State.TOP: + moTopVideos.loadNextPage(); + lbNext = moTopVideos.hasMorePages(); + lbPrevious = moTopVideos.hasPreviousPage(); + DisplayVideoList(moTopVideos.getLastLoadedList()); + break; + case (int)State.SEARCH: + moYahooSearch.loadNextVideos(); + lbNext = moYahooSearch.hasNext(); + lbPrevious = moYahooSearch.hasPrevious(); + DisplayVideoList(moYahooSearch.moLastSearchResult); + break; + case (int)State.GENRE: + moGenre.loadNextVideos(); + lbNext = moGenre.hasNext(); + lbPrevious = moGenre.hasPrevious(); + DisplayVideoList(moGenre.moGenreVideoList); + break; + } + Log.Info("The video page has next video ={0}", lbNext); + Log.Info("The video page has previous video ={0}", lbPrevious); + + btnNextPage.Disabled = !lbNext; + btnPreviousPage.Disabled = !lbPrevious; + updateButtonStates(); + } + + private void OnClickPreviousPage() + { + miSelectedIndex = 0; + bool lbNext = false; + bool lbPrevious = false; + switch (CURRENT_STATE) + { + case (int)State.NEW: + moNewVideos.loadPreviousVideos(moSettings.msDefaultCountryName); + lbNext = moNewVideos.hasNext(); + lbPrevious = moNewVideos.hasPrevious(); + DisplayVideoList(moNewVideos.moNewVideoList); + break; + case (int)State.TOP: + moTopVideos.loadPreviousPage(); + lbNext = moTopVideos.hasMorePages(); + lbPrevious = moTopVideos.hasPreviousPage(); + DisplayVideoList(moTopVideos.getLastLoadedList()); + break; + case (int)State.SEARCH: + moYahooSearch.loadPreviousVideos(); + lbNext = moYahooSearch.hasNext(); + lbPrevious = moYahooSearch.hasPrevious(); + DisplayVideoList(moYahooSearch.moLastSearchResult); + break; + case (int)State.GENRE: + moGenre.loadPreviousVideos(); + lbNext = moGenre.hasNext(); + lbPrevious = moGenre.hasPrevious(); + DisplayVideoList(moGenre.moGenreVideoList); + break; + } + Log.Info("The video page has next video ={0}", lbNext); + Log.Info("The video page has previous video ={0}", lbPrevious); + + btnNextPage.Disabled = !lbNext; + btnPreviousPage.Disabled = !lbPrevious; + updateButtonStates(); + } + + private List<YahooVideo> getStateVideoList() + { + List<YahooVideo> loCurrentDisplayVideoList = null; + switch (CURRENT_STATE) + { + case (int)State.TOP: + loCurrentDisplayVideoList = moTopVideos.getLastLoadedList(); + break; + case (int)State.NEW: + loCurrentDisplayVideoList = moNewVideos.moNewVideoList; + break; + case (int)State.SEARCH: + loCurrentDisplayVideoList = moYahooSearch.moLastSearchResult; + break; + case (int)State.FAVORITE: + loCurrentDisplayVideoList = moFavoriteManager.getFavoriteVideos(); + break; + case (int)State.GENRE: + loCurrentDisplayVideoList = moGenre.moGenreVideoList; + break; + default: break; + } + return loCurrentDisplayVideoList; + } + + private YahooVideo getSelectedVideo() + { + YahooVideo loVideo = null; + + List<YahooVideo> loCurrentDisplayVideoList = getStateVideoList(); + + if (loCurrentDisplayVideoList != null && loCurrentDisplayVideoList.Count > 0) + { + loVideo = loCurrentDisplayVideoList[listSongs.SelectedListItemIndex]; + } + return loVideo; + } + + private string getUserTypedText() + { + string KB_Search_Str = ""; + VirtualKeyboard keyBoard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + keyBoard.Text = ""; + keyBoard.Reset(); + keyBoard.DoModal(GUIWindowManager.ActiveWindow); // show it... + System.GC.Collect(); // collect some garbage + if (keyBoard.Text == "" || keyBoard.Text == null) + { + return ""; + } + KB_Search_Str = keyBoard.Text; + return KB_Search_Str; + } + + private void refreshScreenVideoList() + { + Log.Info("Refreshing video list on screen"); + List<YahooVideo> loCurrentDisplayVideoList = getStateVideoList(); + DisplayVideoList(loCurrentDisplayVideoList); + listSongs.SelectedListItemIndex = miSelectedIndex; + } + + private void DisplayVideoList(List<YahooVideo> foVideoList) + { + if (foVideoList == null && foVideoList.Count < 1) { return; } + listSongs.Clear(); + GUIListItem item = null; + int liVideoListSize = foVideoList.Count; + foreach (YahooVideo loYahooVideo in foVideoList) + { + item = new GUIListItem(); + item.DVDLabel = loYahooVideo.songId; + if (loYahooVideo.artistName == null || loYahooVideo.artistName.Equals("")) + { + item.Label = loYahooVideo.songName; + } + else + { + item.Label = loYahooVideo.artistName + " - " + loYahooVideo.songName; + } + item.IsFolder = false; + //item.MusicTag = true; + listSongs.Add(item); + } + this.LooseFocus(); + listSongs.Focus = true; + if (listSongs.Count > 0) + { + ////labelSelected.Label = "Press Menu or F9 for more options."; + } + else + { + //labelSelected.Label = ""; + } + } + + void playVideo(YahooVideo video) + { + //Log.Info("in playVideo()"); + string lsVideoLink = null; + YahooSite loSite; + YahooUtil loUtil = YahooUtil.getInstance(); + loSite = loUtil.getYahooSiteById(video.countryId); + lsVideoLink = loUtil.getVideoMMSUrl(video, moSettings.msDefaultBitRate); + lsVideoLink = lsVideoLink.Substring(0, lsVideoLink.Length - 2) + "&txe=.wmv"; + if (moSettings.mbUseVMR9) + g_Player.PlayVideoStream(lsVideoLink, video.artistName + " - " + video.songName); + else + g_Player.PlayAudioStream(lsVideoLink, true); + + if (g_Player.Playing) + { + Log.Info("GUIMusicVideo: Playing: {0} with Bitrate: {1}", video.songName, moSettings.msDefaultBitRate); + g_Player.ShowFullScreenWindow(); + moCurrentPlayingVideo = video; + } + else + { + Log.Info("GUIMusicVideo: Unable to play {0}", lsVideoLink); + GUIDialogNotify dlg = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + dlg.SetHeading("ERROR"); + dlg.SetText("Unable to play the selected music video. Please try again later."); + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + } + + public void refreshStage2Screen() + { + updateButtonStates(); + refreshScreenVideoList(); + } + + void RefreshPage() + { + this.Restore(); + this.Init(); + this.Render(0); + this.OnPageLoad(); + } + + private void updateButtonStates() + { + if ((int)State.HOME == CURRENT_STATE) + { + btnTop.Visible = true; + btnNew.Visible = true; + btnGenre.Visible = true; + btnSearch.Visible = true; + btnFavorites.Visible = true; + btnCountry.Visible = true; + + btnBack.Visible = false; + btnPlayAll.Visible = false; + btnNextPage.Visible = false; + btnPreviousPage.Visible = false; + + btnTop.NavigateUp = btnPlayList.GetID; + btnPlayList.NavigateUp = btnCountry.GetID; + btnPlayList.NavigateDown = btnTop.GetID; + listSongs.NavigateLeft = btnTop.GetID; + listSongs.Clear(); + if (g_Player.Playing) + { + // Temp hack + btnPlayList.NavigateDown = 99; + btnTop.NavigateUp = 99; + } + GUIPropertyManager.SetProperty("#itemcount", ""); + } + else + { + btnNextPage.Visible = true; + btnPreviousPage.Visible = true; + btnBack.Visible = true; + btnPlayAll.Visible = true; + + btnTop.Visible = false; + btnSearch.Visible = false; + btnFavorites.Visible = false; + btnGenre.Visible = false; + btnNew.Visible = false; + btnCountry.Visible = false; + + + btnPlayList.NavigateUp = btnPlayAll.GetID; + btnPlayList.NavigateDown = btnBack.GetID; + + listSongs.NavigateLeft = btnBack.GetID; + miSelectedIndex = 0; + + String lsItemCount = string.Empty; + + switch (CURRENT_STATE) + { + case (int)State.FAVORITE: + lsItemCount = GUILocalizeStrings.Get(932) + " - " + moFavoriteManager.getSelectedFavorite(); + break; + case (int)State.GENRE: + lsItemCount = String.Format("{0} {1} - {2} {3} ", GUILocalizeStrings.Get(174), msSelectedGenre, GUILocalizeStrings.Get(30009), moGenre.getCurrentPageNumber()); + break; + case (int)State.NEW: + lsItemCount = GUILocalizeStrings.Get(30002) + " - " + GUILocalizeStrings.Get(30009) + " " + moNewVideos.getCurrentPageNumber(); + break; + case (int)State.SEARCH: + lsItemCount = String.Format(GUILocalizeStrings.Get(30010), moYahooSearch.getLastSearchText(), moYahooSearch.getCurrentPageNumber()); + break; + case (int)State.TOP: + lsItemCount = GUILocalizeStrings.Get(30001) + " " + GUILocalizeStrings.Get(30008) + " " + moTopVideos.getFirstVideoRank() + "-" + moTopVideos.getLastVideoRank(); + break; + + } + //GUIPropertyManager.SetProperty("#header.label", lsHeaderLbl); + //GUIPropertyManager.SetProperty("#selecteditem", lsSelectedItem); + GUIPropertyManager.SetProperty("#itemcount", lsItemCount); + } + } + #endregion + } +} Added: trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoPlaylist.cs =================================================================== --- trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoPlaylist.cs (rev 0) +++ trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoPlaylist.cs 2008-07-17 19:34:36 UTC (rev 1928) @@ -0,0 +1,792 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Windows.Forms; + +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Player; +using MediaPortal.Playlists; +using MediaPortal.TagReader; +using MediaPortal.Dialogs; +using MediaPortal.MusicVideos.Database; + + +namespace MediaPortal.GUI.MusicVideos +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + public class GUIMusicVideoPlayList : GUIWindow + { + #region Base variabeles + DirectoryHistory m_history = new DirectoryHistory(); + string m_strDirectory = string.Empty; + int m_iItemSelected = -1; + int m_iLastControl = 0; + + string m_strCurrentFile = string.Empty; + string m_playlist = string.Empty; + PlayListPlayer playlistPlayer; + protected string _currentPlaying; + #endregion + [SkinControlAttribute(39)] + protected GUIButtonControl btnMyPlaylists = null; + [SkinControlAttribute(20)] + protected GUIButtonControl btnShuffle = null; + [SkinControlAttribute(21)] + protected GUIButtonControl btnSave = null; + [SkinControlAttribute(22)] + protected GUIButtonControl btnClear = null; + [SkinControlAttribute(23)] + protected GUIButtonControl btnPlay = null; + [SkinControlAttribute(24)] + protected GUIButtonControl btnNext = null; + [SkinControlAttribute(25)] + protected GUIButtonControl btnPrevious = null; + [SkinControlAttribute(50)] + protected GUIFacadeControl facadeView = null; + + private int WINDOW_ID = 4735; + + public GUIMusicVideoPlayList() + { + GetID = WINDOW_ID; + playlistPlayer = PlayListPlayer.SingletonPlayer; + } + + #region overrides + public override bool Init() + { + m_strDirectory = System.IO.Directory.GetCurrentDirectory(); + GUIWindowManager.Receivers += new SendMessageHandler(OnThreadMessage); + return Load(GUIGraphicsContext.Skin + @"\mymusicvideoplaylist.xml"); + } + public override int GetID + { + get + { + return WINDOW_ID; + } + set + { + base.GetID = value; + } + } + + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_SHOW_PLAYLIST) + { + GUIWindowManager.ShowPreviousWindow(); + return; + } + + else if (action.wID == Action.ActionType.ACTION_MOVE_SELECTED_ITEM_UP) + MovePlayListItemUp(); + + else if (action.wID == Action.ActionType.ACTION_MOVE_SELECTED_ITEM_DOWN) + MovePlayListItemDown(); + + else if (action.wID == Action.ActionType.ACTION_DELETE_SELECTED_ITEM) + DeletePlayListItem(); + + // Handle case where playlist has been stopped and we receive a player action. + // This allows us to restart the playback proccess... + else if (action.wID == Action.ActionType.ACTION_MUSIC_PLAY + || action.wID == Action.ActionType.ACTION_NEXT_ITEM + || action.wID == Action.ActionType.ACTION_PAUSE + || action.wID == Action.ActionType.ACTION_PREV_ITEM + ) + { + if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC_VIDEO) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + + if (g_Player.CurrentFile == "") + { + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + + if (playList != null && playList.Count > 0) + { + playlistPlayer.Play(0); + UpdateButtonStates(); + } + } + } + } + + base.OnAction(action); + } + + protected override void OnPageLoad() + { + base.OnPageLoad(); + facadeView.View = GUIFacadeControl.ViewMode.Playlist; + + // Disable Playlist if no playlists exists + ArrayList loPlayListNames = MusicVideoDatabase.getInstance().getPlaylists(); + if (loPlayListNames.Count == 0) + btnMyPlaylists.Disabled = true; + + // If nothing in list - disable save button + if (facadeView.Count == 0) + btnSave.Disabled = true; + + LoadDirectory(string.Empty); + if (m_iItemSelected >= 0) + { + GUIControl.SelectItemControl(GetID, facadeView.GetID, m_iItemSelected); + } + if ((m_iLastControl == facadeView.GetID) && facadeView.Count <= 0) + { + m_iLastControl = btnShuffle.GetID; + GUIControl.FocusControl(GetID, m_iLastControl); + } + if (facadeView.Count <= 0) + { + GUIControl.FocusControl(GetID, btnShuffle.GetID); + } + SelectCurrentPlayingSong(); + } + + protected override void OnPageDestroy(int newWindowId) + { + m_iItemSelected = facadeView.SelectedListItemIndex; + base.OnPageDestroy(newWindowId); + } + + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + base.OnClicked(controlId, control, actionType); + if (control == btnShuffle) + { + ShufflePlayList(); + } + else if (control == btnSave) + { + SavePlayList(); + } + else if (control == btnClear) + { + ClearPlayList(); + } + else if (control == btnPlay) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + playlistPlayer.Reset(); + playlistPlayer.Play(0); + UpdateButtonStates(); + } + else if (control == btnNext) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + playlistPlayer.PlayNext(); + SelectCurrentPlayingSong(); + } + else if (control == btnPrevious) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + playlistPlayer.PlayPrevious(); + SelectCurrentPlayingSong(); + } + else if (control == facadeView) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + playlistPlayer.Reset(); + playlistPlayer.Play(facadeView.SelectedListItemIndex); + UpdateButtonStates(); + } + else if (control == btnMyPlaylists) + { + LoadPlayList(); + } + } + + public override bool OnMessage(GUIMessage message) + { + switch (message.Message) + { + case GUIMessage.MessageType.GUI_MSG_PLAYBACK_STOPPED: + { + for (int i = 0; i < facadeView.Count; ++i) + { + GUIListItem item = facadeView[i]; + if (item != null && item.Selected) + { + item.Selected = false; + break; + } + } + + UpdateButtonStates(); + } + break; + + case GUIMessage.MessageType.GUI_MSG_PLAYLIST_CHANGED: + { + //global playlist changed outside playlist window + if (m_iLastControl == facadeView.GetID && facadeView.Count <= 0) + { + m_iLastControl = btnShuffle.GetID; + GUIControl.FocusControl(GetID, m_iLastControl); + } + + SelectCurrentPlayingSong(); + } + break; + } + return base.OnMessage(message); + } + + protected void UpdateButtonStates() + { + + if (facadeView.Count > 0) + { + btnShuffle.Disabled = false; + btnSave.Disabled = false; + btnClear.Disabled = false; + btnPlay.Disabled = false; + if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_VIDEO) + { + btnNext.Disabled = false; + btnPrevious.Disabled = false; + btnPlay.NavigateDown = btnNext.GetID; + // Temp hack + btnPrevious.NavigateDown = 99; + btnMyPlaylists.NavigateUp = 99; + } + else + { + btnNext.Disabled = true; + btnPrevious.Disabled = true; + + btnPlay.NavigateDown = btnMyPlaylists.GetID; + btnMyPlaylists.NavigateUp = btnPlay.GetID; + } + } + else + { + btnShuffle.Disabled = true; + btnSave.Disabled = true; + btnClear.Disabled = true; + btnPlay.Disabled = true; + btnNext.Disabled = true; + btnPrevious.Disabled = true; + } + + //disable shuffle/save/previous if party shuffle is on + } + + protected void OnClick(int iItem) + { + GUIListItem item = facadeView.SelectedListItem; + if (item == null) + return; + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + playlistPlayer.Reset(); + playlistPlayer.Play(iItem); + SelectCurrentPlayingSong(); + UpdateButtonStates(); + } + + protected void OnQueueItem(int iItem) + { + RemovePlayListItem(iItem); + } + + public override void Process() + { + if (!m_strCurrentFile.Equals(g_Player.CurrentFile)) + { + m_strCurrentFile = g_Player.CurrentFile; + GUIMessage msg; + if (g_Player.Playing) + { + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAYLIST_CHANGED, GetID, 0, 0, 0, 0, null); + OnMessage(msg); + } + else + { + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAYBACK_STOPPED, GetID, 0, 0, 0, 0, null); + OnMessage(msg); + } + } + } + + #endregion + void OnThreadMessage(GUIMessage message) + { + switch (message.Message) + { + case GUIMessage.MessageType.GUI_MSG_PLAYBACK_ENDED: + break; + + //special case for when the next button is pressed - stopping the prev song does not cause a Playback_Ended event + case GUIMessage.MessageType.GUI_MSG_PLAYBACK_STARTED: + break; + } + } + + + protected void LoadDirectory(string strNewDirectory) + { + GUIWaitCursor.Show(); + TimeSpan totalPlayingTime = new TimeSpan(); + GUIListItem SelectedItem = facadeView.SelectedListItem; + if (SelectedItem != null) + { + if (SelectedItem.IsFolder && SelectedItem.Label != "..") + { + m_history.Set(SelectedItem.Label, m_strDirectory); + } + } + m_strDirectory = strNewDirectory; + GUIControl.ClearControl(GetID, facadeView.GetID); + + List<GUIListItem> itemlist = new List<GUIListItem>(); + + PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + + + string strFileName; + YahooVideo loVideo; + for (int i = 0; i < playlist.Count; ++i) + { + MVPlayListItem loPlayListItem = (MVPlayListItem)playlist[i]; + loVideo = loPlayListItem.YahooVideo; + + GUIListItem pItem = new GUIListItem(loVideo.artistName + " - " + loVideo.songName); + pItem.Path = loVideo.songId; + pItem.MusicTag = loPlayListItem.MusicTag; + pItem.IsFolder = false; + + MediaPortal.Util.Utils.SetDefaultIcons(pItem); + if (loPlayListItem.Played) + { + pItem.Shaded = true; + } + + if (loPlayListItem.Duration > 0) + pItem.Label2 = MediaPortal.Util.Utils.SecondsToHMSString(loPlayListItem.Duration); + else + pItem.Label2 = string.Empty; + + itemlist.Add(pItem); + } + + strFileName = string.Empty; + + string strSelectedItem = m_history.Get(m_strDirectory); + int iItem = 0; + foreach (GUIListItem item in itemlist) + { + MusicTag tag = item.MusicTag as MusicTag; + if (tag != null) + { + if (tag.Duration > 0) + totalPlayingTime = totalPlayingTime.Add(new TimeSpan(0, 0, tag.Duration)); + } + facadeView.Add(item); + // synchronize playlist with current directory + if (strFileName.Length > 0 && item.Path == strFileName) + { + item.Selected = true; + } + } + int iTotalItems = itemlist.Count; + if (itemlist.Count > 0) + { + GUIListItem rootItem = itemlist[0]; + if (rootItem.Label == "..") iTotalItems--; + } + + //set object count label + if (totalPlayingTime.Seconds > 0) + GUIPropertyManager.SetProperty("#itemcount", Util.Utils.GetSongCountLabel(iTotalItems, (int)totalPlayingTime.TotalSeconds)); + else + GUIPropertyManager.SetProperty("#itemcount", Util.Utils.GetObjectCountLabel(iTotalItems)); + + SetLabels(); + for (int i = 0; i < facadeView.Count; ++i) + { + GUIListItem item = facadeView[i]; + if (item.Label == strSelectedItem) + { + GUIControl.SelectItemControl(GetID, facadeView.GetID, iItem); + break; + } + iItem++; + } + for (int i = 0; i < facadeView.Count; ++i) + { + GUIListItem item = facadeView[i]; + if (item.Path.Equals(_currentPlaying, StringComparison.OrdinalIgnoreCase)) + { + item.Selected = true; + break; + } + } + UpdateButtonStates(); + GUIWaitCursor.Hide(); + } + + + + void LoadPlayList() + { + ArrayList loPlayListNames = MusicVideoDatabase.getInstance().getPlaylists(); + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + if (dlgSel == null) + return; + dlgSel.Reset(); + + foreach (String lsName in loPlayListNames) + { + dlgSel.Add(lsName); + } + + dlgSel.SetHeading(GUILocalizeStrings.Get(983)); // My Playlists + dlgSel.DoModal(GetID); + int SelectedId = dlgSel.SelectedId; + if (SelectedId == 0) + return; + + Log.Debug("Selected playlist :{0}", loPlayListNames[SelectedId - 1]); + + m_playlist = loPlayListNames[SelectedId - 1].ToString(); + List<YahooVideo> videos = MusicVideoDatabase.getInstance().getPlayListVideos(loPlayListNames[SelectedId - 1].ToString()); + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + playList.Clear(); + MVPlayListItem item; + foreach (YahooVideo video in videos) + { + item = new MVPlayListItem(); + item.YahooVideo = video; + item.Description = video.artistName + "-" + video.songName; + playList.Add(item); + } + LoadDirectory(string.Empty); + + } + + void ClearPlayList() + { + if (m_playlist != string.Empty) + { + GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_YES_NO); + if (null == dlgYesNo) + return; + dlgYesNo.SetHeading(GUILocalizeStrings.Get(117)); + dlgYesNo.SetLine(1, m_playlist); + dlgYesNo.SetDefaultToYes(false); + dlgYesNo.DoModal(GetID); + if (dlgYesNo.IsConfirmed) + { + MusicVideoDatabase.getInstance().DeletePlaylist(m_playlist); + } + m_playlist = string.Empty; + } + GUIControl.ClearControl(GetID, facadeView.GetID); + playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO).Clear(); + if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_VIDEO) + playlistPlayer.Reset(); + LoadDirectory(string.Empty); + UpdateButtonStates(); + GUIControl.FocusControl(GetID, btnMyPlaylists.GetID); + } + + + void RemovePlayListItem(int iItem) + { + + GUIListItem pItem = facadeView[iItem]; + if (pItem == null) return; + //string strFileName = pItem.Path; + + PlayList loPlayList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + string strFileName = string.Empty; + foreach (MVPlayListItem loItem in loPlayList) + { + loItem.UpdateUrl = false; + YahooVideo loVideo = loItem.YahooVideo; + if (loVideo.songId.Equals(pItem.Path)) + { + strFileName = loItem.FileName; + } + } + + playlistPlayer.Remove(PlayListType.PLAYLIST_MUSIC_VIDEO, strFileName); + foreach (MVPlayListItem loItem in loPlayList) + { + loItem.UpdateUrl = true; + } + + LoadDirectory(m_strDirectory); + UpdateButtonStates(); + GUIControl.SelectItemControl(GetID, facadeView.GetID, iItem); + SelectCurrentPlayingSong(); + } + + void ShufflePlayList() + { + + GUIControl.ClearControl(GetID, facadeView.GetID); + PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + + if (playlist.Count <= 0) return; + string strFileName = string.Empty; + if (playlistPlayer.CurrentSong >= 0) + { + if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_VIDEO) + { + PlayListItem item = playlist[playlistPlayer.CurrentSong]; + strFileName = item.FileName; + } + } + playlist.Shuffle(); + if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_VIDEO) + playlistPlayer.Reset(); + + if (strFileName.Length > 0) + { + for (int i = 0; i < playlist.Count; i++) + { + PlayListItem item = playlist[i]; + if (item.FileName == strFileName) + playlistPlayer.CurrentSong = i; + } + } + + LoadDirectory(m_strDirectory); + + SelectCurrentPlayingSong(); + } + + + void SavePlayList() + { + string newFileName = m_playlist; + if (GetKeyboard(ref newFileName)) + { + Cursor.Current = Cursors.WaitCursor; + PlayList loPlaylist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + YahooVideo loVideo; + MusicVideoDatabase loDatabase = MusicVideoDatabase.getInstance(); + loDatabase.createPlayList(newFileName); + int i = 0; + foreach (MVPlayListItem loPlayListItem in loPlaylist) + { + i++; + loVideo = loPlayListItem.YahooVideo; + loDatabase.addPlayListVideo(newFileName, loVideo, i); + } + Cursor.Current = Cursors.Default; + } + } + + void SelectCurrentPlayingSong() + { + if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_VIDEO) + { + // delete prev. selected item + for (int i = 0; i < facadeView.Count; ++i) + { + GUIListItem item = facadeView[i]; + if (item != null && item.Selected) + { + item.Selected = false; + break; + } + } + + // set current item selected + int iSong = playlistPlayer.CurrentSong; + if (iSong >= 0 && iSong <= facadeView.Count) + { + GUIControl.SelectItemControl(GetID, facadeView.GetID, iSong); + GUIListItem item = facadeView[iSong]; + if (item != null) item.Selected = true; + } + } + } + + private void MovePlayListItemUp() + { + if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE) + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + + if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC_VIDEO + || facadeView.View != GUIFacadeControl.ViewMode.Playlist + || facadeView.PlayListView == null) + { + return; + } + + int iItem = facadeView.SelectedListItemIndex; + + // Prevent moving backwards past the top song in the list + + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + playList.MovePlayListItemUp(iItem); + int selectedIndex = facadeView.MoveItemUp(iItem, true); + + if (iItem == playlistPlayer.CurrentSong) + playlistPlayer.CurrentSong = selectedIndex; + + facadeView.SelectedListItemIndex = selectedIndex; + UpdateButtonStates(); + + } + + private void MovePlayListItemDown() + { + if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE) + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + + if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC_VIDEO + || facadeView.View != GUIFacadeControl.ViewMode.Playlist + || facadeView.PlayListView == null) + { + return; + } + + int iItem = facadeView.SelectedListItemIndex; + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + + // Prevent moving fowards past the last song in the list + // as this would cause the currently playing song to scroll + // off of the list view... + + playList.MovePlayListItemDown(iItem); + int selectedIndex = facadeView.MoveItemDown(iItem, true); + + if (iItem == playlistPlayer.CurrentSong) + playlistPlayer.CurrentSong = selectedIndex; + + facadeView.SelectedListItemIndex = selectedIndex; + + UpdateButtonStates(); + + } + + private void DeletePlayListItem() + { + if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE) + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC_VIDEO; + + if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC_VIDEO + || facadeView.View != GUIFacadeControl.ViewMode.Playlist + || facadeView.PlayListView == null) + { + return; + } + + int iItem = facadeView.SelectedListItemIndex; + + string currentFile = g_Player.CurrentFile; + GUIListItem item = facadeView[iItem]; + PlayList loPlayList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_VIDEO); + //string strFileName = string.Empty; + MVPlayListItem loItemToDelete = null; + foreach (MVPlayListItem loItem in loPlayList) + { + YahooVideo loVideo = loItem.YahooVideo; + //string lsDesc = loVideo.artistName + " - " + loVideo.songName; + if (loVideo.songId.Equals(item.Path)) + { + loItemToDelete = loItem; + } + } + RemovePlayListItem(iItem); + if (loItemToDelete != null) + { + loItemToDelete.UpdateUrl = false; + if (currentFile.Length > 0 && currentFile == item.Path) + { + string nextTrackPath = PlayListPlayer.SingletonPlayer.GetNext(); + + if (nextTrackPath.Length == 0) + g_Player.Stop(); + + else + { + if (iItem == facadeView.Count) + playlistPlayer.Play(iItem - 1); + + else + playlistPlayer.PlayNext(); + } + } + loItemToDelete.UpdateUrl = true; + } + + if (facadeView.Count == 0) + g_Player.Stop(); + + else + facadeView.PlayListView.SelectedListItemIndex = iItem; + + UpdateButtonStates(); + + } + + protected void SetLabels() + { + for (int i = 0; i < facadeView.Count; ++i) + { + GUIListItem item = facadeView[i]; + MusicTag tag = (MusicTag)item.MusicTag; + if (tag != null) + { + //int playCount = tag.TimesPlayed; + string duration = MediaPortal.Util.Utils.SecondsToHMSString(tag.Duration); + item.Label = string.Format("{0} - {1}", tag.Artist, tag.Title); + item.Label2 = duration; + } + } + } + + protected bool GetKeyboard(ref string strLine) + { + VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)Window.WINDOW_VIRTUAL_KEYBOARD); + if (null == keyboard) return false; + keyboard.Reset(); + keyboard.Text = strLine; + keyboard.DoModal(GetID); + if (keyboard.IsConfirmed) + { + strLine = keyboard.Text; + return true; + } + return false; + } + + } +} \ No newline at end of file Added: trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.cs =================================================================== --- trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.cs (rev 0) +++ trunk/plugins/MyMusicVideos/MyMusicVideos/GUIMusicVideoSetupFavoritesForm.cs 2008-07-17 19:34:36 UTC (rev 1928) @@ -0,0 +1,65 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace MediaPortal.GUI.MusicVideos +{ + public partial class SetupFavoriteForm : MediaPortal.UserInterface.Controls.MPConfigForm + { + + //private int miFavoriteId; + + public SetupFavoriteForm() + { + InitializeComponent(); + //msFavoriteName = ""; + } + + private void SetupFavoriteForm_Load(object sender, EventArgs e) + ... [truncated message content] |
From: <che...@us...> - 2008-07-17 23:06:57
|
Revision: 1929 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1929&view=rev Author: chef_koch Date: 2008-07-17 23:06:48 +0000 (Thu, 17 Jul 2008) Log Message: ----------- moved MyTrailers plugin from MediaPortal svn Added Paths: ----------- trunk/plugins/MyTrailers/ trunk/plugins/MyTrailers/MyTrailers/ trunk/plugins/MyTrailers/MyTrailers/GUITrailers.cs trunk/plugins/MyTrailers/MyTrailers/GUITrailersPlugin.cs trunk/plugins/MyTrailers/MyTrailers/GUITrailersSetupForm.cs trunk/plugins/MyTrailers/MyTrailers/GUITrailersSetupForm.resx trunk/plugins/MyTrailers/MyTrailers/GermanTrailers.cs trunk/plugins/MyTrailers/MyTrailers/MyTrailers.csproj trunk/plugins/MyTrailers/MyTrailers/Properties/ trunk/plugins/MyTrailers/MyTrailers/Properties/AssemblyInfo.cs trunk/plugins/MyTrailers/MyTrailers/TSRVodTrailers.cs trunk/plugins/MyTrailers/MyTrailers/TrailersUtility.cs trunk/plugins/MyTrailers/MyTrailers/YahooTrailers.cs trunk/plugins/MyTrailers/MyTrailers.xmp trunk/plugins/MyTrailers/release/ trunk/plugins/MyTrailers/release/skin/ trunk/plugins/MyTrailers/release/skin/BlueTwo/ trunk/plugins/MyTrailers/release/skin/BlueTwo/mytrailers.xml trunk/plugins/MyTrailers/release/skin/BlueTwo wide/ trunk/plugins/MyTrailers/release/skin/BlueTwo wide/mytrailers.xml Added: trunk/plugins/MyTrailers/MyTrailers/GUITrailers.cs =================================================================== --- trunk/plugins/MyTrailers/MyTrailers/GUITrailers.cs (rev 0) +++ trunk/plugins/MyTrailers/MyTrailers/GUITrailers.cs 2008-07-17 23:06:48 UTC (rev 1929) @@ -0,0 +1,1252 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Drawing; +using System.IO; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Net; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using MediaPortal.Util; +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.Player; +using MediaPortal.Playlists; +using MediaPortal.TagReader; +using MediaPortal.GUI.Library; + +namespace MediaPortal.GUI.Video +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + public class GUITrailers : GUIWindow + { + #region SkinControlAttributes + [SkinControlAttribute(3)] protected GUISelectButtonControl btnletter = null; + [SkinControlAttribute(4)] protected GUIListControl listview = null; + [SkinControlAttribute(5)] protected GUIToggleButtonControl btntoggleplot = null; + [SkinControlAttribute(6)] protected GUIToggleButtonControl btntogglecast = null; + [SkinControlAttribute(24)] protected GUIImage poster = null; + [SkinControlAttribute(50)] protected GUILabelControl label0 = null; + [SkinControlAttribute(51)] protected GUIFadeLabel label1 = null; + [SkinControlAttribute(52)] protected GUILabelControl label2 = null; //runtime + [SkinControlAttribute(53)] protected GUILabelControl label3 = null; + [SkinControlAttribute(54)] protected GUILabelControl label4 = null; + [SkinControlAttribute(55)] protected GUILabelControl label5 = null; + [SkinControlAttribute(56)] protected GUILabelControl label6 = null; + [SkinControlAttribute(57)] protected GUITextScrollUpControl castarea = null; + [SkinControlAttribute(58)] protected GUILabelControl label8 = null; + [SkinControlAttribute(59)] protected GUITextScrollUpControl plotarea = null; + //[SkinControlAttribute(60)] protected GUIImageList labelrating =null; + #endregion + #region Variables + + int Prev_SelectedItem = 0; // remember listview selections + int[] SelectedItem = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + public static string TempHTML; // GetWeb string + public static string MMSUrl; + string currentletter = ""; + string backgroundposter = null; + + string[] LMovieUrl = new string[200]; // strings for letterbutton movies + string[] LMovieName = new string[200]; + + DateTime RefreshDaily = DateTime.Now.Date; //for the daily update, if HTPC is on 24h it will refresh strings every day. + + bool mainview = false; + bool letterview = false; + bool plotview = true; + bool castview = false; + + + public static string ptitle; // Used by SetGUIProperties, GetGUIProperties + public static string pgenre; // Before MP start playing a movie fullscreen + public static string pruntime; // it wil save the #tags info in these string + public static string preleasedate; // and will load them back after playing the + public static string pplot; // movie. + public static string pcast; + public static double prating; + + string[] MainListMenu = new String[15]; //Decause the number of menu item is dynamic. + + // Get from mediaportal.xml + public static string bitrate = string.Empty; + bool Show_GT = false; + bool Show_TSR = false; + public static bool useVMR9 = true; + public static string TSRbitrate = string.Empty; + public static string TSRnmbOfResults = string.Empty; + + // BackGroundworker + string _downloadedText = string.Empty; + + #endregion + #region Override functions + + public override int GetID + { + get + { + return 5900; + } + set + { + base.GetID = value; + } + } + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\mytrailers.xml"); + } + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) // For when a button is pressed + { + if (control == btnletter) + OnButtonTwo(); + if (control == listview) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED, GetID, 0, controlId, 0, 0, null); + OnMessage(msg); + int itemIndex = (int)msg.Param1; + if (actionType == Action.ActionType.ACTION_SELECT_ITEM) + { + OnClick(itemIndex); + } + } + if (control == btntoggleplot) + ToggleButtonPlot(); + if (control == btntogglecast) + ToggleButtonCast(); + base.OnClicked(controlId, control, actionType); + } + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_STOP) + SetGUIProperties(); + if (action.wID == Action.ActionType.ACTION_PREVIOUS_MENU && mainview != true) + { + if (TrailersUtility._workerCompleted == false) + { + TrailersUtility._workerCompleted = true; + TrailersUtility.interupted = true; + ShowLabelsFalse(); + } + OnClick(0); + return; + } + + base.OnAction(action); + } + + protected override void OnPageDestroy(int newWindowId) + { + if (GermanTrailers.G_viewInfoAndTrailer == true || YahooTrailers.tview == true || YahooTrailers.cview == true || YahooTrailers.mview == true) + { + Prev_SelectedItem = listview.SelectedListItemIndex; + } + //GetGUIProperties(); + base.OnPageDestroy(newWindowId); + } + + protected override void OnPageLoad() + { + base.OnPageLoad(); + btnletter.RestoreSelection = false; + btnletter.AddSubItem("#"); + for (char k = 'A' ; k <= 'Z' ; k++) + { + btnletter.AddSubItem(k.ToString()); + } + LoadSettings(); + if (GermanTrailers.G_viewInfoAndTrailer == true || YahooTrailers.tview == true || YahooTrailers.cview == true || YahooTrailers.mview == true) + { + + listview.SelectedListItemIndex = Prev_SelectedItem; + listview.Focus = true; + } + else + { + ShowLabelsFalse(); + GUIPropertyManager.SetProperty("#title", ""); + if (backgroundposter == null) + backgroundposter = poster.FileName; + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + ShowMainListView(); + listview.Focus = true; + } + } + protected override void OnPreviousWindow() + { + base.OnPreviousWindow(); + } + + //public override bool OnMessage(GUIMessage message) + //{ + // if(message.Message == GUIMessage.MessageType.GUI_MSG_WINDOWS_MEDIA_PLAYER_BUFFERING) + + // return base.OnMessage(message); + //} + + #endregion + #region Button/Click functions + private void OnButtonTwo() + { + if (RefreshDaily.Equals(DateTime.Now.Date) == false) // daily update + Array.Clear(YahooTrailers.MovieName, 0, 2000); + if (YahooTrailers.MovieName[0] == null) + YahooTrailers.GetTrailers(); + mainview = false; + letterview = true; + YahooTrailers.allview = false; + YahooTrailers.tcmview = false; + YahooTrailers.RSSView = false; + YahooTrailers.tview = false; + YahooTrailers.cview = false; + YahooTrailers.mview = false; + ShowLetterListView(YahooTrailers.MovieName, YahooTrailers.MovieURL); + } + private void ToggleButtonPlot() + { + btntoggleplot.Selected = true; + btntogglecast.Selected = false; + plotarea.Visible = true; + castarea.Visible = false; + label8.Visible = true; + label6.Visible = false; + } + private void ToggleButtonCast() + { + if (GermanTrailers.G_viewInfoAndTrailer == true) + GUIPropertyManager.SetProperty("cast", GermanTrailers.G_Cast[GermanTrailers.GermanSelected]); + else YahooTrailers.GetCastInfo(YahooTrailers.casturl); + btntoggleplot.Selected = false; + btntogglecast.Selected = true; + plotarea.Visible = false; + castarea.Visible = true; + label8.Visible = false; + label6.Visible = true; + } + private string GetSelectedListViewItemText() + { + string strLabel1 = "", strLabel2 = "", strThumb = ""; + listview.GetSelectedItem(ref strLabel1, ref strLabel2, ref strThumb); + if (strLabel1 != "") + { + if (strLabel1[0] == '[') + strLabel1 = strLabel1.Remove(0, 1); + if (strLabel1[strLabel1.Length - 1] == ']') + strLabel1 = strLabel1.Remove(strLabel1.Length - 1, 1); + } + return strLabel1; + } + private void OnClick(int itemindex) // // When something is pressed in the listview + { + // Trailer, Clips, Movie listview + if (YahooTrailers.tcmview == true) + { + if (itemindex == 0) + { + if (YahooTrailers.allview == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + ShowListView(YahooTrailers.MovieName, 5905); + listview.SelectedListItemIndex = SelectedItem[1]; + } + else if (YahooTrailers.RSSView == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + ShowListView(YahooTrailers.RSSMovieName, YahooTrailers.RSSTitle); + listview.SelectedListItemIndex = SelectedItem[1]; + } + else if (letterview == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + OnButtonTwo(); + listview.SelectedListItemIndex = SelectedItem[1]; + } + } + else if (itemindex == 1) + { + SelectedItem[2] = listview.SelectedListItemIndex; ; + if (YahooTrailers.foundt == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + YahooTrailers.tview = true; + ShowListView(YahooTrailers.Trailers, ptitle, true); + } + else if (YahooTrailers.foundt == false & YahooTrailers.foundc == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + YahooTrailers.cview = true; + ShowListView(YahooTrailers.Clips, ptitle, true); + } + } + else if (itemindex == 2) + { + SelectedItem[2] = listview.SelectedListItemIndex; ; + if (YahooTrailers.foundt == false & YahooTrailers.foundc == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + YahooTrailers.mview = true; + ShowListView(YahooTrailers.More, ptitle, true); + } + else if (YahooTrailers.foundc == true) + { + ShowLabelsFalse(); + YahooTrailers.tcmview = false; + YahooTrailers.cview = true; + ShowListView(YahooTrailers.Clips, ptitle, true); + } + } + else if (itemindex == 3) + { + ShowLabelsFalse(); + SelectedItem[2] = listview.SelectedListItemIndex; + YahooTrailers.tcmview = false; + YahooTrailers.mview = true; + ShowListView(YahooTrailers.More, ptitle, true); + } + } + // Trailerview + else if (YahooTrailers.tview == true) + { + if (itemindex == 0) + { + YahooTrailers.tview = false; + YahooTrailers.tcmview = true; + ShowLabelsTrue(); + SetGUIProperties(); + ShowListView(YahooTrailers.TrailersClipsMore, true); + listview.SelectedListItemIndex = SelectedItem[2]; + } + else + { + Prev_SelectedItem = listview.SelectedListItemIndex; + PlayTrailer(YahooTrailers.TrailersUrl[itemindex - 1], GetSelectedListViewItemText()); + } + } + // Clipsview + else if (YahooTrailers.cview == true) + { + if (itemindex == 0) + { + YahooTrailers.cview = false; + YahooTrailers.tcmview = true; + ShowLabelsTrue(); + SetGUIProperties(); + ShowListView(YahooTrailers.TrailersClipsMore, true); + listview.SelectedListItemIndex = SelectedItem[2]; + } + else + { + Prev_SelectedItem = listview.SelectedListItemIndex; + PlayTrailer(YahooTrailers.ClipsUrl[itemindex - 1], GetSelectedListViewItemText()); + } + + } + // Moreview + else if (YahooTrailers.mview == true) + { + if (itemindex == 0) + { + YahooTrailers.mview = false; + YahooTrailers.tcmview = true; + ShowLabelsTrue(); + SetGUIProperties(); + ShowListView(YahooTrailers.TrailersClipsMore, true); + listview.SelectedListItemIndex = SelectedItem[2]; + } + else + { + Prev_SelectedItem = listview.SelectedListItemIndex; + PlayTrailer(YahooTrailers.MoreUrl[itemindex - 1], GetSelectedListViewItemText()); + } + } + // RSSView + else if (YahooTrailers.RSSView == true) + { + if (itemindex == 0) + { + YahooTrailers.RSSView = false; + mainview = true; + ShowMainListView(); + listview.SelectedListItemIndex = SelectedItem[0]; + } + else + { + SelectedItem[1] = listview.SelectedListItemIndex; + YahooTrailers.GetMovieInfo(YahooTrailers.RSSMovieUrl[itemindex - 1], YahooTrailers.RSSMovieName[itemindex - 1]); + if (TrailersUtility.interupted == true) + { + TrailersUtility.interupted = false; + return; + } + ShowListView(YahooTrailers.TrailersClipsMore, false); + YahooTrailers.GetMovieDetails(YahooTrailers.RSSMovieUrl[itemindex - 1], YahooTrailers.RSSMovieName[itemindex - 1]); + if (TrailersUtility.interupted == true) + { + TrailersUtility.interupted = false; + return; + } + ShowMovieInfo(YahooTrailers.RSSMovieName[itemindex - 1], YahooTrailers.PosterUrl); + YahooTrailers.RSSTitle = GUIPropertyManager.GetProperty("#title"); + YahooTrailers.tcmview = true; + GetGUIProperties(); + } + } + // Letterbutton view + else if (letterview == true) + { + if (itemindex == 0) + { + letterview = false; + mainview = true; + ShowMainListView(); + listview.SelectedListItemIndex = SelectedItem[0]; + } + else + { + SelectedItem[1] = listview.SelectedListItemIndex; + YahooTrailers.tcmview = true; + YahooTrailers.GetMovieInfo(LMovieUrl[itemindex - 1], LMovieName[itemindex - 1]); + ShowListView(YahooTrailers.TrailersClipsMore, false); + YahooTrailers.GetMovieDetails(LMovieUrl[itemindex - 1], LMovieName[itemindex - 1]); + ShowMovieInfo(LMovieName[itemindex - 1], YahooTrailers.PosterUrl); + } + } + // All movies view + else if (YahooTrailers.allview == true) + { + if (itemindex == 0) + { + YahooTrailers.allview = false; + mainview = true; + ShowMainListView(); + listview.SelectedListItemIndex = SelectedItem[0]; + } + else + { + SelectedItem[1] = listview.SelectedListItemIndex; + YahooTrailers.tcmview = true; + YahooTrailers.GetMovieInfo(YahooTrailers.MovieURL[itemindex - 1], YahooTrailers.MovieName[itemindex - 1]); + ShowListView(YahooTrailers.TrailersClipsMore, false); + YahooTrailers.GetMovieDetails(YahooTrailers.MovieURL[itemindex - 1], YahooTrailers.MovieName[itemindex - 1]); + ShowMovieInfo(YahooTrailers.MovieName[itemindex - 1], YahooTrailers.PosterUrl); + } + } + // Main selection view + else if (mainview == true) + { + if (itemindex == 0) // just added movies + { + mainview = false; + YahooTrailers.RSSView = true; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/newtrailers.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5903); + } + if (itemindex == 1) // mostwatched movies + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/top25trailers.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5904); + } + if (itemindex == 2) // weekend box office + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/boxoffice.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5919); + } + if (itemindex == 3) // opening this week + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/thisweek.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5920); + } + if (itemindex == 4) // coming soon + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/upcoming.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5921); + } + if (itemindex == 5) // top selling dvds + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.movies.yahoo.com/dvd/topsellers.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5922); + } + if (itemindex == 6) // new this week on DVD + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.movies.yahoo.com/dvd/newthisweek.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5923); + } + if (itemindex == 7) // new next week on DVD + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.movies.yahoo.com/dvd/newnextweek.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5924); + } + if (itemindex == 8) // pre-order dvds + { + mainview = false; + YahooTrailers.RSSView = true; + SelectedItem[0] = listview.SelectedListItemIndex; + YahooTrailers.GetYahooTrailersRSS(@"http://rss.ent.yahoo.com/movies/dvd/preorders.xml"); + ShowListView(YahooTrailers.RSSMovieName, 5925); + } + if (itemindex == 9) // all movies + { + mainview = false; + YahooTrailers.allview = true; + SelectedItem[0] = listview.SelectedListItemIndex; + if (RefreshDaily.Equals(DateTime.Now.Date) == false) + Array.Clear(YahooTrailers.MovieName, 0, 2000); + if (YahooTrailers.MovieName[0] == null) + { YahooTrailers.GetTrailers(); } + ShowListView(YahooTrailers.MovieName, 5905); + } + if (itemindex >= 9) + { + if (MainListMenu[itemindex] == "GERMAN")// german trailers + { + mainview = false; + GermanTrailers.G_viewWoche = true; + SelectedItem[0] = listview.SelectedListItemIndex; + ShowListView(GermanTrailers.Woche, 5911, 5915); + } + if (MainListMenu[itemindex] == "TSRVOD") // TSR VOD + { + mainview = false; + btnletter.Visible = false; + TSRVodTrailers.menuview = true; + SelectedItem[0] = listview.SelectedListItemIndex; + if (TSRVodTrailers.MenuName[0] == null) + { TSRVodTrailers.GetMenu(); } + ShowListView(TSRVodTrailers.MenuName, 5918); + } + } + } + else if (TSRVodTrailers.menuview == true) + { + if (itemindex == 0) + { + TSRVodTrailers.menuview = false; + mainview = true; + btnletter.Visible = true; + //poster.Visible = true; + ShowMainListView(); + listview.SelectedListItemIndex = SelectedItem[0]; + } + else + { + TSRVodTrailers.menuview = false; + TSRVodTrailers.submenuview = true; + TSRVodTrailers.GetSubMenu(TSRVodTrailers.MenuURL[itemindex - 1], TSRbitrate, TSRnmbOfResults); + listview.SelectedListItemIndex = itemindex; + ShowListView(TSRVodTrailers.SubMenuName, TSRVodTrailers.MenuName[itemindex - 1], false); + } + } + else if (TSRVodTrailers.submenuview == true) + { + if (itemindex == 0) + { + TSRVodTrailers.submenuview = false; + TSRVodTrailers.menuview = true; + ShowListView(TSRVodTrailers.MenuName, 5918); + listview.SelectedListItemIndex = SelectedItem[0]; + } + else + { + //Play VOD + g_Player.ShowFullScreenWindow(); + g_Player.FullScreen = true; + g_Player.Play(TSRVodTrailers.SubMenuURL[itemindex - 1]); + } + } + // German Trailerview Woche + else if (GermanTrailers.G_viewWoche == true) + { + if (itemindex == 0) + { + GermanTrailers.G_viewWoche = false; + mainview = true; + ShowMainListView(); + listview.SelectedListItemIndex = SelectedItem[0]; + } + if (itemindex == 1) + { + GermanTrailers.G_viewWoche = false; + GermanTrailers.G_viewMovie = true; + SelectedItem[1] = listview.SelectedListItemIndex; + GermanTrailers.GetGermanTrailers("http://de.movies.yahoo.com/mvsl.html"); + ShowListView(GermanTrailers.GermanMovieName, 5911, 5915); + } + if (itemindex == 2) + { + GermanTrailers.G_viewWoche = false; + GermanTrailers.G_viewMovie = true; + SelectedItem[1] = listview.SelectedListItemIndex; + GermanTrailers.GetGermanTrailers("http://de.movies.yahoo.com/neu_im_kino.html"); + ShowListView(GermanTrailers.GermanMovieName, 5911, 5915); + } + if (itemindex == 3) + { + GermanTrailers.G_viewWoche = false; + GermanTrailers.G_viewMovie = true; + SelectedItem[1] = listview.SelectedListItemIndex; + GermanTrailers.GetGermanTrailers("http://de.movies.yahoo.com/mvsn.html"); + ShowListView(GermanTrailers.GermanMovieName, 5911, 5915); + } + + } + // German TrailerMovies view + else if (GermanTrailers.G_viewMovie == true) + { + if (itemindex == 0) + { + GermanTrailers.G_viewWoche = true; + GermanTrailers.G_viewMovie = false; + ShowListView(GermanTrailers.Woche, 5911, 5915); + listview.SelectedListItemIndex = SelectedItem[1]; + } + else + { + SelectedItem[2] = listview.SelectedListItemIndex; + GermanTrailers.G_viewMovie = false; + GermanTrailers.G_viewInfoAndTrailer = true; + GermanTrailers.GermanSelected = itemindex - 1; + Prev_SelectedItem = itemindex + 1; + GermanTrailers.SetProperties(GermanTrailers.GermanMovieName[itemindex - 1], itemindex - 1); + ShowMovieInfo(GermanTrailers.GermanMovieName[itemindex - 1], GermanTrailers.G_PosterUrl[itemindex - 1]); + ShowListViewAndInfo(GermanTrailers.GermanMovieName[itemindex - 1], GermanTrailers.GermanTrailerURL[itemindex - 1]); + label2.Visible = false; //runtime info not available + } + } + // German movie info and single trailer view + else if (GermanTrailers.G_viewInfoAndTrailer == true) + { + if (itemindex == 0) + { + ShowLabelsFalse(); + GermanTrailers.G_viewMovie = true; + GermanTrailers.G_viewInfoAndTrailer = false; + ShowListView(GermanTrailers.GermanMovieName, false); + listview.SelectedListItemIndex = SelectedItem[2]; + } + if (itemindex == 1) + { + if (GermanTrailers.GermanTrailerURL[GermanTrailers.GermanSelected] != null) + Prev_SelectedItem = listview.SelectedListItemIndex; + GermanTrailers.PlayGermanTrailer(GermanTrailers.GermanTrailerURL[GermanTrailers.GermanSelected]); + ShowListViewAndInfo(GermanTrailers.GermanMovieName[GermanTrailers.GermanSelected], GermanTrailers.GermanTrailerURL[GermanTrailers.GermanSelected]); + label2.Visible = false; //runtime info not available + } + } + } + #endregion + void ShowMainListView() + { + mainview = true; + YahooTrailers.allview = false; + YahooTrailers.RSSView = false; + letterview = false; + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", GUILocalizeStrings.Get(5902)); //Show which movies? + + string[] MainListOptions = new string[15]; + MainListOptions[0] = GUILocalizeStrings.Get(5903); + MainListMenu[0] = MainListOptions[0]; + MainListOptions[1] = GUILocalizeStrings.Get(5904); + MainListMenu[1] = MainListOptions[1]; + MainListOptions[2] = GUILocalizeStrings.Get(5919); + MainListMenu[2] = MainListOptions[2]; + MainListOptions[3] = GUILocalizeStrings.Get(5920); + MainListMenu[3] = MainListOptions[3]; + MainListOptions[4] = GUILocalizeStrings.Get(5921); + MainListMenu[4] = MainListOptions[4]; + MainListOptions[5] = GUILocalizeStrings.Get(5922); + MainListMenu[5] = MainListOptions[5]; + MainListOptions[6] = GUILocalizeStrings.Get(5923); + MainListMenu[6] = MainListOptions[6]; + MainListOptions[7] = GUILocalizeStrings.Get(5924); + MainListMenu[7] = MainListOptions[7]; + MainListOptions[8] = GUILocalizeStrings.Get(5925); + MainListMenu[8] = MainListOptions[8]; + MainListOptions[9] = GUILocalizeStrings.Get(5905); + MainListMenu[9] = MainListOptions[9]; + + //string language = ""; + //using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings("MediaPortal.xml")) + //{ + // language = xmlreader.GetValue("skin", "language"); + //} + int iNextItem = 10; + //if (language.Equals("German") == true || Show_GT == true) + //{ + // MainListOptions[iNextItem] = GUILocalizeStrings.Get(5917); + // MainListMenu[iNextItem] = "GERMAN"; + // iNextItem++; + //} + if (Show_TSR == true) + { + MainListOptions[iNextItem] = GUILocalizeStrings.Get(5918); + MainListMenu[iNextItem] = "TSRVOD"; + iNextItem++; + } + + listview.Clear(); + int i = 0; + while (MainListOptions[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = MainListOptions[i]; + listview.Add(item); + i++; + } + } + + public static void GetMMSURL(string url) + { + TempHTML = ""; + TrailersUtility TU = new TrailersUtility(); + TU.GetWebPage(url, out TempHTML); + + if (TempHTML == null || TempHTML == string.Empty) + return; + + Match m = Regex.Match(TempHTML, @"<Ref\shref\s=\s.(?<mmsurl>mms.*).\s/>"); + MMSUrl = m.Groups["mmsurl"].Value; + if (YahooTrailers.server.Equals(string.Empty) == false) + { + int B = MMSUrl.IndexOf("/") + 2; + int E = MMSUrl.IndexOf("/", B); + int T = E - B; + MMSUrl.Replace(MMSUrl.Substring(B, T), YahooTrailers.server); + } + if (MMSUrl.Equals("") == true) + { + GUIDialogOK dlg = new GUIDialogOK(); + dlg.SetHeading(1025); + dlg.SetLine(1, 5909); + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + } + + public static void PlayTrailer(string url, string videoName) + { + GetGUIProperties(); + MMSUrl = string.Empty; + GetMMSURL(url); + Log.Debug("Url: {0}, mmsurl: {1}, videoname: {2}", url, MMSUrl, videoName); + bool playOk = false; + if (useVMR9) + playOk = g_Player.PlayVideoStream(MMSUrl, videoName); + else + playOk = g_Player.PlayAudioStream(MMSUrl, true); + if (playOk) + { + g_Player.ShowFullScreenWindow(); + g_Player.FullScreen = true; + } + else + { + Log.Info("GUITrailers: Unable to play {0}", MMSUrl); + GUIDialogNotify dlg = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + dlg.SetHeading("ERROR"); + dlg.SetText("Unable to play the selected video trailer. Please try again later."); + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + } + + void ShowLabelsFalse() + { + label0.Visible = false; + label1.Visible = false; + label2.Visible = false; + label3.Visible = false; + label4.Visible = false; + label5.Visible = false; + label6.Visible = false; + castarea.Visible = false; + label8.Visible = false; + plotarea.Visible = false; + btntoggleplot.Visible = false; + btntogglecast.Visible = false; + //labelrating.Visible=false; + btnletter.NavigateDown = 4; + } + + void ShowLabelsTrue() + { + label0.Visible = true; + label1.Visible = true; + label2.Visible = true; + label3.Visible = true; + label4.Visible = true; + label5.Visible = true; + label6.Visible = true; + label8.Visible = true; + btntoggleplot.Visible = true; + btntogglecast.Visible = true; + //labelrating.Visible=true; + btnletter.NavigateDown = 5; + if (castview == true) + ToggleButtonCast(); + else + ToggleButtonPlot(); + } + + public static void GetGUIProperties() + { + ptitle = GUIPropertyManager.GetProperty("#title"); + pgenre = GUIPropertyManager.GetProperty("#genre"); + pruntime = GUIPropertyManager.GetProperty("#runtime"); + preleasedate = GUIPropertyManager.GetProperty("#year"); + pplot = GUIPropertyManager.GetProperty("#plot"); + pcast = GUIPropertyManager.GetProperty("#cast"); + if (YahooTrailers.tcmview != true) + { + GUIPropertyManager.SetProperty("#title", string.Empty); + GUIPropertyManager.SetProperty("#genre", string.Empty); + GUIPropertyManager.SetProperty("#runtime", string.Empty); + GUIPropertyManager.SetProperty("#year", string.Empty); + GUIPropertyManager.SetProperty("#plot", string.Empty); + GUIPropertyManager.SetProperty("#cast", string.Empty); + } + //float.Parse(prating) = GUIPropertyManager.GetProperty("#rating"); + } + + void SetGUIProperties() + { + GUIPropertyManager.SetProperty("#title", ptitle); + GUIPropertyManager.SetProperty("#genre", pgenre); + GUIPropertyManager.SetProperty("#runtime", pruntime); + GUIPropertyManager.SetProperty("#year", preleasedate); + GUIPropertyManager.SetProperty("#plot", pplot); + GUIPropertyManager.SetProperty("#cast", pcast); + GUIPropertyManager.SetProperty("#rating", prating.ToString()); + } + + void LoadSettings() + { + if (YahooTrailers.tview == true) + { + YahooTrailers.tview = true; + ShowListView(YahooTrailers.Trailers, ptitle, true); + } + if (YahooTrailers.cview == true) + { + YahooTrailers.cview = true; + ShowListView(YahooTrailers.Clips, ptitle, true); + } + if (YahooTrailers.mview == true) + { + YahooTrailers.mview = true; + ShowListView(YahooTrailers.More, ptitle, true); + } + if (GermanTrailers.G_viewInfoAndTrailer == true) + { + ShowMovieInfo(GermanTrailers.GermanMovieName[GermanTrailers.GermanSelected], GermanTrailers.G_PosterUrl[GermanTrailers.GermanSelected]); + GermanTrailers.G_viewMovie = false; + GermanTrailers.G_viewInfoAndTrailer = true; + Prev_SelectedItem = GermanTrailers.GermanSelected; + GermanTrailers.SetProperties(GermanTrailers.GermanMovieName[GermanTrailers.GermanSelected], GermanTrailers.GermanSelected); + label2.Visible = false; //runtime info not available + if (plotview == true) + ToggleButtonPlot(); + if (castview == true) + ToggleButtonCast(); + } + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + bitrate = xmlreader.GetValue("mytrailers", "speed"); + Show_GT = xmlreader.GetValueAsBool("mytrailers", "Show german trailers", false); + Show_TSR = xmlreader.GetValueAsBool("mytrailers", "Show tsr vod", false); + TSRbitrate = xmlreader.GetValue("mytrailers", "TSR speed"); + TSRnmbOfResults = xmlreader.GetValue("mytrailers", "TSR nmbOfResults"); + useVMR9 = xmlreader.GetValueAsBool("general", "usevrm9forwebstreams", true); + if (TSRnmbOfResults != "-1") + TSRnmbOfResults = "&nmbOfResults=" + TSRnmbOfResults; + YahooTrailers.server = xmlreader.GetValue("mytrailers", "YahooServer"); + } + } + + public void ShowListView(string[] _TrailerName, bool show_poster) + { + if (show_poster == false) + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + + listview.Clear(); + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = _TrailerName[i]; + listview.Add(item); + i++; + } + } + + public void ShowListView(string[] _TrailerName, int _titlenumber) + { + if (TrailersUtility.interupted == true) + { + TrailersUtility.interupted = false; + return; + } + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", GUILocalizeStrings.Get(_titlenumber)); + + listview.Clear(); + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = _TrailerName[i]; + listview.Add(item); + i++; + } + } + + public void ShowListView(string[] _TrailerName, string _titlename) + { + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", _titlename); + + listview.Clear(); + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = _TrailerName[i]; + listview.Add(item); + i++; + } + } + + public void ShowListView(string[] _TrailerName, string _titlename, bool show_poster) + { + if (show_poster == false) + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + + GUIPropertyManager.SetProperty("#title", _titlename); + + listview.Clear(); + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + item.Label = _TrailerName[i]; + item.IconImage = "defaultVideo.png"; + listview.Add(item); + i++; + } + } + + public void ShowListView(string[] _TrailerName, string[] _TralerUrl, int _titlenumber) + { + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", GUILocalizeStrings.Get(_titlenumber)); + + listview.Clear(); + if (_TralerUrl[0] == null) + { + GUIListItem item = new GUIListItem(); + item.Label = ".. - " + GUILocalizeStrings.Get(5916); + item.IsFolder = true; + item.IconImage = "defaultFolderBack.png"; + listview.Add(item); + return; + } + else + { + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = _TrailerName[i]; + listview.Add(item); + i++; + } + } + } + + // fe no movie review yet + public void ShowListView(string[] _TrailerName, int _titlenumber, int _folderupnumber) + { + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", GUILocalizeStrings.Get(_titlenumber)); + + listview.Clear(); + if (_TrailerName[0] == null) + { + GUIListItem item = new GUIListItem(); + item.Label = ".. - " + GUILocalizeStrings.Get(_folderupnumber); + item.IsFolder = true; + item.IconImage = "defaultFolderBack.png"; + listview.Add(item); + return; + } + else + { + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + int i = 0; + while (_TrailerName[i] != null) + { + GUIListItem item = new GUIListItem(); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + item.Label = _TrailerName[i]; + listview.Add(item); + i++; + } + } + } + + public void ShowListViewAndInfo(string _TrailerName, string _TralerUrl) + { + listview.Clear(); + if (_TralerUrl == null) + { + GUIListItem item = new GUIListItem(); + item.Label = ".. - " + GUILocalizeStrings.Get(5916); + item.IsFolder = true; + item.IconImage = "defaultFolderBack.png"; + listview.Add(item); + return; + } + else + { + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + GUIListItem item = new GUIListItem(); + item.Label = _TrailerName; + item.IconImage = "defaultVideo.png"; + listview.Add(item); + } + + } + + public void ShowPoster(string downloadurl, string moviename) + { + if (downloadurl == null | downloadurl == string.Empty) + return; + else + { + TrailersUtility TU = new TrailersUtility(); + TU.DownloadPoster(downloadurl, moviename); + moviename = moviename.Replace(":", "-"); + if (moviename.Contains("opens")) + { + int i = moviename.IndexOf("opens"); + moviename = moviename.Remove(i); + } + + // TODO - add utils function here + string thumbFile = System.IO.Path.Combine(Thumbs.Trailers, moviename + ".jpg"); + if (System.IO.File.Exists(thumbFile)) + poster.SetFileName(thumbFile); + } + } + + public void ShowMovieInfo(string moviename, string posterurl) + { + ShowLabelsTrue(); + ShowPoster(posterurl, moviename); + } + + public void ShowLetterListView(string[] movienames, string[] movieurls) + { + int i = 0; + int j = 0; + string letter; + listview.Clear(); + ShowLabelsFalse(); + Array.Clear(LMovieName, 0, 200); + Array.Clear(LMovieUrl, 0, 200); + + poster.SetFileName(GUIGraphicsContext.Skin + @"\media\" + backgroundposter); + GUIPropertyManager.SetProperty("#title", ""); + letter = btnletter.SelectedLabel; + + GUIListItem item1 = new GUIListItem(); + item1.Label = ".."; + item1.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item1); + listview.Add(item1); + + while (movienames[i] != null) + { + if (movienames[i].StartsWith("The " + letter) == true) + { + LMovieName[j] = movienames[i]; + LMovieUrl[j] = movieurls[i]; + GUIListItem item = new GUIListItem(); + item.Label = LMovieName[j]; + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + listview.Add(item); + j++; + } + else if (movienames[i].StartsWith("The ") == true) { } + else if (movienames[i].StartsWith("A " + letter) == true) + { + LMovieName[j] = movienames[i]; + LMovieUrl[j] = movieurls[i]; + GUIListItem item = new GUIListItem(); + item.Label = LMovieName[j]; + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + listview.Add(item); + j++; + } + else if (movienames[i].StartsWith("A ") == true) { } + else if (movienames[i].StartsWith("An " + letter) == true) + { + LMovieName[j] = movienames[i]; + LMovieUrl[j] = movieurls[i]; + GUIListItem item = new GUIListItem(); + item.Label = LMovieName[j]; + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + listview.Add(item); + j++; + } + else if (movienames[i].StartsWith("An ") == true) { } + else if (movienames[i].StartsWith(letter) == true) + { + LMovieName[j] = movienames[i]; + LMovieUrl[j] = movieurls[i]; + GUIListItem item = new GUIListItem(); + item.Label = LMovieName[j]; + listview.Add(item); + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + j++; + } + else if (letter.Equals("#") == true) + { + for (int n = 0 ; n <= 9 ; n++) + if (movienames[i].StartsWith(n.ToString()) == true) + { + LMovieName[j] = movienames[i]; + LMovieUrl[j] = movieurls[i]; + GUIListItem item = new GUIListItem(); + item.Label = LMovieName[j]; + item.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(item); + listview.Add(item); + j++; + } + } + + i++; + } + if (currentletter == letter) + listview.SelectedListItemIndex = Prev_SelectedItem; + else + { + listview.SelectedListItemIndex = 0; + currentletter = letter; + } + } + + } +} \ No newline at end of file Added: trunk/plugins/MyTrailers/MyTrailers/GUITrailersPlugin.cs =================================================================== --- trunk/plugins/MyTrailers/MyTrailers/GUITrailersPlugin.cs (rev 0) +++ trunk/plugins/MyTrailers/MyTrailers/GUITrailersPlugin.cs 2008-07-17 23:06:48 UTC (rev 1929) @@ -0,0 +1,127 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Drawing; +using System.IO; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Net; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using MediaPortal.Util; +using MediaPortal.Dialogs; +using MediaPortal.Player; +using MediaPortal.Playlists; +using MediaPortal.TagReader; +using MediaPortal.GUI.Library; + +namespace MediaPortal.GUI.Video +{ + public class GUITrailersPlugin : ISetupForm, IShowPlugin + { + // Returns the name of the plugin which is shown in the plugin menu + public string PluginName() + { + return "My Trailers"; + } + + // Returns the description of the plugin is shown in the plugin menu + public string Description() + { + return "Browse trailers and movie clips on Yahoo Movies and TSOD"; + } + + // Returns the author of the plugin which is shown in the plugin menu + public string Author() + { + return "Zipperzip/sur_uix"; + } + + // show the setup dialog + public void ShowPlugin() + { + GUITrailersSetupForm setup = new GUITrailersSetupForm(); + setup.ShowDialog(); + } + + // Indicates whether plugin can be enabled/disabled + public bool CanEnable() + { + return true; + } + + // get ID of windowplugin belonging to this setup + public int GetWindowId() + { + return 5900; + } + + // Indicates if plugin is enabled by default; + public bool DefaultEnabled() + { + return false; + } + // indicates if a plugin has its own setup screen + public bool HasSetup() + { + return true; + } + + /// <summary> + /// If the plugin should have its own button on the main menu of Mediaportal then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs its own button on home + /// false : plugin does not need its own button on home</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = GUILocalizeStrings.Get(5900); + strButtonImage = string.Empty; + strButtonImageFocus = string.Empty; + strPictureImage = "hover_my trailers.png"; + return true; + } + + #region IShowPlugin Members + + public bool ShowDefaultHome() + { + return false; + } + + #endregion + + } +} + + Added: trunk/plugins/MyTrailers/MyTrailers/GUITrailersSetupForm.cs =================================================================== --- trunk/plugins/MyTrailers/MyTrailers/GUITrailersSetupForm.cs (rev 0) +++ trunk/plugins/MyTrailers/MyTrailers/GUITrailersSetupForm.cs 2008-07-17 23:06:48 UTC (rev 1929) @@ -0,0 +1,452 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using MediaPortal.Util; +using MediaPortal.Configuration; + +namespace MediaPortal.GUI.Video +{ + /// <summary> + /// Summary description for GUITrailersSetupForm. + /// </summary> + public class GUITrailersSetupForm : MediaPortal.UserInterface.Controls.MPConfigForm + { + private MediaPortal.UserInterface.Controls.MPCheckBox checkBox300; + private MediaPortal.UserInterface.Controls.MPButton btnOK; + private MediaPortal.UserInterface.Controls.MPCheckBox GermanTrailerCheckBox; + private CheckedListBox YahooServerListBox; + private MediaPortal.UserInterface.Controls.MPLabel label1; + private MediaPortal.UserInterface.Controls.MPCheckBox TsrVodCheckBox; + private MediaPortal.UserInterface.Controls.MPGroupBox TsrVodBitrateStreamGrpBox; + private MediaPortal.UserInterface.Controls.MPRadioButton bitrate1500; + private MediaPortal.UserInterface.Controls.MPRadioButton bitrate450; + private MediaPortal.UserInterface.Controls.MPRadioButton bitrate160; + private MediaPortal.UserInterface.Controls.MPRadioButton bitrate80; + private NumericUpDown upDowNmbOfResults; + private MediaPortal.UserInterface.Controls.MPGroupBox TsrVodnbrOfResultGrpBox; + private MediaPortal.UserInterface.Controls.MPRadioButton radioButton2; + private MediaPortal.UserInterface.Controls.MPRadioButton rbnmbOfResultsDef; + private MediaPortal.UserInterface.Controls.MPButton btnCancel; + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.Container components = null; + + public GUITrailersSetupForm() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + LoadSettings(); + } + + /// <summary> + /// Clean up any resources being used. + /// </summary> + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.checkBox300 = new MediaPortal.UserInterface.Controls.MPCheckBox(); + this.btnOK = new MediaPortal.UserInterface.Controls.MPButton(); + this.GermanTrailerCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox(); + this.YahooServerListBox = new System.Windows.Forms.CheckedListBox(); + this.label1 = new MediaPortal.UserInterface.Controls.MPLabel(); + this.TsrVodCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox(); + this.TsrVodBitrateStreamGrpBox = new MediaPortal.UserInterface.Controls.MPGroupBox(); + this.bitrate1500 = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.bitrate450 = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.bitrate160 = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.bitrate80 = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.upDowNmbOfResults = new System.Windows.Forms.NumericUpDown(); + this.TsrVodnbrOfResultGrpBox = new MediaPortal.UserInterface.Controls.MPGroupBox(); + this.radioButton2 = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.rbnmbOfResultsDef = new MediaPortal.UserInterface.Controls.MPRadioButton(); + this.btnCancel = new MediaPortal.UserInterface.Controls.MPButton(); + this.TsrVodBitrateStreamGrpBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.upDowNmbOfResults)).BeginInit(); + this.TsrVodnbrOfResultGrpBox.SuspendLayout(); + this.SuspendLayout(); + // + // checkBox300 + // + this.checkBox300.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.checkBox300.AutoSize = true; + this.checkBox300.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBox300.Location = new System.Drawing.Point(48, 12); + this.checkBox300.Name = "checkBox300"; + this.checkBox300.Size = new System.Drawing.Size(300, 17); + this.checkBox300.TabIndex = 1; + this.checkBox300.Text = "Always start streaming movies with 300kb/s, skip 700kb/s."; + this.checkBox300.UseVisualStyleBackColor = true; + this.checkBox300.CheckedChanged += new System.EventHandler(this.checkBox300_CheckedChanged); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.Location = new System.Drawing.Point(280, 257); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 2; + this.btnOK.Text = "&OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // GermanTrailerCheckBox + // + this.GermanTrailerCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.GermanTrailerCheckBox.AutoSize = true; + this.GermanTrailerCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.GermanTrailerCheckBox.Location = new System.Drawing.Point(48, 33); + this.GermanTrailerCheckBox.Name = "GermanTrailerCheckBox"; + this.GermanTrailerCheckBox.Size = new System.Drawing.Size(122, 17); + this.GermanTrailerCheckBox.TabIndex = 3; + this.GermanTrailerCheckBox.Text = "Show german trailers"; + this.GermanTrailerCheckBox.UseVisualStyleBackColor = true; + this.GermanTrailerCheckBox.Visible = false; + // + // YahooServerListBox + // + this.YahooServerListBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.YahooServerListBox.CheckOnClick = true; + this.YahooServerListBox.Items.AddRange(new object[] { + "wmcontent74.bcst.yahoo.com", + "wmcontent78.bcst.yahoo.com"}); + this.YahooServerListBox.Location = new System.Drawing.Point(48, 78); + this.YahooServerListBox.Name = "YahooServerListBox"; + this.YahooServerListBox.SelectionMode = System.Windows.Forms.SelectionMode.None; + this.YahooServerListBox.Size = new System.Drawing.Size(174, 49); + this.YahooServerListBox.TabIndex = 4; + this.YahooServerListBox.Visible = false; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(45, 62); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(80, 13); + this.label1.TabIndex = 5; + this.label1.Text = "Yahoo Servers:"; + this.label1.Visible = false; + // + // TsrVodCheckBox + // + this.TsrVodCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TsrVodCheckBox.AutoSize = true; + this.TsrVodCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.TsrVodCheckBox.Location = new System.Drawing.Point(48, 133); + this.TsrVodCheckBox.Name = "TsrVodCheckBox"; + this.TsrVodCheckBox.Size = new System.Drawing.Size(196, 17); + this.TsrVodCheckBox.TabIndex = 6; + this.TsrVodCheckBox.Text = "Show TSR Video on Demand (VOD)"; + this.TsrVodCheckBox.UseVisualStyleBackColor = true; + this.TsrVodCheckBox.CheckedChanged += new System.EventHandler(this.TsrVodCheckBox_CheckedChanged); + // + // TsrVodBitrateStreamGr... [truncated message content] |
From: <che...@us...> - 2008-07-18 10:31:38
|
Revision: 1933 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1933&view=rev Author: chef_koch Date: 2008-07-18 10:31:26 +0000 (Fri, 18 Jul 2008) Log Message: ----------- moved msn plugin from mp svn Added Paths: ----------- trunk/plugins/MSNplugin/ trunk/plugins/MSNplugin/GUIMSNPlugin/ trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNChatWindow.cs trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNPlugin.cs trunk/plugins/MSNplugin/GUIMSNPlugin/GUITVMSNOSD.cs trunk/plugins/MSNplugin/GUIMSNPlugin/GUIVideoMSNOSD.cs trunk/plugins/MSNplugin/GUIMSNPlugin/MessengerSetup.cs trunk/plugins/MSNplugin/GUIMSNPlugin/MessengerSetup.resx trunk/plugins/MSNplugin/release/ trunk/plugins/MSNplugin/release/skin/ trunk/plugins/MSNplugin/release/skin/BlueTwo/ trunk/plugins/MSNplugin/release/skin/BlueTwo/msnosd.xml trunk/plugins/MSNplugin/release/skin/BlueTwo/my messenger chat.xml trunk/plugins/MSNplugin/release/skin/BlueTwo/my messenger.xml trunk/plugins/MSNplugin/release/skin/BlueTwo/tvmsnosd.xml trunk/plugins/MSNplugin/release/skin/BlueTwo wide/ trunk/plugins/MSNplugin/release/skin/BlueTwo wide/msnosd.xml trunk/plugins/MSNplugin/release/skin/BlueTwo wide/my messenger chat.xml trunk/plugins/MSNplugin/release/skin/BlueTwo wide/my messenger.xml trunk/plugins/MSNplugin/release/skin/BlueTwo wide/tvmsnosd.xml Added: trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNChatWindow.cs =================================================================== --- trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNChatWindow.cs (rev 0) +++ trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNChatWindow.cs 2008-07-18 10:31:26 UTC (rev 1933) @@ -0,0 +1,219 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.IO; +using XihSolutions.DotMSN; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Dialogs; + +namespace MediaPortal.GUI.MSN +{ + /// <summary> + /// + /// </summary> + public class GUIMSNChatWindow: GUIWindow + { + enum Controls:int + { + Status=2, + List=50, + Input=51 + } + + static int _messageIndex=0; + static string[] _messageList; + + public GUIMSNChatWindow() + { + GetID = (int)GUIWindow.Window.WINDOW_MSN_CHAT; + } + + public override bool Init() + { + _messageList = new string[30]; + + return Load(GUIGraphicsContext.Skin + @"\my messenger chat.xml"); + } + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_PREVIOUS_MENU) + { + GUIMessage msg= new GUIMessage (GUIMessage.MessageType.GUI_MSG_MSN_CLOSECONVERSATION, (int)GUIWindow.Window.WINDOW_MSN, GetID, 0,0,0,null ); + msg.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg); + + // GUIMSNPlugin.CloseConversation(); + + GUIWindowManager.ShowPreviousWindow(); + return; + } + + if (action.wID == Action.ActionType.ACTION_KEY_PRESSED) + { + // Check focus on sms input control + if (GetFocusControlId() != (int)Controls.Input) + { + // set focus to the default control then + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, GetID, 0, (int)Controls.Input, 0, 0, null); + OnMessage(msg); + } + } + else + { + // translate all other actions from regular keypresses back to keypresses + if (action.m_key != null && action.m_key.KeyChar >= 32) + { + action.wID = Action.ActionType.ACTION_KEY_PRESSED; + } + } + + base.OnAction(action); + } + + + public override bool OnMessage(GUIMessage message) + { + switch (message.Message) + { + case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT : + base.OnMessage(message); + + GUIListControl list= (GUIListControl)GetControl((int)Controls.List); + list.WordWrap=true; + + GUIControl.ClearControl(GetID,(int)Controls.List); + int j=_messageIndex-30; + if (j<0) + j=0; + for (int i=0; i < 30;++i) + { + AddToList(_messageList[j]); + j++; + if (j>_messageList.Length) + j=0; + } + list.ScrollToEnd(); +/* if (g_Player.Playing && !g_Player.Paused) + { + if (g_Player.IsVideo || g_Player.IsDVD) g_Player.Pause(); + } +*/ + + // route keys + GUIWindowManager.RouteToWindow( GetID ); + return true; + + case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT : +/* if (g_Player.Playing && g_Player.Paused) + { + if (g_Player.IsVideo || g_Player.IsDVD) g_Player.Pause(); + } +*/ + GUIWindowManager.UnRoute(); + break; + + case GUIMessage.MessageType.GUI_MSG_CLICKED: + int iControl=message.SenderControlId; + break; + + case GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE: + if ((GUIWindowManager.ActiveWindow != GetID) && !GUIGraphicsContext.IsFullScreenVideo) + { + GUIWindowManager.ActivateWindow(GetID); + } + AddMessageToList(message.Label); + break; + + case GUIMessage.MessageType.GUI_MSG_NEW_LINE_ENTERED: + Conversation conversation=GUIMSNPlugin.CurrentConversation; + if (conversation==null) return true; + conversation.Switchboard.SendTextMessage(new TextMessage(message.Label)); + + string text=String.Format(">{0}", message.Label); + AddToList(text); + + // Store + _messageList[_messageIndex] = text; + _messageIndex++; + if (_messageIndex >= _messageList.Length) + _messageIndex = 0; + break; + } + return base.OnMessage(message); + } + + void Update() + { + Conversation conversation=GUIMSNPlugin.CurrentConversation; + if (conversation==null) return; + +/* if (GUIMSNPlugin.IsTyping) + { + string text=String.Format("{0} {1}", GUIMSNPlugin.ContactName, GUILocalizeStrings.Get(908) ); + GUIControl.SetControlLabel(GetID,(int)Controls.Status,text); + } + else + GUIControl.SetControlLabel(GetID,(int)Controls.Status,""); +*/ + } + + public override void Process() + { + Conversation conversation=GUIMSNPlugin.CurrentConversation; + if (conversation==null) + { + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_MSN); + return; + } + Update(); + } + + private void AddMessageToList(string FormattedText) + { + AddToList(FormattedText); + + // Store + _messageList[_messageIndex] = FormattedText; + _messageIndex++; + if (_messageIndex >= _messageList.Length) + _messageIndex = 0; + } + void AddToList(string text) + { + //TODO: add wordwrapping + GUIListItem item =new GUIListItem(text); + item.IsFolder=false; + GUIControl.AddListItemControl(GetID,(int)Controls.List,item); + GUIListControl list= (GUIListControl)GetControl((int)Controls.List); + if (list!=null) + { + list.ScrollToEnd(); + list.Disabled=true; + } + } + } +} Added: trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNPlugin.cs =================================================================== --- trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNPlugin.cs (rev 0) +++ trunk/plugins/MSNplugin/GUIMSNPlugin/GUIMSNPlugin.cs 2008-07-18 10:31:26 UTC (rev 1933) @@ -0,0 +1,1141 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Net; +using System.Xml.Serialization; +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using MediaPortal.Util; +using MediaPortal.Configuration; +using System.IO; +using XihSolutions.DotMSN; +using XihSolutions.DotMSN.Core; +using XihSolutions.DotMSN.DataTransfer; + +namespace MediaPortal.GUI.MSN +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + public class GUIMSNPlugin : GUIWindow, IComparer<GUIListItem>, ISetupForm, IShowPlugin + { + #region enums + enum Controls + { + CONTROL_BTNVIEWASICONS = 2, + CONTROL_BTNSORTBY = 3, + CONTROL_BTNSORTASC = 4, + CONTROL_BTNSTATUS = 5, + CONTROL_BTN_CONNECT = 6, + CONTROL_BTN_NEXT = 7, + + CONTROL_LIST = 50, + CONTROL_THUMBS = 51, + CONTROL_LABELFILES = 12, + CONTROL_EJECT = 13 + } + + + #endregion + + #region variables + // this object will be the interface to the dotMSN library + private static XihSolutions.DotMSN.Messenger _messenger = null; + private static Conversation _currentconversation = null; + private static PresenceStatus _currentStatus = PresenceStatus.Online; + GUIDialogProgress _dlgProgress; + bool _isDialogVisible = false; + // bool m_bConnected=false; + #endregion + + #region Base variabeles + enum SortMethod + { + SORT_NAME = 0, + SORT_STATUS = 1, + } + + enum View : int + { + VIEW_AS_LIST = 0, + VIEW_AS_ICONS = 1, + VIEW_AS_LARGEICONS = 2, + } + View currentView = View.VIEW_AS_LIST; + SortMethod currentSortMethod = SortMethod.SORT_NAME; + bool m_bSortAscending = true; + bool _refreshContactList = false; + static DateTime dateLastTyped = DateTime.MinValue; + static string contactname = ""; + #endregion + + public GUIMSNPlugin() + { + GetID = (int)GUIWindow.Window.WINDOW_MSN; + } + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\my messenger.xml"); + } + + public override void PreInit() + { + bool autosignin = false; + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + autosignin = xmlreader.GetValueAsInt("MSNmessenger", "autosignin", 0) != 0; + } + if (autosignin) + StartMSN(false); + } + + public static XihSolutions.DotMSN.Messenger Messenger + { + get { return _messenger; } + } + public static Conversation CurrentConversation + { + get + { + try + { + if (_messenger == null) return null; + if (_messenger.Connected == false) return null; + return _currentconversation; + } + catch (Exception) + { + } + return null; + } + } + public static void CloseConversation() + { + if (_currentconversation != null) + { + if (_currentconversation.Switchboard.IsSessionEstablished) + { + _currentconversation.Switchboard.Close(); + } + } + _currentconversation = null; + contactname = string.Empty; + } + public static bool IsTyping + { + get + { + TimeSpan ts = DateTime.Now - dateLastTyped; + if (ts.TotalMilliseconds < 3000) return true; + return false; + } + } + public static string ContactName + { + get { return contactname; } + } + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_PREVIOUS_MENU) + { + GUIWindowManager.ShowPreviousWindow(); + return; + } + + base.OnAction(action); + } + + + public override bool OnMessage(GUIMessage message) + { + switch (message.Message) + { + case GUIMessage.MessageType.GUI_MSG_MSN_CLOSECONVERSATION: + // Close conversation + CloseConversation(); + break; + + case GUIMessage.MessageType.GUI_MSG_NEW_LINE_ENTERED: + if (GUIMSNPlugin.Messenger != null) + { + GUIMessage msg2 = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE, (int)GUIWindow.Window.WINDOW_MSN_CHAT, GetID, 0, 0, 0, null); + msg2.Label = message.Label; + msg2.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg2); + + if (GUIWindowManager.ActiveWindow != (int)GUIWindow.Window.WINDOW_MSN_CHAT) + { + GUIMessage msg3 = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE, GUIWindowManager.ActiveWindow, GetID, 0, 0, 0, null); + msg3.Label = message.Label; + msg3.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg3); + } + } + break; + + case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: + _isDialogVisible = false; + _dlgProgress = (GUIDialogProgress)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_PROGRESS); + + base.OnMessage(message); + if (_messenger == null) + { + try + { + _messenger = new Messenger(); + } + catch (Exception) + { + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_HOME); + return true; + } + } + + ShowThumbPanel(); + UpdateButtons(); + UpdateStatusButton(); + UpdateSortButton(); + Update(); + _refreshContactList = true; + return true; + + case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + break; + + case GUIMessage.MessageType.GUI_MSG_CLICKED: + int iControl = message.SenderControlId; + if (iControl == (int)Controls.CONTROL_BTN_CONNECT) + { + if (_messenger != null && _messenger.Connected) + { + StopMSN(); + } + else + { + if (_dlgProgress != null) + { + _dlgProgress.Reset(); + _dlgProgress.SetHeading(901);//MSN Messenger + _dlgProgress.SetLine(1, GUILocalizeStrings.Get(910));//Signing in... + _dlgProgress.SetLine(2, ""); + _dlgProgress.SetLine(3, ""); + _dlgProgress.StartModal(GetID); + _dlgProgress.Progress(); + } + _isDialogVisible = true; + + StartMSN(true); + + } + + ShowThumbPanel(); + UpdateButtons(); + Update(); + } + if (iControl == (int)Controls.CONTROL_BTNVIEWASICONS) + { + switch (currentView) + { + case View.VIEW_AS_LIST: + currentView = View.VIEW_AS_ICONS; + break; + case View.VIEW_AS_ICONS: + currentView = View.VIEW_AS_LARGEICONS; + break; + case View.VIEW_AS_LARGEICONS: + currentView = View.VIEW_AS_LIST; + break; + default: + currentView = View.VIEW_AS_LIST; + break; + } + UpdateButtons(); + ShowThumbPanel(); + GUIControl.FocusControl(GetID, iControl); + } + + if (iControl == (int)Controls.CONTROL_BTNSORTASC) + { + m_bSortAscending = !m_bSortAscending; + OnSort(); + FillContactList(); + UpdateButtons(); + GUIControl.FocusControl(GetID, iControl); + } + + if (iControl == (int)Controls.CONTROL_BTNSORTBY) // sort by + { + switch (currentSortMethod) + { + case SortMethod.SORT_NAME: + currentSortMethod = SortMethod.SORT_STATUS; + break; + + case SortMethod.SORT_STATUS: + currentSortMethod = SortMethod.SORT_NAME; + break; + } + + FillContactList(); + OnSort(); + UpdateSortButton(); + } + + if (iControl == (int)Controls.CONTROL_THUMBS || iControl == (int)Controls.CONTROL_LIST) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED, GetID, 0, iControl, 0, 0, null); + OnMessage(msg); + int iItem = (int)msg.Param1; + int iAction = (int)message.Param1; + if (iAction == (int)Action.ActionType.ACTION_SELECT_ITEM) + { + OnClick(iItem); + } + } + + if (iControl == (int)Controls.CONTROL_BTNSTATUS) // Set new status + { + _currentStatus = (PresenceStatus)GetControl((int)Controls.CONTROL_BTNSTATUS).SelectedItem; + FillContactList(); + UpdateStatusButton(); + } + break; + + } + return base.OnMessage(message); + } + + void UpdateSortButton() + { + string strLine = ""; + switch (currentSortMethod) + { + case SortMethod.SORT_NAME: + strLine = GUILocalizeStrings.Get(103);//Sort by: Name + break; + + case SortMethod.SORT_STATUS: + strLine = GUILocalizeStrings.Get(685);//Sort by: Status + break; + } + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTNSORTBY, strLine); + } + + void UpdateStatusButton() + { + if (_messenger == null) + { + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTNSTATUS, GUILocalizeStrings.Get(961));//MSN Status + return; + } + string strLine = ""; + if (_messenger.Connected && _messenger.Nameserver.IsSignedIn) + { + switch (_currentStatus) + { + case PresenceStatus.Busy: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Busy); + strLine = GUILocalizeStrings.Get(949);//Busy + break; + case PresenceStatus.BRB: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.BRB); + strLine = GUILocalizeStrings.Get(950);//Be Right Back + break; + case PresenceStatus.Away: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Away); + strLine = GUILocalizeStrings.Get(951);//Away + break; + case PresenceStatus.Phone: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Phone); + strLine = GUILocalizeStrings.Get(952);//Phone + break; + case PresenceStatus.Lunch: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Lunch); + strLine = GUILocalizeStrings.Get(953);//Lunch + break; + case PresenceStatus.Hidden: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Hidden); + strLine = GUILocalizeStrings.Get(954);//Hidden + break; + case PresenceStatus.Online: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Online); + strLine = GUILocalizeStrings.Get(948);//Online + break; + default: + _messenger.Nameserver.SetPresenceStatus(PresenceStatus.Online); + strLine = GUILocalizeStrings.Get(948);//Online + break; + } + + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTNSTATUS, strLine); + } + else + { + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTNSTATUS, GUILocalizeStrings.Get(961));//MSN Status + } + } + + bool ViewByIcon + { + get + { + if (currentView != View.VIEW_AS_LIST) return true; + return false; + } + } + + bool ViewByLargeIcon + { + get + { + if (currentView == View.VIEW_AS_LARGEICONS) return true; + return false; + } + } + + GUIListItem GetSelectedItem() + { + int iControl; + if (ViewByIcon) + { + iControl = (int)Controls.CONTROL_THUMBS; + } + else + iControl = (int)Controls.CONTROL_LIST; + GUIListItem item = GUIControl.GetSelectedListItem(GetID, iControl); + return item; + } + + GUIListItem GetItem(int iItem) + { + int iControl; + if (ViewByIcon) + { + iControl = (int)Controls.CONTROL_THUMBS; + } + else + iControl = (int)Controls.CONTROL_LIST; + GUIListItem item = GUIControl.GetListItem(GetID, iControl, iItem); + return item; + } + + int GetSelectedItemNo() + { + int iControl; + if (ViewByIcon) + { + iControl = (int)Controls.CONTROL_THUMBS; + } + else + iControl = (int)Controls.CONTROL_LIST; + + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED, GetID, 0, iControl, 0, 0, null); + OnMessage(msg); + int iItem = (int)msg.Param1; + return iItem; + } + int GetItemCount() + { + int iControl; + if (ViewByIcon) + { + iControl = (int)Controls.CONTROL_THUMBS; + } + else + iControl = (int)Controls.CONTROL_LIST; + + return GUIControl.GetItemCount(GetID, iControl); + } + + + void UpdateButtons() + { + GUIControl.HideControl(GetID, (int)Controls.CONTROL_LIST); + GUIControl.HideControl(GetID, (int)Controls.CONTROL_THUMBS); + + int iControl = (int)Controls.CONTROL_LIST; + if (ViewByIcon) + iControl = (int)Controls.CONTROL_THUMBS; + + GUIControl.ShowControl(GetID, iControl); + // GUIControl.FocusControl(GetID,iControl); + + string strLine = ""; + switch (currentView) + { + case View.VIEW_AS_LIST: + strLine = GUILocalizeStrings.Get(101); + break; + case View.VIEW_AS_ICONS: + strLine = GUILocalizeStrings.Get(100); + break; + case View.VIEW_AS_LARGEICONS: + strLine = GUILocalizeStrings.Get(417); + break; + } + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTNVIEWASICONS, strLine); + + + bool bAsc = m_bSortAscending; + if (bAsc) + GUIControl.DeSelectControl(GetID, (int)Controls.CONTROL_BTNSORTASC); + else + GUIControl.SelectControl(GetID, (int)Controls.CONTROL_BTNSORTASC); + } + + void ShowThumbPanel() + { + int iItem = GetSelectedItemNo(); + if (ViewByLargeIcon) + { + GUIThumbnailPanel pControl = (GUIThumbnailPanel)GetControl((int)Controls.CONTROL_THUMBS); + pControl.ShowBigIcons(true); + } + else + { + GUIThumbnailPanel pControl = (GUIThumbnailPanel)GetControl((int)Controls.CONTROL_THUMBS); + pControl.ShowBigIcons(false); + } + if (iItem > -1) + { + GUIControl.SelectItemControl(GetID, (int)Controls.CONTROL_LIST, iItem); + GUIControl.SelectItemControl(GetID, (int)Controls.CONTROL_THUMBS, iItem); + } + UpdateButtons(); + } + + void Update() + { + if (_messenger != null && _messenger.Connected && _messenger.Nameserver.IsSignedIn) + { + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTN_CONNECT, GUILocalizeStrings.Get(904));//sign out + } + else + { + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_BTN_CONNECT, GUILocalizeStrings.Get(903));//Sign in + } + + } + + void OnClick(int iItem) + { + if (_isDialogVisible) return; + + GUIListItem item = GetSelectedItem(); + if (item == null) return; + if ((CurrentConversation != null) && (ContactName != ((Contact)item.AlbumInfoTag).Name)) return; + if (_messenger == null) return; + if (!_messenger.Connected) return; + + Contact contact = (Contact)item.AlbumInfoTag; + + if (ContactName == ((Contact)item.AlbumInfoTag).Name) + { + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_MSN_CHAT); + } + else + { + if (_dlgProgress != null) + { + _dlgProgress.Reset(); + _dlgProgress.SetHeading(901);//MSN Messenger + _dlgProgress.SetLine(1, GUILocalizeStrings.Get(909));//Connecting... + _dlgProgress.SetLine(2, contact.Name); + _dlgProgress.SetLine(3, ""); + _dlgProgress.StartModal(GetID); + _dlgProgress.Progress(); + } + + _isDialogVisible = true; + _currentconversation = _messenger.CreateConversation(); + _currentconversation.Invite(contact); + } + } + #region Sort Members + void OnSort() + { + GUIListControl list = (GUIListControl)GetControl((int)Controls.CONTROL_LIST); + list.Sort(this); + GUIThumbnailPanel panel = (GUIThumbnailPanel)GetControl((int)Controls.CONTROL_THUMBS); + panel.Sort(this); + + UpdateButtons(); + } + public int Compare(GUIListItem item1, GUIListItem item2) + { + if (item1 == item2) return 0; + if (item1 == null) return -1; + if (item2 == null) return -1; + if (item1.IsFolder && item1.Label == "..") return -1; + if (item2.IsFolder && item2.Label == "..") return -1; + if (item1.IsFolder && !item2.IsFolder) return -1; + else if (!item1.IsFolder && item2.IsFolder) return 1; + + + Contact contact1 = item1.AlbumInfoTag as Contact; + Contact contact2 = item2.AlbumInfoTag as Contact; + + SortMethod method = currentSortMethod; + bool bAscending = m_bSortAscending; + switch (method) + { + case SortMethod.SORT_NAME: + if (bAscending) + { + return String.Compare(item1.Label, item2.Label, true); + } + else + { + return String.Compare(item2.Label, item1.Label, true); + } + case SortMethod.SORT_STATUS: + if (bAscending) + { + return String.Compare(contact1.Status.ToString(), contact2.Status.ToString(), true); + } + else + { + return String.Compare(contact2.Status.ToString(), contact1.Status.ToString(), true); + } + default: + if (bAscending) + { + return String.Compare(item1.Label, item2.Label, true); + } + else + { + return String.Compare(item2.Label, item1.Label, true); + } + } + } + #endregion + + public override void Process() + { + if (_messenger == null) return; + if (_messenger.Connected == false) return; + if (_refreshContactList) + { + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + FillContactList(); + } + } + + void FillContactList() + { + _refreshContactList = false; + GUIControl.ClearControl(GetID, (int)Controls.CONTROL_LIST); + GUIControl.ClearControl(GetID, (int)Controls.CONTROL_THUMBS); + + int iContacts = 0; + if (_messenger != null) + { + if (_messenger.Connected && _messenger.Nameserver.IsSignedIn) + { + foreach (Contact contact in _messenger.ContactList.All) + { + if (contact.OnBlockedList) continue; + // if the contact is not offline we can send messages and we want to show + // it in the contactlistview + Log.Info("Contact:{0} status:{1}", contact.Name, contact.Status.ToString()); + if (contact.Status != PresenceStatus.Offline) + { + GUIListItem item = new GUIListItem(contact.Name); + item.Label2 = contact.Status.ToString(); + item.IsFolder = false; + item.AlbumInfoTag = contact; + item.IconImage = "Messenger_Buddies.png"; + item.IconImageBig = "Messenger_Buddies.png"; + + GUIControl.AddListItemControl(GetID, (int)Controls.CONTROL_LIST, item); + GUIControl.AddListItemControl(GetID, (int)Controls.CONTROL_THUMBS, item); + iContacts++; + } + } + } + } + + //set object count label + GUIPropertyManager.SetProperty("#itemcount", Util.Utils.GetObjectCountLabel(iContacts)); + GUIControl.SetControlLabel(GetID, (int)Controls.CONTROL_LABELFILES, Util.Utils.GetObjectCountLabel(iContacts)); + + OnSort(); + UpdateStatusButton(); + Update(); + } + + + private void StopMSN() + { + Log.Info("MSN:Stop MSN"); + _refreshContactList = true; + if (_messenger == null) return; + try + { + if (_messenger.Connected) + _messenger.Disconnect(); + _messenger = null; + } + catch (Exception) + { + } + FillContactList(); + Update(); + } + + // Called when the button 'Connected' is clicked + private void StartMSN(bool showDialog) + { + Log.Info("MSN:Start MSN"); + string emailadres = ""; + string password = ""; + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + emailadres = xmlreader.GetValueAsString("MSNmessenger", "email", ""); + password = xmlreader.GetValueAsString("MSNmessenger", "password", ""); + switch (xmlreader.GetValueAsString("MSNmessenger", "initialstatus", "Online").ToLower()) + { + case "online": _currentStatus = PresenceStatus.Online; break; + case "busy": _currentStatus = PresenceStatus.Busy; break; + case "berightback": _currentStatus = PresenceStatus.BRB; break; + case "away": _currentStatus = PresenceStatus.Away; break; + case "phone": _currentStatus = PresenceStatus.Phone; break; + case "lunch": _currentStatus = PresenceStatus.Lunch; break; + case "hidden": _currentStatus = PresenceStatus.Hidden; break; + case "idle": _currentStatus = PresenceStatus.Idle; break; + } + } + try + { + // make sure we don't use the default settings, since they're invalid + if (emailadres == "") + { + if (!showDialog) return; + _isDialogVisible = false; + _dlgProgress.Close(); + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SHOW_WARNING, GUIWindowManager.ActiveWindow, 0, 0, 0, 0, null); + msg.Param1 = 905; + msg.Param2 = 906; + msg.Param2 = -1; + msg.SendToTargetWindow = true; + GUIWindowManager.SendMessage(msg); + return; + } + else + { + _messenger = new XihSolutions.DotMSN.Messenger(); + _messenger.Credentials.Account = emailadres; + _messenger.Credentials.Password = password; + // We need to use a valid ClientCode/ID for Server Pings (Challenges) + // otherwise we receive a server error 540 after a while and loose the connection + _messenger.Credentials.ClientCode = "Q1P7W2E4J9R8U3S5"; + _messenger.Credentials.ClientID = "ms...@ms..."; + Log.Info("MSN: email:{0} pwd:*********", emailadres); + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + bool useProxy = xmlreader.GetValueAsBool("MSNmessenger", "useproxy", false); + if (useProxy) + { + _messenger.Nameserver.ConnectivitySettings = new ConnectivitySettings(); + _messenger.Nameserver.ConnectivitySettings.ProxyHost = xmlreader.GetValueAsString("MSNmessenger", "proxyhost", ""); + _messenger.Nameserver.ConnectivitySettings.ProxyPort = xmlreader.GetValueAsInt("MSNmessenger", "proxyport", 8080); + _messenger.Nameserver.ConnectivitySettings.ProxyUsername = xmlreader.GetValueAsString("MSNmessenger", "proxyusername", ""); + _messenger.Nameserver.ConnectivitySettings.ProxyPassword = xmlreader.GetValueAsString("MSNmessenger", "proxypassword", ""); + + int proxyType = xmlreader.GetValueAsInt("MSNmessenger", "proxytype", 1); + if (proxyType == 1) _messenger.Nameserver.ConnectivitySettings.ProxyType = ProxyType.Socks5; + else _messenger.Nameserver.ConnectivitySettings.ProxyType = ProxyType.Socks4; + // _messenger.Nameserver.ConnectivitySettings.ProxyType = settings; + Log.Info("MSN: proxy:{0}:{1} {2}/****", + _messenger.Nameserver.ConnectivitySettings.ProxyHost, + _messenger.Nameserver.ConnectivitySettings.ProxyPort, + _messenger.Nameserver.ConnectivitySettings.ProxyUsername); + } + } + _messenger.NameserverProcessor.ConnectionEstablished += new EventHandler(ConnectionEstablished); + _messenger.Nameserver.SignedIn += new EventHandler(Nameserver_SignedIn); + _messenger.Nameserver.SignedOff += new SignedOffEventHandler(Nameserver_SignedOff); + _messenger.NameserverProcessor.ConnectingException += new ProcessorExceptionEventHandler(NameserverProcessor_ConnectingException); + _messenger.Nameserver.ExceptionOccurred += new HandlerExceptionEventHandler(Nameserver_ExceptionOccurred); + _messenger.Nameserver.AuthenticationError += new HandlerExceptionEventHandler(Nameserver_AuthenticationError); + _messenger.Nameserver.ServerErrorReceived += new ErrorReceivedEventHandler(Nameserver_ServerErrorReceived); + _messenger.ConversationCreated += new ConversationCreatedEventHandler(ConversationCreated); + // _messenger.TransferInvitationReceived += new MSNSLPInvitationReceivedEventHandler(messenger_TransferInvitationReceived); + + // setup the callbacks + // we log when someone goes online + _messenger.Nameserver.AutoSynchronize = true; + _messenger.Nameserver.ContactOnline += new ContactChangedEventHandler(Nameserver_ContactOnline); + _messenger.Nameserver.ContactOffline += new ContactChangedEventHandler(Nameserver_ContactOffline); + _messenger.Nameserver.ContactStatusChanged += new ContactStatusChangedEventHandler(Nameserver_ContactStatusChanged); + + // notify us when synchronization is completed + _messenger.Connect(); + + } + } + catch (Exception ex) + { + Log.Info("MSN:Connect exception:{0}", ex.Message); + _isDialogVisible = false; + _dlgProgress.Close(); + + + if (!showDialog) return; + // in case of an error, report this to the user (or developer) + GUIDialogOK pDlgOK = (GUIDialogOK)GUIWindowManager.GetWindow(2002); + pDlgOK.SetHeading(GUILocalizeStrings.Get(901));//MSN Messenger + pDlgOK.SetLine(1, GUILocalizeStrings.Get(907));//Could not connect to MSN + pDlgOK.SetLine(2, ""); + pDlgOK.DoModal(GUIWindowManager.ActiveWindow); + return; + } + } + private void Nameserver_ServerErrorReceived(object sender, MSNErrorEventArgs e) + { + // when the MSN server sends an error code we want to be notified. + //MessageBox.Show(e.MSNError.ToString(), "Server error received"); + Log.Info("MSN:Server error received"); + } + + void Nameserver_ContactStatusChanged(object sender, ContactStatusChangeEventArgs e) + { + Log.Info("MSN:contact status changed:{0} {1}", e.Contact.Name, e.Contact.Status.ToString()); + _refreshContactList = true; + } + + void Nameserver_ContactOffline(object sender, ContactEventArgs e) + { + Log.Info("MSN:contact offline:{0}.", e.Contact.Name); + _refreshContactList = true; + } + + void Nameserver_ContactOnline(object sender, ContactEventArgs e) + { + Log.Info("MSN:contact online:{0}.", e.Contact.Name); + _refreshContactList = true; + } + + + /// <summary> + /// Connected with MSN server + /// </summary> + private void ConnectionEstablished(object sender, EventArgs e) + { + Log.Info("MSN:connection established."); + } + + /// <summary> + /// Signed in to MSN server + /// </summary> + private void Nameserver_SignedIn(object sender, EventArgs e) + { + Log.Info("MSN:signed in."); + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + _refreshContactList = true; + } + + /// <summary> + /// Signed off from MSN server + /// </summary> + private void Nameserver_SignedOff(object sender, SignedOffEventArgs e) + { + Update(); + Log.Info("MSN:signed off."); + } + + /// <summary> + /// Failed to connect/sign in to MSN server + /// </summary> + private void Nameserver_ExceptionOccurred(object sender, ExceptionEventArgs e) + { + // ignore the unauthorized exception, since we're handling that error in another method. + if (e.Exception is UnauthorizedException) + return; + + Log.Info("MSN:unable to connect:{0}", e.Exception.Message); + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + GUIDialogOK pDlgOK = (GUIDialogOK)GUIWindowManager.GetWindow(2002); + pDlgOK.SetHeading(GUILocalizeStrings.Get(901));//MSN Messenger + pDlgOK.SetLine(1, GUILocalizeStrings.Get(907));//Could not connect to MSN + pDlgOK.SetLine(2, ""); + pDlgOK.DoModal(GUIWindowManager.ActiveWindow); + } + + /// <summary> + /// Failed to connect to MSN server + /// </summary> + private void NameserverProcessor_ConnectingException(object sender, ExceptionEventArgs e) + { + Log.Info("MSN:unable to connect:{0}", e.Exception.Message); + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + GUIDialogOK pDlgOK = (GUIDialogOK)GUIWindowManager.GetWindow(2002); + pDlgOK.SetHeading(GUILocalizeStrings.Get(901));//MSN Messenger + pDlgOK.SetLine(1, GUILocalizeStrings.Get(907));//Could not connect to MSN + pDlgOK.SetLine(2, ""); + pDlgOK.DoModal(GUIWindowManager.ActiveWindow); + } + + /// <summary> + /// Failed to sign in username/pwd incorrect + /// </summary> + private void Nameserver_AuthenticationError(object sender, ExceptionEventArgs e) + { + Log.Info("MSN:unable to connect:invalid username/password"); + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + GUIDialogOK pDlgOK = (GUIDialogOK)GUIWindowManager.GetWindow(2002); + pDlgOK.SetHeading(GUILocalizeStrings.Get(901));//MSN Messenger + pDlgOK.SetLine(1, GUILocalizeStrings.Get(907));//Could not connect to MSN + pDlgOK.SetLine(2, ""); + pDlgOK.DoModal(GUIWindowManager.ActiveWindow); + } + + + + + + /// <summary> + /// When the MSN server responds we can setup a conversation (the other party agreed) + /// the Messenger.ConversationCreated event is called so we can initialize the + /// Conversation object. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ConversationCreated(object sender, ConversationCreatedEventArgs e) + { + e.Conversation.Switchboard.TextMessageReceived += new TextMessageReceivedEventHandler(Switchboard_TextMessageReceived); + e.Conversation.Switchboard.SessionClosed += new SBChangedEventHandler(Switchboard_SessionClosed); + e.Conversation.Switchboard.ContactJoined += new ContactChangedEventHandler(Switchboard_ContactJoined); + e.Conversation.Switchboard.ContactLeft += new ContactChangedEventHandler(Switchboard_ContactLeft); + e.Conversation.Switchboard.UserTyping += new UserTypingEventHandler(Switchboard_UserTyping); + e.Conversation.Switchboard.AllContactsLeft += new SBChangedEventHandler(Switchboard_AllContactsLeft); + // we want to be accept filetransfer invitations + //e.Conversation.FileTransferHandler.InvitationReceived +=new DotMSN.FileTransferHandler.FileTransferInvitationHandler(FileTransferHandler_FileTransferInvitation); + UpdateStatusButton(); + if (_currentconversation == null) + { + _currentconversation = e.Conversation; + } + } + + void Switchboard_AllContactsLeft(object sender, EventArgs e) + { + CloseConversation(); + } + + private void Switchboard_SessionClosed(object sender, EventArgs e) + { + //conversation has stopped... + CloseConversation(); + } + + // this is actually just annoying but it proves the concept + void Switchboard_UserTyping(object sender, ContactEventArgs e) + { + dateLastTyped = DateTime.Now; + //contactname=e.Contact.Name; + //MessageBox.Show(this, e.Contact.Name + " is typing"); + } + + + /// <summary> + /// After the first contact has joined you can actually send messages to the + /// other contact(s)! + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Switchboard_ContactJoined(object sender, ContactEventArgs e) + { + // someone joined our conversation! remember that this also occurs when you are + // only talking to 1 other person. Log this event. + //Log.Write += e.Contact.Name + " joined the conversation.\r\n"; + + if (_isDialogVisible) + { + _isDialogVisible = false; + _dlgProgress.Close(); + } + + if (_currentconversation == null) + { + // new conversation + contactname = e.Contact.Name; + } + + if ((!GUIGraphicsContext.IsFullScreenVideo) && (GUIWindowManager.ActiveWindow != (int)GUIWindow.Window.WINDOW_MSN_CHAT)) + { + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_MSN_CHAT); + } + + // Send message + SendStatusMessage(e.Contact.Name, e.Contact.Mail, GUILocalizeStrings.Get(959));//has joined the conversation + } + + private void Switchboard_ContactLeft(object sender, ContactEventArgs e) + { + // Send message + SendStatusMessage(e.Contact.Name, e.Contact.Mail, GUILocalizeStrings.Get(960));//has left the conversation + } + + + #region ISetupFormEx Members + + public bool CanEnable() + { + return true; + } + + public string Description() + { + return "Use the MSN messenger in MediaPortal"; + } + + public bool DefaultEnabled() + { + return false; + } + + public int GetWindowId() + { + return (int)GUIWindow.Window.WINDOW_MSN; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + // TODO: Add GUIMSNPlugin.GetHome implementation + strButtonText = GUILocalizeStrings.Get(901);//MSN messenger + strButtonImage = ""; + strButtonImageFocus = ""; + strPictureImage = ""; + return true; + } + + public string Author() + { + return "Frodo"; + } + + public string PluginName() + { + return "MSN Messenger"; + } + + public bool HasSetup() + { + return true; + } + + public void ShowPlugin() + { + MessengerSetup setup = new MessengerSetup(); + setup.ShowDialog(); + } + + #endregion + + #region IShowPlugin Members + + public bool ShowDefaultHome() + { + return false; + } + + #endregion + + private void ContactOffline(Messenger sender, ContactEventArgs e) + { + _refreshContactList = true; + } + + private void ContactStatusChange(Messenger sender, ContactStatusChangeEventArgs e) + { + _refreshContactList = true; + } + + private void Switchboard_TextMessageReceived(object sender, TextMessageEventArgs e) + { + string FormattedText = String.Format("{0}:{1}", e.Sender.Name, e.Message.Text); + + AddMessage(FormattedText); + } + + private void SendStatusMessage(string sName, string sMail, string sText) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_STATUS_MESSAGE, GUIWindowManager.ActiveWindow, GetID, 0, 0, 0, null); + msg.Label = sName; + msg.Label2 = sMail; + msg.Label3 = sText; + msg.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg); + } + + private void AddMessage(string text) + { + // Route to chat window + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE, (int)GUIWindow.Window.WINDOW_MSN_CHAT, GetID, 0, 0, 0, null); + msg.Label = text; + msg.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg); + + // Route to active window + if (GUIWindowManager.ActiveWindow != (int)GUIWindow.Window.WINDOW_MSN_CHAT) + { + GUIMessage msg2 = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE, GUIWindowManager.ActiveWindow, GetID, 0, 0, 0, null); + msg2.Label = text; + msg2.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg2); + } + } + + } +} Added: trunk/plugins/MSNplugin/GUIMSNPlugin/GUITVMSNOSD.cs =================================================================== --- trunk/plugins/MSNplugin/GUIMSNPlugin/GUITVMSNOSD.cs (rev 0) +++ trunk/plugins/MSNplugin/GUIMSNPlugin/GUITVMSNOSD.cs 2008-07-18 10:31:26 UTC (rev 1933) @@ -0,0 +1,342 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Globalization; +using System.Drawing; +using System.Windows.Forms; +using System.Collections; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.TV.Recording; +using MediaPortal.TV.Database; +using MediaPortal.Util; +using MediaPortal.GUI.MSN; + +namespace MediaPortal.GUI.TV +{ + /// <summary> + /// + /// </summary> + /// + + public class GUITVMSNOSD : GUIWindow, IRenderLayer + { + enum Controls + { + Status = 2, + NrOfUsers = 3, + List = 50, + SMSInput = 51 + }; + + bool m_bNeedRefresh = false; + + #region Base Dialog Variables + bool m_bRunning = false; + int m_dwParentWindowID = 0; + GUIWindow m_pParentWindow = null; + #endregion + + bool m_bPrevOverlay = false; + DateTime m_dateTime = DateTime.Now; + + public GUITVMSNOSD() + { + GetID = (int)GUIWindow.Window.WINDOW_TVMSNOSD; + } + + public override bool Init() + { + bool bResult = Load(GUIGraphicsContext.Skin + @"\TVMSNOSD.xml"); + GetID = (int)GUIWindow.Window.WINDOW_TVMSNOSD; + return bResult; + } + + public override bool SupportsDelayedLoad + { + get { return false; } + } + + + void HideControl(int dwSenderId, int dwControlID) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_HIDDEN, GetID, dwSenderId, dwControlID, 0, 0, null); + OnMessage(msg); + } + void ShowControl(int dwSenderId, int dwControlID) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_VISIBLE, GetID, dwSenderId, dwControlID, 0, 0, null); + OnMessage(msg); + } + + void FocusControl(int dwSenderId, int dwControlID, int dwParam) + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, GetID, dwSenderId, dwControlID, dwParam, 0, null); + OnMessage(msg); + } + + #region Base Dialog Members + + void Close() + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT, GetID, 0, 0, 0, 0, null); + OnMessage(msg); + + GUIWindowManager.UnRoute(); + m_pParentWindow = null; + m_bRunning = false; + } + + public void DoModal(int dwParentId, GUIMessage TriggerMsg) + { + m_dwParentWindowID = dwParentId; + m_pParentWindow = GUIWindowManager.GetWindow(m_dwParentWindowID); + if (null == m_pParentWindow) + { + m_dwParentWindowID = 0; + return; + } + + GUIWindowManager.RouteToWindow(GetID); + + // active this window... + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_INIT, GetID, 0, 0, -1, 0, null); + OnMessage(msg); + + if (TriggerMsg != null) + OnMessage(TriggerMsg); + + GUILayerManager.RegisterLayer(this, GUILayerManager.LayerType.Dialog); + m_bRunning = true; + while (m_bRunning && GUIGraphicsContext.CurrentState == GUIGraphicsContext.State.RUNNING) + { + GUIWindowManager.Process(); + + if ((GUIMSNPlugin.CurrentConversation == null) || !GUIMSNPlugin.Messenger.Connected) + { + Close(); + } + } + GUILayerManager.UnRegisterLayer(this); + } + #endregion + + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_CLOSE_DIALOG || action.wID == Action.ActionType.ACTION_PREVIOUS_MENU || action.wID == Action.ActionType.ACTION_CONTEXT_MENU) + { + Close(); + return; + } + + if (action.wID == Action.ActionType.ACTION_KEY_PRESSED) + { + GUISMSInputControl SMSInput = (GUISMSInputControl)GetControl((int)Controls.SMSInput); + SMSInput.OnAction(action); + m_bNeedRefresh = true; + return; + } + + if (null != m_pParentWindow) + { + // route unhandled actions to parrent window (otherwise they are left unhandled) + // actions like Play Pause FF RW + m_pParentWindow.OnAction(action); + return; + } + + base.OnAction(action); + } + + public override bool OnMessage(GUIMessage message) + { + string FormattedText = ""; + + switch (message.Message) + { + case GUIMessage.MessageType.GUI_MSG_NEW_LINE_ENTERED: + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_NEW_LINE_ENTERED, (int)GUIWindow.Window.WINDOW_MSN_CHAT, 0, 0, 0, 0, null); + msg.Label = message.Label; + msg.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg); + + string text = String.Format(">{0}", message.Label); + GUIListItem item = new GUIListItem(text); + item.IsFolder = false; + GUIControl.AddListItemControl(GetID, (int)Controls.List, item); + GUIListControl list = (GUIListControl)GetControl((int)Controls.List); + list.ScrollToEnd(); + list.Disabled = true; + + SetNrOfPersons(); + m_bNeedRefresh = true; + } + break; + + case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: + { + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_MSN_CLOSECONVERSATION, (int)GUIWindow.Window.WINDOW_MSN, GetID, 0, 0, 0, null); + msg.SendToTargetWindow = true; + GUIGraphicsContext.SendMessage(msg); + + GUIGraphicsContext.Overlay = m_bPrevOverlay; + m_bRunning = false; + GUIWindowManager.UnRoute(); + FreeResources(); + return true; + } + + case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: + { + m_bPrevOverlay = GUIGraphicsContext.Overlay; + base.OnMessage(message); + GUIGraphicsContext.Overlay = false; + GUIListControl list = (GUIListControl)GetControl((int)Controls.List); + list.WordWrap = true; + + GUIControl.ClearControl(GetID, (int)Controls.List); + + m_bNeedRefresh = false; + m_dateTime = DateTime.Now; + SetNrOfPersons(); + return true; + } + + case GUIMessage.MessageType.GUI_MSG_MSN_STATUS_MESSAGE: + FormattedText = String.Format("{0} {1}", message.Label, message.Label3); + GUIControl.SetControlLabel(GetID, (int)Controls.Status, FormattedText); + SetNrOfPersons(); + m_bNeedRefresh = true; + break; + + case GUIMessage.MessageType.GUI_MSG_MSN_MESSAGE: + GUIListItem item2 = new GUIListItem(message.Label); + item2.IsFolder = false; + GUIControl.AddListItemControl(GetID, (int)Controls.List, item2); + GUIListControl list2 = (GUIListControl)GetControl((int)Controls.List); + if (list2 != null) + { + list2.ScrollToEnd(); + list2.Disabled = true; + } + SetNrOfPersons(); + m_bNeedRefresh = true; + break; + } + + return base.OnMessage(message); + } + + public override void ResetAllControls() + { + //reset all + bool bOffScreen = false; + int iCalibrationY = GUIGraphicsContext.OSDOffset; + int iTop = GUIGraphicsContext.OverScanTop; + int iMin = 0; + + foreach (CPosition pos in _listPositions) + { + pos.control.SetPosition((int)pos.XPos, (int)pos.YPos + iCalibrationY); + } + foreach (CPosition pos in _listPositions) + { + GUIControl pControl = pos.control; + + int dwPosY = pControl.YPosition; + if (pControl.IsVisible) + { + if (dwPosY < iTop) + { + int iSize = iTop - dwPosY; + if (iSize > iMin) iMin = iSize; + bOffScreen = true; + } + } + } + if (bOffScreen) + { + + foreach (CPosition pos in _listPositions) + { + GUIControl pControl = pos.control; + int dwPosX = pControl.XPosition; + int dwPosY = pControl.YPosition; + if (dwPosY < (int)100) + { + dwPosY += Math.Abs(iMin); + pControl.SetPosition(dwPosX, dwPosY); + } + } + } + base.ResetAllControls(); + } + + public override bool NeedRefresh() + { + if (m_bNeedRefresh) + { + m_bNeedRefresh = false; + return true; + } + + GUISMSInputControl SMSInput = (GUISMSInputControl)GetControl((int)Controls.SMSInput); + if (SMSInput.NeedRefresh()) + { + return true; + } + + return false; + } + + + void SetNrOfPersons() + { + + // Update nr of users + if (GUIMSNPlugin.CurrentConversation != null) + { + string FormattedText = String.Format("{0}: {1}", GUILocalizeStrings.Get(958), GUIMSNPlugin.ContactName); + GUIControl.SetControlLabel(GetID, (int)Controls.NrOfUsers, FormattedText); + } + } + + + + #region IRenderLayer + public bool ShouldRenderLayer() + { + return true; + } + + public void RenderLayer(float timePassed) + { + Render(timePassed); + } + #endregion + } +} Added: trunk/plugins/MSNplugin/GUIMSNPlugin/GUIVideoMSNOSD.cs =================================================================== --- trunk/plugins/MSNplugin/GUIMSNPlugin/GUIVideoMSNOSD.cs (rev 0) +++ trunk/plugins/MSNplugin/GUIMSNPlugin/GUIVideoMSNOSD.cs 2008-07-18 10:31:26 UTC (rev 1933) @@ -0,0 +1,330 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; + +using MediaPortal.GUI.Library; +using MediaPortal.GUI.MSN; + +namespace MediaPortal.GUI.Video +{ + public class GUIVideoMSNOSD : GUIWindow, IRenderLayer + { + enum Controls + { + Status=2, + NrOfUsers=3, + List=50, + SMSInput=51 + }; + + bool m_bNeedRefresh=false; + + #region Base Dialog Variables + bool m_bRunning=false; + int m_dwParentWindowID=0; + GUIWindow m_pParentWindow=null; + #endregion + + bool m_bPrevOverlay=false; + DateTime m_dateTime=DateTime.Now; + + public GUIVideoMSNOSD() + { + GetID=(int)GUIWindow.Window.WINDOW_MSNOSD; + } + + public override bool Init() + { + bool bResult=Load (GUIGraphicsContext.Skin+@"\MSNOSD.xml"); + GetID=(int)GUIWindow.Window.WINDOW_MSNOSD; + return bResult; + } + + public override bool SupportsDelayedLoad + { + get { return false;} + } + + + void HideControl (int dwSenderId, int dwControlID) + { + GUIMessage msg=new GUIMessage (GUIMessage.MessageType.GUI_MSG_HIDDEN,GetID, dwSenderId, dwControlID,0,0,null); + OnMessage(msg); + } + void ShowControl (int dwSenderId, int dwControlID) + { + GUIMessage msg=new GUIMessage (GUIMessage.MessageType.GUI_MSG_VISIBLE,GetID, dwSenderId, dwControlID,0,0,null); + OnMessage(msg); + } + + void FocusControl (int dwSenderId, int dwControlID, int dwParam) + { + GUIMessage msg=new GUIMessage (GUIMessage.MessageType.GUI_MSG_SETFOCUS,GetID, dwSenderId, dwControlID, dwParam,0,null); + OnMessage(msg); + } + + #region Base Dialog Members + + void Close() + { + GUIMessage msg=new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT,GetID,0,0,0,0,null); + OnMessage(msg); + + GUIWindowManager.UnRoute(); + m_pParentWindow=null; + m_bRunning=false; + } + + public void DoModal(int dwParentId, GUIMessage TriggerMsg) + { + m_dwParentWindowID=dwParentId; + m_pParentWindow=GUIWindowManager.GetWindow( m_dwParentWindowID); + if (null==m_pParentWindow) + { + m_dwParentWindowID=0; + return; + } + + GUIWindowManager.RouteToWindow( GetID ); + + // active this window... + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_... [truncated message content] |
From: <che...@us...> - 2008-07-22 20:11:06
|
Revision: 1956 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1956&view=rev Author: chef_koch Date: 2008-07-22 20:11:05 +0000 (Tue, 22 Jul 2008) Log Message: ----------- removed skin files for pm3, those are include in pm3 skins svn Removed Paths: ------------- trunk/plugins/MyConnect4/Release/skin/Project Mayhem 3/ trunk/plugins/MySimon/Release/skin/Project Mayhem 3/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2008-08-10 18:11:56
|
Revision: 2027 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2027&view=rev Author: chef_koch Date: 2008-08-10 18:11:43 +0000 (Sun, 10 Aug 2008) Log Message: ----------- moved simple mp skin files to skin dir copied media and sounds to B2wide Modified Paths: -------------- trunk/plugins/MySimon/SimonSay/LocalizeStrings.cs Added Paths: ----------- trunk/plugins/MyConnect4/Release/skin/BlueTwo/Media/ trunk/plugins/MyConnect4/Release/skin/BlueTwo/Sounds/ trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/ trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Cur.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Gr.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Rd.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Wh.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Ye.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConnBack.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/hover_my connect4.png trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Sounds/ trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Sounds/MyConnect4_klick.wav Removed Paths: ------------- trunk/plugins/MyConnect4/Release/skin/SimpleMP/ trunk/plugins/MyConnect4/Release/skin/_default/ Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo/Media ___________________________________________________________________ Added: svn:ignore + *.suo *.user thumbs.db Added: svn:mergeinfo + Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo/Sounds ___________________________________________________________________ Added: svn:ignore + *.suo *.user thumbs.db Added: svn:mergeinfo + Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Cur.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Gr.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Rd.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Wh.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConn4Ye.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/MyConnBack.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Media/hover_my connect4.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: trunk/plugins/MyConnect4/Release/skin/BlueTwo wide/Sounds/MyConnect4_klick.wav ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/MySimon/SimonSay/LocalizeStrings.cs =================================================================== --- trunk/plugins/MySimon/SimonSay/LocalizeStrings.cs 2008-08-10 18:00:50 UTC (rev 2026) +++ trunk/plugins/MySimon/SimonSay/LocalizeStrings.cs 2008-08-10 18:11:43 UTC (rev 2027) @@ -30,6 +30,7 @@ using System.Collections.Generic; using System.Text; using System.Xml; + using MediaPortal.Util; using MediaPortal.GUI.Library; using MediaPortal.Configuration; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2008-08-10 19:11:59
|
Revision: 2030 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2030&view=rev Author: chef_koch Date: 2008-08-10 19:11:54 +0000 (Sun, 10 Aug 2008) Log Message: ----------- added plugin dlls added descriptions Modified Paths: -------------- trunk/plugins/MyConnect4/Connect4.xmp trunk/plugins/MySimon/SimonSay.xmp Modified: trunk/plugins/MyConnect4/Connect4.xmp =================================================================== --- trunk/plugins/MyConnect4/Connect4.xmp 2008-08-10 18:50:33 UTC (rev 2029) +++ trunk/plugins/MyConnect4/Connect4.xmp 2008-08-10 19:11:54 UTC (rev 2030) @@ -2,31 +2,22 @@ <ver>1.00.000</ver> <FileList> <File> - <FileName>strings_de.xml</FileName> - <Type>Other</Type> - <SubType>%Language%\MyConnect4</SubType> - <Source>Release\language\MyConnect4\strings_de.xml</Source> + <FileName>hover_my connect4.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Media\hover_my connect4.png</Source> <Id>02010</Id> - <Option /> - <Guid>abb6ce74-d7f0-42e3-a0a3-21ba47ecd82a</Guid> + <Option>OutputFileName=\hover_my connect4.png|</Option> + <Guid>0ccd5284-1d38-4a97-9636-7eda2c8efc08</Guid> </File> <File> - <FileName>strings_en.xml</FileName> - <Type>Other</Type> - <SubType>%Language%\MyConnect4</SubType> - <Source>Release\language\MyConnect4\strings_en.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>2bc06a41-34aa-419c-b485-b1a6a92091a6</Guid> - </File> - <File> <FileName>hover_my connect4.png</FileName> <Type>Media</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Media\hover_my connect4.png</Source> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Media\hover_my connect4.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my connect4.png|</Option> - <Guid>5f0c17c5-0991-4f68-9b7e-eba5be5a07cb</Guid> + <Guid>cc968c13-7914-41cc-8782-e18f15925061</Guid> </File> <File> <FileName>MyConn4Cur.png</FileName> @@ -35,133 +26,124 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Cur.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Cur.png|</Option> - <Guid>eac84bf7-c81c-44e9-a4da-47482effe655</Guid> + <Guid>d66279d4-d382-4e25-b52e-e52ef39e0740</Guid> </File> <File> + <FileName>MyConn4Cur.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Media\MyConn4Cur.png</Source> + <Id>02010</Id> + <Option>OutputFileName=\MyConn4Cur.png|</Option> + <Guid>3a75298a-fe48-493f-b07c-396078c44771</Guid> + </File> + <File> <FileName>MyConn4Gr.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>Release\skin\BlueTwo\Media\MyConn4Gr.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Gr.png|</Option> - <Guid>abbca3b4-2bfa-41f3-bb7e-7a991067ed1c</Guid> + <Guid>b0d5326d-2c27-4c51-96b5-b31ca093e9a3</Guid> </File> <File> - <FileName>MyConn4Rd.png</FileName> + <FileName>MyConn4Gr.png</FileName> <Type>Media</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Media\MyConn4Rd.png</Source> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Media\MyConn4Gr.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Rd.png|</Option> - <Guid>30074760-3879-4b41-80c2-a47673548bdf</Guid> + <Option>OutputFileName=\MyConn4Gr.png|</Option> + <Guid>5994b346-8afc-4e18-9b4b-4c81ff3128ae</Guid> </File> <File> - <FileName>MyConn4Wh.png</FileName> + <FileName>MyConn4Rd.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Media\MyConn4Wh.png</Source> + <Source>Release\skin\BlueTwo\Media\MyConn4Rd.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Wh.png|</Option> - <Guid>8a5a661f-cd15-4b60-b8b5-6b6b5aeeb6cb</Guid> + <Option>OutputFileName=\MyConn4Rd.png|</Option> + <Guid>2ff48790-d909-4aeb-86e0-81e8aef137a5</Guid> </File> <File> - <FileName>MyConn4Ye.png</FileName> + <FileName>MyConn4Rd.png</FileName> <Type>Media</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Media\MyConn4Ye.png</Source> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Media\MyConn4Rd.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Ye.png|</Option> - <Guid>75a6eaed-0f2f-4184-8be5-66bd1a5f8065</Guid> + <Option>OutputFileName=\MyConn4Rd.png|</Option> + <Guid>e1d67537-1d66-4507-9e11-1953a67d4273</Guid> </File> <File> - <FileName>MyConnBack.png</FileName> + <FileName>MyConn4Wh.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Media\MyConnBack.png</Source> + <Source>Release\skin\BlueTwo\Media\MyConn4Wh.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConnBack.png|</Option> - <Guid>fb20ea7e-836c-439d-b2fd-57088935ce21</Guid> + <Option>OutputFileName=\MyConn4Wh.png|</Option> + <Guid>7eb1a5f2-b6f2-4204-82c6-f457598848a2</Guid> </File> <File> - <FileName>MyConnect4.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\MyConnect4.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>00a59561-81f2-45d5-9d58-54e523243573</Guid> - </File> - <File> - <FileName>MyConnect4_klick.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MyConnect4_klick.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>46fbc8ab-8d1f-4e63-9118-2ad968e86b87</Guid> - </File> - <File> - <FileName>hover_my connect4.png</FileName> + <FileName>MyConn4Wh.png</FileName> <Type>Media</Type> <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\hover_my connect4.png</Source> + <Source>Release\skin\BlueTwo wide\Media\MyConn4Wh.png</Source> <Id>02010</Id> - <Option>OutputFileName=\hover_my connect4.png|</Option> - <Guid>7bf9f3ba-d669-4e88-92a6-d89134231100</Guid> + <Option>OutputFileName=\MyConn4Wh.png|</Option> + <Guid>df12d0d8-f32d-4c35-8ffb-5f9ddcb302f1</Guid> </File> <File> - <FileName>MyConn4Cur.png</FileName> + <FileName>MyConn4Ye.png</FileName> <Type>Media</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConn4Cur.png</Source> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Media\MyConn4Ye.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Cur.png|</Option> - <Guid>b11f71d9-e7cc-4e8f-ab99-ff9172b79282</Guid> + <Option>OutputFileName=\MyConn4Ye.png|</Option> + <Guid>5b4d9959-e5de-45ac-884f-cea5020d5008</Guid> </File> <File> - <FileName>MyConn4Gr.png</FileName> + <FileName>MyConn4Ye.png</FileName> <Type>Media</Type> <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConn4Gr.png</Source> + <Source>Release\skin\BlueTwo wide\Media\MyConn4Ye.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Gr.png|</Option> - <Guid>59838891-6edd-443c-af26-4b1d3cfc7b85</Guid> + <Option>OutputFileName=\MyConn4Ye.png|</Option> + <Guid>85230c00-c1cc-4a53-9210-046e36c1a930</Guid> </File> <File> - <FileName>MyConn4Rd.png</FileName> + <FileName>MyConnBack.png</FileName> <Type>Media</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConn4Rd.png</Source> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Media\MyConnBack.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Rd.png|</Option> - <Guid>f0b663b8-ff41-4201-aab4-864f25ea6477</Guid> + <Option>OutputFileName=\MyConnBack.png|</Option> + <Guid>e9052b8c-af97-4751-814f-ea5ca711cf7e</Guid> </File> <File> - <FileName>MyConn4Wh.png</FileName> + <FileName>MyConnBack.png</FileName> <Type>Media</Type> <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConn4Wh.png</Source> + <Source>Release\skin\BlueTwo wide\Media\MyConnBack.png</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConn4Wh.png|</Option> - <Guid>4bdde0ab-5fa0-415a-b1ec-5395f9f53c5d</Guid> + <Option>OutputFileName=\MyConnBack.png|</Option> + <Guid>15cb170f-1c66-4c52-bb37-ea0f1a3bb3ae</Guid> </File> <File> - <FileName>MyConn4Ye.png</FileName> - <Type>Media</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConn4Ye.png</Source> - <Id>02010</Id> - <Option>OutputFileName=\MyConn4Ye.png|</Option> - <Guid>5617b7a1-821a-4467-a2d5-0ea35c313eb6</Guid> + <FileName>MyConnect4.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>Connect4\bin\Release\MyConnect4.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>30119d01-663b-4d17-96b2-d9e00a535de6</Guid> </File> <File> - <FileName>MyConnBack.png</FileName> - <Type>Media</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Media\MyConnBack.png</Source> + <FileName>MyConnect4.xml</FileName> + <Type>Skin</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\MyConnect4.xml</Source> <Id>02010</Id> - <Option>OutputFileName=\MyConnBack.png|</Option> - <Guid>392f713b-e4c6-45de-914f-940d5de02f80</Guid> + <Option /> + <Guid>df4b0d9a-9cd5-4378-86d3-26015d7b39c2</Guid> </File> <File> <FileName>MyConnect4.xml</FileName> @@ -170,26 +152,44 @@ <Source>Release\skin\BlueTwo wide\MyConnect4.xml</Source> <Id>02010</Id> <Option /> - <Guid>d4c66b78-65ae-4262-9806-349ebe37f2c5</Guid> + <Guid>2334f0a4-c337-4a5c-bc3a-9dbb833245bf</Guid> </File> <File> <FileName>MyConnect4_klick.wav</FileName> <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MyConnect4_klick.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>a4171c39-0c45-40ed-bbbe-a0cd2c4448c6</Guid> + </File> + <File> + <FileName>MyConnect4_klick.wav</FileName> + <Type>Sounds</Type> <SubType>BlueTwo wide</SubType> <Source>Release\skin\BlueTwo wide\Sounds\MyConnect4_klick.wav</Source> <Id>02010</Id> <Option /> - <Guid>45a159de-2a6f-4bf2-9dda-4cf7066ebaeb</Guid> + <Guid>6986c200-c3ba-485c-bd69-d983ea7bf75d</Guid> </File> <File> - <FileName>MyConnect4.dll</FileName> - <Type>Plugin</Type> - <SubType>Window</SubType> - <Source>Connect4\bin\Release\MyConnect4.dll</Source> - <Id>01010</Id> + <FileName>strings_de.xml</FileName> + <Type>Other</Type> + <SubType>%Language%\MyConnect4</SubType> + <Source>Release\language\MyConnect4\strings_de.xml</Source> + <Id>02010</Id> <Option /> - <Guid>cccf793f-0f5e-44f6-977d-57094160c5a5</Guid> + <Guid>3ac79003-703b-4d49-ac42-8843b3c23568</Guid> </File> + <File> + <FileName>strings_en.xml</FileName> + <Type>Other</Type> + <SubType>%Language%\MyConnect4</SubType> + <Source>Release\language\MyConnect4\strings_en.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>15a7962e-98d6-4d49-8478-7c9b705e437e</Guid> + </File> </FileList> <StringList /> <Actions /> @@ -202,7 +202,7 @@ <Author>kroko</Author> <UpdateURL>http://www.team-mediaportal.com/files/Download/MediaPortalInstaller(MPI)/Games/Connect4</UpdateURL> <Version>0.4.0.0</Version> - <Description>Play a game.....</Description> + <Description>Play Connect4 (Vier gewinnt) within MediaPortal using you remote. You can play versus your HTPC or yet another person on your couch.</Description> <Group>Games</Group> <Release>Stable </Release> <Logo>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</Logo> Modified: trunk/plugins/MySimon/SimonSay.xmp =================================================================== --- trunk/plugins/MySimon/SimonSay.xmp 2008-08-10 18:50:33 UTC (rev 2029) +++ trunk/plugins/MySimon/SimonSay.xmp 2008-08-10 19:11:54 UTC (rev 2030) @@ -8,7 +8,7 @@ <Source>Release\skin\BlueTwo\Media\hover_my simon.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my simon.png|</Option> - <Guid>51b4dc5c-9402-40dc-b472-909b3cf5cf75</Guid> + <Guid>9218cbd3-cfbc-454e-985c-455b61e68fa2</Guid> </File> <File> <FileName>hover_my simon.png</FileName> @@ -17,52 +17,16 @@ <Source>Release\skin\BlueTwo wide\Media\hover_my simon.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my simon.png|</Option> - <Guid>e2304b82-08e7-4206-887f-2ca67bcf00b5</Guid> + <Guid>56f8c8a6-963f-477e-9415-267a319c3871</Guid> </File> <File> - <FileName>MySimon.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\MySimon.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>24428a7c-ef8d-49a6-82ca-31d9549aede6</Guid> - </File> - <File> - <FileName>MySimon.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\MySimon.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>de61c89b-8aed-41d5-b8fe-61af186f031d</Guid> - </File> - <File> - <FileName>MySimon_a.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_a.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>adb82b78-4772-41bd-a3b5-a55ace33b509</Guid> - </File> - <File> - <FileName>MySimon_a.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_a.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>771890b1-bf24-47dc-a870-18a265a76df7</Guid> - </File> - <File> <FileName>MySimon_Blue_Focus.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Blue_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_Focus.png|</Option> - <Guid>26e9ab8c-8fd1-4d6b-a9d2-ba3aacedab53</Guid> + <Guid>e1a61b09-f986-4eb4-9211-bf1ec47d4e26</Guid> </File> <File> <FileName>MySimon_Blue_Focus.png</FileName> @@ -71,7 +35,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Blue_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_Focus.png|</Option> - <Guid>c3c39b5c-7d97-4384-b0ab-b703fcde476e</Guid> + <Guid>a171cbba-f103-4a97-953d-41cb125dcfdb</Guid> </File> <File> <FileName>MySimon_Blue_NoFocus.png</FileName> @@ -80,7 +44,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Blue_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_NoFocus.png|</Option> - <Guid>c11dacba-c22e-4163-bbb3-bc2807cd8c40</Guid> + <Guid>b72a2de1-762c-4044-bd78-f35a4ca3ef0d</Guid> </File> <File> <FileName>MySimon_Blue_NoFocus.png</FileName> @@ -89,88 +53,16 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Blue_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_NoFocus.png|</Option> - <Guid>f460d22d-2ffb-4762-9a4c-585ca9cf3312</Guid> + <Guid>3657e4ce-16df-4a47-b160-1a7b1a0a2b3f</Guid> </File> <File> - <FileName>MySimon_c.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_c.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>ff409a9a-5d98-48e6-beb0-b64fb09451fb</Guid> - </File> - <File> - <FileName>MySimon_c.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_c.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>5014ec05-0128-46a5-80a2-f4ec2392ac1b</Guid> - </File> - <File> - <FileName>MySimon_e.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_e.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>1436cd72-b3fd-461a-baea-2a3e7d709400</Guid> - </File> - <File> - <FileName>MySimon_e.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_e.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>691f3549-d5bf-4a93-977a-4845f8167fd8</Guid> - </File> - <File> - <FileName>MySimon_err.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_err.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>f00324e5-9ed9-416c-86e7-d361a29a4ee2</Guid> - </File> - <File> - <FileName>MySimon_err.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_err.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>e58d0b0d-22ae-474f-92e3-f909c70b8393</Guid> - </File> - <File> - <FileName>MySimon_g.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_g.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>a285f90f-3ff5-43d0-86cd-0cf742f085a4</Guid> - </File> - <File> - <FileName>MySimon_g.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_g.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>09dcdca6-cfc8-40af-bb51-dd0dbfefc5e9</Guid> - </File> - <File> <FileName>MySimon_Green_Focus.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Green_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_Focus.png|</Option> - <Guid>dbf50636-d96d-41d7-b952-93c8015f6ed5</Guid> + <Guid>466e33bd-d93d-4b49-9436-4c7c0da73347</Guid> </File> <File> <FileName>MySimon_Green_Focus.png</FileName> @@ -179,7 +71,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Green_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_Focus.png|</Option> - <Guid>079ebf23-a134-4e00-a120-d0381518aeff</Guid> + <Guid>99b2ba11-9725-4482-bf0e-1ad063cc2aab</Guid> </File> <File> <FileName>MySimon_Green_NoFocus.png</FileName> @@ -188,7 +80,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Green_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_NoFocus.png|</Option> - <Guid>94e2c330-8af2-4926-9a9f-170881b77345</Guid> + <Guid>2c159c80-e4c6-4bb1-8422-7dd323128d95</Guid> </File> <File> <FileName>MySimon_Green_NoFocus.png</FileName> @@ -197,7 +89,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Green_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_NoFocus.png|</Option> - <Guid>26c89bf8-559a-4400-a177-ee3ac5b89875</Guid> + <Guid>78043003-6f32-4877-a79b-9707fbc01800</Guid> </File> <File> <FileName>MySimon_Red_Focus.png</FileName> @@ -206,7 +98,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Red_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_Focus.png|</Option> - <Guid>b19a43dd-caa7-4598-ad89-7bd5127ecd11</Guid> + <Guid>792ac834-43e3-4b57-a3bc-e8cdecb9e4a8</Guid> </File> <File> <FileName>MySimon_Red_Focus.png</FileName> @@ -215,7 +107,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Red_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_Focus.png|</Option> - <Guid>6752a2e9-2f97-4af0-becf-8566f7fde74d</Guid> + <Guid>5f14a810-cf3d-4d22-bd88-abbeb8e05d7f</Guid> </File> <File> <FileName>MySimon_Red_NoFocus.png</FileName> @@ -224,7 +116,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Red_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_NoFocus.png|</Option> - <Guid>bb758e11-3e32-4bae-8465-54cfac3491ba</Guid> + <Guid>3b54c017-e627-41e9-a2a1-5a4903655687</Guid> </File> <File> <FileName>MySimon_Red_NoFocus.png</FileName> @@ -233,7 +125,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Red_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_NoFocus.png|</Option> - <Guid>05b17da4-022f-480e-be5b-c0bc5a5705e3</Guid> + <Guid>7e747901-7499-4d53-a155-dbbaa2e70a86</Guid> </File> <File> <FileName>MySimon_Yellow_Focus.png</FileName> @@ -242,7 +134,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Yellow_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_Focus.png|</Option> - <Guid>270a32ab-1ef3-41a6-b4d7-cb54d96df3ec</Guid> + <Guid>61122637-02cf-4e83-ad1c-5b7f676d4869</Guid> </File> <File> <FileName>MySimon_Yellow_Focus.png</FileName> @@ -251,7 +143,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Yellow_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_Focus.png|</Option> - <Guid>30a6fd46-e8e8-4229-bf42-67c310e9e291</Guid> + <Guid>4260c574-3d5a-4d2e-acd2-b8038b7715be</Guid> </File> <File> <FileName>MySimon_Yellow_NoFocus.png</FileName> @@ -260,7 +152,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Yellow_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_NoFocus.png|</Option> - <Guid>e3e39d27-4121-48cd-8a54-e2baba375a4a</Guid> + <Guid>e5ddc19e-fabd-42d6-bc9c-a125e710a705</Guid> </File> <File> <FileName>MySimon_Yellow_NoFocus.png</FileName> @@ -269,7 +161,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Yellow_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_NoFocus.png|</Option> - <Guid>9f1c8308-c11f-4fed-8770-2085bdb01f01</Guid> + <Guid>b46f3b01-7265-495f-a3f5-c25def29f1ed</Guid> </File> <File> <FileName>strings_de.xml</FileName> @@ -278,7 +170,7 @@ <Source>Release\language\MySimon\strings_de.xml</Source> <Id>02010</Id> <Option /> - <Guid>6b914638-6e8f-488d-a88a-92f96384ba18</Guid> + <Guid>312cbb2f-cd9d-42f0-a9c2-2dbe0ac0a0c1</Guid> </File> <File> <FileName>strings_en.xml</FileName> @@ -287,7 +179,7 @@ <Source>Release\language\MySimon\strings_en.xml</Source> <Id>02010</Id> <Option /> - <Guid>1aac4fba-467b-4996-b7a4-d2a29ebcfdd8</Guid> + <Guid>368fb53d-1ea5-4789-b178-d86e64be0c08</Guid> </File> <File> <FileName>strings_sv.xml</FileName> @@ -296,8 +188,125 @@ <Source>Release\language\MySimon\strings_sv.xml</Source> <Id>02010</Id> <Option /> - <Guid>7d72a2d1-8130-42b2-bbfb-827da2716254</Guid> + <Guid>a0224762-3a8f-4e64-8be8-e95cb95b45bd</Guid> </File> + <File> + <FileName>MySimon.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>SimonSay\bin\Release\MySimon.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>d4d78b2e-0dd7-4f85-8194-87eb0400f750</Guid> + </File> + <File> + <FileName>MySimon.xml</FileName> + <Type>Skin</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\MySimon.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>fef60394-f899-4543-9765-ac30edfed670</Guid> + </File> + <File> + <FileName>MySimon.xml</FileName> + <Type>Skin</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\MySimon.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>772b1d40-6903-4610-95e0-acda8c44841d</Guid> + </File> + <File> + <FileName>MySimon_a.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_a.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>901af638-fa17-4782-aadd-20c05bef134a</Guid> + </File> + <File> + <FileName>MySimon_a.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_a.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>375cb4d2-6aee-4539-bfc5-bf5c4dcb4187</Guid> + </File> + <File> + <FileName>MySimon_c.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_c.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>1b7ecfeb-96b1-4a61-961c-115772f13706</Guid> + </File> + <File> + <FileName>MySimon_c.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_c.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>479e9173-7cd0-41fb-b1cf-8a2cd471a717</Guid> + </File> + <File> + <FileName>MySimon_e.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_e.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>29ce7daf-0e9c-4d30-b40e-2de5532db99c</Guid> + </File> + <File> + <FileName>MySimon_e.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_e.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>741295ac-e600-48e8-9b25-ba6cf41d2ef5</Guid> + </File> + <File> + <FileName>MySimon_err.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_err.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>0d927ca9-c5dd-4a1a-894f-6c11c0746eeb</Guid> + </File> + <File> + <FileName>MySimon_err.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_err.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>fc81cb66-18e5-4d8a-9bbb-d4bbbd7f2e82</Guid> + </File> + <File> + <FileName>MySimon_g.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_g.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>ac67490e-9620-4bb0-9980-eda6f0bc9690</Guid> + </File> + <File> + <FileName>MySimon_g.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_g.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>e35910e0-e2b2-4b79-81df-c7f1e9798d77</Guid> + </File> </FileList> <StringList /> <Actions /> @@ -310,7 +319,7 @@ <Author>kroko</Author> <UpdateURL>http://www.team-mediaportal.com/files/Download/MediaPortalInstaller(MPI)/Games/SimonSay</UpdateURL> <Version>0.6.0.0</Version> - <Description>Play a game.....</Description> + <Description>One of my favorite game in the 90th. A nice version of the original MB game on the MP. The goal of the game is to remember a tone/light sequence. With more tones speed increase. You can play with the mouse, remote (color or 2-4-6-8 or arrows) buttons. It is fun believe me.</Description> <Group>Games</Group> <Release>Stable </Release> <Logo>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... [truncated message content] |
From: <fr...@us...> - 2008-08-10 20:36:47
|
Revision: 2032 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2032&view=rev Author: framug Date: 2008-08-10 20:36:37 +0000 (Sun, 10 Aug 2008) Log Message: ----------- strings_fr, when possible Added Paths: ----------- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml trunk/plugins/MyContacts/language/strings_fr.xml trunk/plugins/MyDreamDboxTV/Release/language/MyDreamDboxTV/strings_fr.xml trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml trunk/plugins/WorldMap/language/MyWorldmap/strings_fr.xml Added: trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml =================================================================== --- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml (rev 0) +++ trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="French" characters="255"> + <Section name="unmapped"> + <String id="0" prefix="Mon ">Connect 4</String> + <String id="1">Nouvelle partie</String> + <String id="2">Joueur</String> + <String id="3">gagne la partie !</String> + <String id="4">Personne ne gagne ! Tirage au sort !</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="20">Joueur contre </String> + <String id="21">Ordinateur</String> + <String id="22">Joueur</String> + <String id="31">Qu'est-ce que Connect 4</String> + <String id="32">Connect 4 est un jeu dont l'objectif est d'aligner 4 jetons dans une rangée. +Et ceci, verticalement, horizontalement ou en diagonale. + +Gameboard design par Mikael Söderström. + +Bonne chance +Mark Koenig 2008 (kroko)</String> + </Section> +</Language> \ No newline at end of file Added: trunk/plugins/MyContacts/language/strings_fr.xml =================================================================== --- trunk/plugins/MyContacts/language/strings_fr.xml (rev 0) +++ trunk/plugins/MyContacts/language/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="French" characters="255"> + <Section name="unmapped"> + <String id="7677000" prefix="Mes ">Contacts</String> + <String id="7677001">Tri par: Nom</String> + <String id="7677002">Tri par: Pr\xE9nom</String> + <String id="7677003">Tri par: Pseudo</String> + <String id="7677004">Options de tri</String> + </Section> +</Language> \ No newline at end of file Added: trunk/plugins/MyDreamDboxTV/Release/language/MyDreamDboxTV/strings_fr.xml =================================================================== --- trunk/plugins/MyDreamDboxTV/Release/language/MyDreamDboxTV/strings_fr.xml (rev 0) +++ trunk/plugins/MyDreamDboxTV/Release/language/MyDreamDboxTV/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="French" characters="255"> + <Section name="unmapped"> + <String id="0" prefix="Ma ">DreamDboxTV</String> + <String id="100">Vue: Icones</String> + <String id="101">Vue: Liste</String> + <String id="103">Tri par: Nom</String> + <String id="104">Tri par: Date</String> + <String id="105">Tri par: Taille</String> + <String id="417">Vue: Grandes Icones</String> + + <String id="600">Guide télé</String> + <String id="601">Enregistrer maintenant</String> + <String id="602">Photo</String> + <String id="603">Groupe</String> + <String id="604">Chaîne</String> + <String id="605">TV On</String> + <String id="606">Timeshifting</String> + <String id="607">Enregistrements (HDD)</String> + <String id="608">Qu'est-ce que DreamDboxTV?</String> + <String id="609">Enregistrements (Récepteur)</String> + + <String id="632">Objets</String> + <String id="733">Vue: Filmstrip</String> + <String id="972">Toutes les chaînes</String> + + <String id="999">DreamDboxTV vous permet de lire et d'enregistrer, +à partir d'une Dream- ou une D-Box dans MediaPortal. + +Remerciements à Håvard Sunnset (nyx) pour le code et +Frank Müller pour les tests du protocole Enigma v2. + +Amusez-vous bien. +Mark Koenig 2007 (kroko)</String> + </Section> +</Language> \ No newline at end of file Added: trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml =================================================================== --- trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml (rev 0) +++ trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="French" characters="255"> + <Section name="unmapped"> + <String id="0" prefix="Mon ">Hexxagon</String> + <String id="1">Nouvelle partie</String> + <String id="2">Joueur</String> + <String id="4">Temps</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="7">Tableau</String> + <String id="8">Annuler</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="20">Joueur contre </String> + <String id="21">Ordinateur</String> + <String id="22">Joueur</String> + <String id="31">Qu'est-ce que Hexxagon</String> + <String id="32">Hexxagon est parmi les jeux de tableau animé +de stratégie les plus populaires, vaguement +basé sur Othello et Attaxx!. La version originale +a été écrite en 1992 par Argo Games, et a été +mise à jour pour le web par Neave. +http://www.neave.com/games/ + +Finalement je l'ai adapté pour MP. + +Game board design par Mikael Söderström + +VOTRE OBJECTIF: Conquérir le monde! Vous pouvez +choisir de jouer contre l'ordinateur, ou +contre une autre personne. Il y a +deux types de déplacement, un saut ou un double, la case +occupée par un adversaire transformera les jetons +en les votres. + +Bonne chance\nMark Koenig (kroko)</String> + </Section> +</Language> \ No newline at end of file Added: trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml =================================================================== --- trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml (rev 0) +++ trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="English" characters="255"> + <Section name="unmapped"> + <String id="0" prefix="Mon ">Démineur</String> + <String id="1">Nouvelle partie</String> + <String id="4">Heure</String> + <String id="6">GAME OVER</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="31">Qu'est-ce que Démineur</String> + <String id="32">Votre but dans le démineur est de trouver toutes +les mines cachées aussi vite que possible. Si vous cliquez +sur une mine cachée, elle explosera et la partie +se termine. + +Game board design par Mikael Söderström + +OK verifie la position actuelle +1 marque comme bombe +2 marque comme non sûr +3 verifier les alentours +0 Nouvelle partie + +Bonne chance +Mark Koenig 2008 (kroko)</String> + </Section> +</Language> \ No newline at end of file Added: trunk/plugins/WorldMap/language/MyWorldmap/strings_fr.xml =================================================================== --- trunk/plugins/WorldMap/language/MyWorldmap/strings_fr.xml (rev 0) +++ trunk/plugins/WorldMap/language/MyWorldmap/strings_fr.xml 2008-08-10 20:36:37 UTC (rev 2032) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<Language name="French" characters="255"> + <Section name="unmapped"> + <String id="0" prefix="Ma ">Carte du Monde</String> + <String id="1">Longitude: </String> + <String id="2">Latitude: </String> + <String id="3">Mode Zoom: </String> + <String id="30">Recherche...</String> + <String id="31">Adresse ou Emplacement</String> + <String id="32">Emplacement sp\xE9cial</String> + <String id="33">Derni\xE8re recherche</String> + <String id="34">Rep\xE8res stock\xE9s</String> + <String id="35"> est actif</String> + <String id="36">Choisir Type Carte</String> + <String id="37">Options</String> + <String id="50">Recherche pour addresse ou Emplacement</String> + <String id="51">Rue:</String> + <String id="52">Ville:</String> + <String id="53">Pays:</String> + <String id="54">Lieu:</String> + <String id="55">Chercher</String> + <String id="56">Annuler</String> + <String id="70">R\xE9sultats de recherche</String> + <String id="71">Pas de r\xE9sultat</String> + <String id="80">Cache base de donn\xE9es inutilis\xE9</String> + <String id="81">Optimise base de donn\xE9es</String> + <String id="82">Cela peut prendre du temps!</String> + <String id="83">D\xE9marrer optimisation ?</String> + </Section> +</Language> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2008-08-10 23:06:49
|
Revision: 2033 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2033&view=rev Author: chef_koch Date: 2008-08-10 23:06:46 +0000 (Sun, 10 Aug 2008) Log Message: ----------- added the fr lang files to the mpi packagers, thx to framug Modified Paths: -------------- trunk/plugins/MyConnect4/Connect4.xmp trunk/plugins/MySimon/SimonSay.xmp Modified: trunk/plugins/MyConnect4/Connect4.xmp =================================================================== --- trunk/plugins/MyConnect4/Connect4.xmp 2008-08-10 20:36:37 UTC (rev 2032) +++ trunk/plugins/MyConnect4/Connect4.xmp 2008-08-10 23:06:46 UTC (rev 2033) @@ -8,7 +8,7 @@ <Source>Release\skin\BlueTwo\Media\hover_my connect4.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my connect4.png|</Option> - <Guid>0ccd5284-1d38-4a97-9636-7eda2c8efc08</Guid> + <Guid>b1264cde-ecad-4c5f-9805-eb0756bb2edb</Guid> </File> <File> <FileName>hover_my connect4.png</FileName> @@ -17,7 +17,7 @@ <Source>Release\skin\BlueTwo wide\Media\hover_my connect4.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my connect4.png|</Option> - <Guid>cc968c13-7914-41cc-8782-e18f15925061</Guid> + <Guid>5a9746b2-58ff-4153-8c94-e4daa597fd74</Guid> </File> <File> <FileName>MyConn4Cur.png</FileName> @@ -26,7 +26,7 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Cur.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Cur.png|</Option> - <Guid>d66279d4-d382-4e25-b52e-e52ef39e0740</Guid> + <Guid>7179d2d8-7c3d-4210-a480-9fcf463a09f3</Guid> </File> <File> <FileName>MyConn4Cur.png</FileName> @@ -35,7 +35,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConn4Cur.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Cur.png|</Option> - <Guid>3a75298a-fe48-493f-b07c-396078c44771</Guid> + <Guid>7e63ac64-ab9f-4f0a-92e9-30db31a0e88d</Guid> </File> <File> <FileName>MyConn4Gr.png</FileName> @@ -44,7 +44,7 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Gr.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Gr.png|</Option> - <Guid>b0d5326d-2c27-4c51-96b5-b31ca093e9a3</Guid> + <Guid>1f9a69c2-2a41-4415-9f2f-812a609361af</Guid> </File> <File> <FileName>MyConn4Gr.png</FileName> @@ -53,7 +53,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConn4Gr.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Gr.png|</Option> - <Guid>5994b346-8afc-4e18-9b4b-4c81ff3128ae</Guid> + <Guid>a65c880c-361b-4523-8bfe-ca13fdc85a11</Guid> </File> <File> <FileName>MyConn4Rd.png</FileName> @@ -62,7 +62,7 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Rd.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Rd.png|</Option> - <Guid>2ff48790-d909-4aeb-86e0-81e8aef137a5</Guid> + <Guid>8cefb113-3d79-4f23-8dc9-3d98c4001ec3</Guid> </File> <File> <FileName>MyConn4Rd.png</FileName> @@ -71,7 +71,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConn4Rd.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Rd.png|</Option> - <Guid>e1d67537-1d66-4507-9e11-1953a67d4273</Guid> + <Guid>dcd254b4-acf2-45b9-a0b5-b39f505ced15</Guid> </File> <File> <FileName>MyConn4Wh.png</FileName> @@ -80,7 +80,7 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Wh.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Wh.png|</Option> - <Guid>7eb1a5f2-b6f2-4204-82c6-f457598848a2</Guid> + <Guid>1a069164-8e3a-4c80-8a88-b70ff0a5bfd1</Guid> </File> <File> <FileName>MyConn4Wh.png</FileName> @@ -89,7 +89,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConn4Wh.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Wh.png|</Option> - <Guid>df12d0d8-f32d-4c35-8ffb-5f9ddcb302f1</Guid> + <Guid>c31bfb21-6ce1-4cfa-bfa2-4f839a2acc1d</Guid> </File> <File> <FileName>MyConn4Ye.png</FileName> @@ -98,7 +98,7 @@ <Source>Release\skin\BlueTwo\Media\MyConn4Ye.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Ye.png|</Option> - <Guid>5b4d9959-e5de-45ac-884f-cea5020d5008</Guid> + <Guid>bcc3e245-8edd-4899-bb71-4a652ec723cc</Guid> </File> <File> <FileName>MyConn4Ye.png</FileName> @@ -107,7 +107,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConn4Ye.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConn4Ye.png|</Option> - <Guid>85230c00-c1cc-4a53-9210-046e36c1a930</Guid> + <Guid>e53b3937-3968-4d66-bf27-e9f075f10857</Guid> </File> <File> <FileName>MyConnBack.png</FileName> @@ -116,7 +116,7 @@ <Source>Release\skin\BlueTwo\Media\MyConnBack.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConnBack.png|</Option> - <Guid>e9052b8c-af97-4751-814f-ea5ca711cf7e</Guid> + <Guid>760a2051-0e98-4ae9-b21c-885c2f0571c8</Guid> </File> <File> <FileName>MyConnBack.png</FileName> @@ -125,7 +125,7 @@ <Source>Release\skin\BlueTwo wide\Media\MyConnBack.png</Source> <Id>02010</Id> <Option>OutputFileName=\MyConnBack.png|</Option> - <Guid>15cb170f-1c66-4c52-bb37-ea0f1a3bb3ae</Guid> + <Guid>2864d3f0-0302-49ef-9711-98eafa599b73</Guid> </File> <File> <FileName>MyConnect4.dll</FileName> @@ -134,7 +134,7 @@ <Source>Connect4\bin\Release\MyConnect4.dll</Source> <Id>01010</Id> <Option /> - <Guid>30119d01-663b-4d17-96b2-d9e00a535de6</Guid> + <Guid>2fcba9bc-99bc-4d40-899f-5897c7ce205e</Guid> </File> <File> <FileName>MyConnect4.xml</FileName> @@ -143,7 +143,7 @@ <Source>Release\skin\BlueTwo\MyConnect4.xml</Source> <Id>02010</Id> <Option /> - <Guid>df4b0d9a-9cd5-4378-86d3-26015d7b39c2</Guid> + <Guid>46253b59-06e5-4eed-aaf9-4e0e0139bc85</Guid> </File> <File> <FileName>MyConnect4.xml</FileName> @@ -152,7 +152,7 @@ <Source>Release\skin\BlueTwo wide\MyConnect4.xml</Source> <Id>02010</Id> <Option /> - <Guid>2334f0a4-c337-4a5c-bc3a-9dbb833245bf</Guid> + <Guid>673a8c61-d2ae-44a9-8a64-6a26436bc889</Guid> </File> <File> <FileName>MyConnect4_klick.wav</FileName> @@ -161,7 +161,7 @@ <Source>Release\skin\BlueTwo\Sounds\MyConnect4_klick.wav</Source> <Id>02010</Id> <Option /> - <Guid>a4171c39-0c45-40ed-bbbe-a0cd2c4448c6</Guid> + <Guid>7244ac4d-883c-4639-84fd-fcba119aa926</Guid> </File> <File> <FileName>MyConnect4_klick.wav</FileName> @@ -170,7 +170,7 @@ <Source>Release\skin\BlueTwo wide\Sounds\MyConnect4_klick.wav</Source> <Id>02010</Id> <Option /> - <Guid>6986c200-c3ba-485c-bd69-d983ea7bf75d</Guid> + <Guid>e4f59d24-3386-4bc4-8045-7027a234c7ca</Guid> </File> <File> <FileName>strings_de.xml</FileName> @@ -179,7 +179,7 @@ <Source>Release\language\MyConnect4\strings_de.xml</Source> <Id>02010</Id> <Option /> - <Guid>3ac79003-703b-4d49-ac42-8843b3c23568</Guid> + <Guid>66e07dd6-f6da-4b59-97ae-093b00582a66</Guid> </File> <File> <FileName>strings_en.xml</FileName> @@ -188,15 +188,24 @@ <Source>Release\language\MyConnect4\strings_en.xml</Source> <Id>02010</Id> <Option /> - <Guid>15a7962e-98d6-4d49-8478-7c9b705e437e</Guid> + <Guid>ff5f3ec1-f450-4d6b-92d0-1131c5bceebf</Guid> </File> + <File> + <FileName>strings_fr.xml</FileName> + <Type>Other</Type> + <SubType>%Language%\MyConnect4</SubType> + <Source>Release\language\MyConnect4\strings_fr.xml</Source> + <Id>04010</Id> + <Option /> + <Guid>76945352-4847-4079-9761-0e440e58881e</Guid> + </File> </FileList> <StringList /> <Actions /> <SetupGroups /> <SetupGroupMappings /> <Option> - <BuildFileName>D:\mediaportal\mediaportal_plugins\MySimon\SimonSay_v0.6.0.0.mpi</BuildFileName> + <BuildFileName>D:\mediaportal\mediaportal_plugins\MyConnect4\Connect4_v0.4.0.0.mpi</BuildFileName> <ProiectFileName>D:\mediaportal\mediaportal_plugins\MyConnect4\Connect4.xmp</ProiectFileName> <ProiectName>Connect4</ProiectName> <Author>kroko</Author> Modified: trunk/plugins/MySimon/SimonSay.xmp =================================================================== --- trunk/plugins/MySimon/SimonSay.xmp 2008-08-10 20:36:37 UTC (rev 2032) +++ trunk/plugins/MySimon/SimonSay.xmp 2008-08-10 23:06:46 UTC (rev 2033) @@ -8,7 +8,7 @@ <Source>Release\skin\BlueTwo\Media\hover_my simon.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my simon.png|</Option> - <Guid>9218cbd3-cfbc-454e-985c-455b61e68fa2</Guid> + <Guid>04674fe6-7228-4794-bff9-eb0c2fab8ba5</Guid> </File> <File> <FileName>hover_my simon.png</FileName> @@ -17,16 +17,61 @@ <Source>Release\skin\BlueTwo wide\Media\hover_my simon.png</Source> <Id>02010</Id> <Option>OutputFileName=\hover_my simon.png|</Option> - <Guid>56f8c8a6-963f-477e-9415-267a319c3871</Guid> + <Guid>a175adc5-9e7b-44b2-8e18-a379cb3c5616</Guid> </File> <File> + <FileName>MySimon.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>SimonSay\bin\Release\MySimon.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>41552a8e-d7fe-42a9-8ae7-f54dbbab9b06</Guid> + </File> + <File> + <FileName>MySimon.xml</FileName> + <Type>Skin</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\MySimon.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>c60ef962-64a4-414f-90ad-cb773312e65c</Guid> + </File> + <File> + <FileName>MySimon.xml</FileName> + <Type>Skin</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\MySimon.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>877c4501-d570-4194-ab75-04858005854e</Guid> + </File> + <File> + <FileName>MySimon_a.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_a.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>a02aade4-2023-4f59-9d21-af484d0939f2</Guid> + </File> + <File> + <FileName>MySimon_a.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_a.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>e6bd8019-b099-4c76-be83-7042d869a26e</Guid> + </File> + <File> <FileName>MySimon_Blue_Focus.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Blue_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_Focus.png|</Option> - <Guid>e1a61b09-f986-4eb4-9211-bf1ec47d4e26</Guid> + <Guid>fe42c5bb-3cb6-4470-92c1-12d792037b93</Guid> </File> <File> <FileName>MySimon_Blue_Focus.png</FileName> @@ -35,7 +80,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Blue_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_Focus.png|</Option> - <Guid>a171cbba-f103-4a97-953d-41cb125dcfdb</Guid> + <Guid>061b5ec8-9b4e-47f7-83be-7b6e16e0c672</Guid> </File> <File> <FileName>MySimon_Blue_NoFocus.png</FileName> @@ -44,7 +89,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Blue_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_NoFocus.png|</Option> - <Guid>b72a2de1-762c-4044-bd78-f35a4ca3ef0d</Guid> + <Guid>f324a034-228f-487a-b4f8-712999099e1a</Guid> </File> <File> <FileName>MySimon_Blue_NoFocus.png</FileName> @@ -53,16 +98,88 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Blue_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Blue_NoFocus.png|</Option> - <Guid>3657e4ce-16df-4a47-b160-1a7b1a0a2b3f</Guid> + <Guid>b858852a-8a0e-4da0-9112-c8d40ab5275d</Guid> </File> <File> + <FileName>MySimon_c.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_c.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>cefc4cec-4e3a-4e4d-86df-93b6e4c1491a</Guid> + </File> + <File> + <FileName>MySimon_c.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_c.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>5878304e-3683-4328-9c10-f6055c3994e7</Guid> + </File> + <File> + <FileName>MySimon_e.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_e.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>a3bfac0d-6755-4df8-bd98-25aef5e25ce2</Guid> + </File> + <File> + <FileName>MySimon_e.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_e.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>de5ddf1f-c01d-4659-aa05-592ccf0c5575</Guid> + </File> + <File> + <FileName>MySimon_err.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_err.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>b89f0266-7690-454a-b239-ae32a5849113</Guid> + </File> + <File> + <FileName>MySimon_err.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_err.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>90eefc37-7eb1-4e00-8674-4648f84ca929</Guid> + </File> + <File> + <FileName>MySimon_g.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo</SubType> + <Source>Release\skin\BlueTwo\Sounds\MySimon_g.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>3bdb12eb-c22b-4f5f-be3a-adfe806097dd</Guid> + </File> + <File> + <FileName>MySimon_g.wav</FileName> + <Type>Sounds</Type> + <SubType>BlueTwo wide</SubType> + <Source>Release\skin\BlueTwo wide\Sounds\MySimon_g.wav</Source> + <Id>02010</Id> + <Option /> + <Guid>94beb466-8016-4e39-b130-4cf1b599701c</Guid> + </File> + <File> <FileName>MySimon_Green_Focus.png</FileName> <Type>Media</Type> <SubType>BlueTwo</SubType> <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Green_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_Focus.png|</Option> - <Guid>466e33bd-d93d-4b49-9436-4c7c0da73347</Guid> + <Guid>b76ffeba-23f7-4cd3-a6ef-5d0157edbe59</Guid> </File> <File> <FileName>MySimon_Green_Focus.png</FileName> @@ -71,7 +188,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Green_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_Focus.png|</Option> - <Guid>99b2ba11-9725-4482-bf0e-1ad063cc2aab</Guid> + <Guid>9be48999-04d1-419f-a344-eca0d18fc7ae</Guid> </File> <File> <FileName>MySimon_Green_NoFocus.png</FileName> @@ -80,7 +197,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Green_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_NoFocus.png|</Option> - <Guid>2c159c80-e4c6-4bb1-8422-7dd323128d95</Guid> + <Guid>d67b06ca-f441-42ce-867c-acdaeb221b26</Guid> </File> <File> <FileName>MySimon_Green_NoFocus.png</FileName> @@ -89,7 +206,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Green_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Green_NoFocus.png|</Option> - <Guid>78043003-6f32-4877-a79b-9707fbc01800</Guid> + <Guid>0d0d11de-998a-4341-b8a5-6878e4cc16e3</Guid> </File> <File> <FileName>MySimon_Red_Focus.png</FileName> @@ -98,7 +215,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Red_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_Focus.png|</Option> - <Guid>792ac834-43e3-4b57-a3bc-e8cdecb9e4a8</Guid> + <Guid>51c910ce-4c03-4959-bc0f-2e1d99aecb6a</Guid> </File> <File> <FileName>MySimon_Red_Focus.png</FileName> @@ -107,7 +224,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Red_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_Focus.png|</Option> - <Guid>5f14a810-cf3d-4d22-bd88-abbeb8e05d7f</Guid> + <Guid>2814d1fa-e462-4692-bdde-dd2a59114b4f</Guid> </File> <File> <FileName>MySimon_Red_NoFocus.png</FileName> @@ -116,7 +233,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Red_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_NoFocus.png|</Option> - <Guid>3b54c017-e627-41e9-a2a1-5a4903655687</Guid> + <Guid>dda93222-fc55-4ab7-b2cc-fb52bdb798a3</Guid> </File> <File> <FileName>MySimon_Red_NoFocus.png</FileName> @@ -125,7 +242,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Red_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Red_NoFocus.png|</Option> - <Guid>7e747901-7499-4d53-a155-dbbaa2e70a86</Guid> + <Guid>6bfbe041-e7b6-49e0-9c11-c4dc57185080</Guid> </File> <File> <FileName>MySimon_Yellow_Focus.png</FileName> @@ -134,7 +251,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Yellow_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_Focus.png|</Option> - <Guid>61122637-02cf-4e83-ad1c-5b7f676d4869</Guid> + <Guid>7b5c743c-91a2-4321-8b8f-a7bed869b9be</Guid> </File> <File> <FileName>MySimon_Yellow_Focus.png</FileName> @@ -143,7 +260,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Yellow_Focus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_Focus.png|</Option> - <Guid>4260c574-3d5a-4d2e-acd2-b8038b7715be</Guid> + <Guid>a41200d9-52b1-460b-9ed1-d6ad20b051e8</Guid> </File> <File> <FileName>MySimon_Yellow_NoFocus.png</FileName> @@ -152,7 +269,7 @@ <Source>Release\skin\BlueTwo\Media\MySimon\MySimon_Yellow_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_NoFocus.png|</Option> - <Guid>e5ddc19e-fabd-42d6-bc9c-a125e710a705</Guid> + <Guid>ab32e8c4-84b5-4798-917c-3b6a0db26f80</Guid> </File> <File> <FileName>MySimon_Yellow_NoFocus.png</FileName> @@ -161,7 +278,7 @@ <Source>Release\skin\BlueTwo wide\Media\MySimon\MySimon_Yellow_NoFocus.png</Source> <Id>02010</Id> <Option>OutputFileName=\MySimon\MySimon_Yellow_NoFocus.png|</Option> - <Guid>b46f3b01-7265-495f-a3f5-c25def29f1ed</Guid> + <Guid>6b956388-0fbc-49fd-9d45-881af4f9756c</Guid> </File> <File> <FileName>strings_de.xml</FileName> @@ -170,7 +287,7 @@ <Source>Release\language\MySimon\strings_de.xml</Source> <Id>02010</Id> <Option /> - <Guid>312cbb2f-cd9d-42f0-a9c2-2dbe0ac0a0c1</Guid> + <Guid>f1524905-2f5d-47e5-875a-13d18e88e29e</Guid> </File> <File> <FileName>strings_en.xml</FileName> @@ -179,134 +296,26 @@ <Source>Release\language\MySimon\strings_en.xml</Source> <Id>02010</Id> <Option /> - <Guid>368fb53d-1ea5-4789-b178-d86e64be0c08</Guid> + <Guid>5535727a-8f78-4189-9731-1d2687d0e065</Guid> </File> <File> - <FileName>strings_sv.xml</FileName> + <FileName>strings_fr.xml</FileName> <Type>Other</Type> <SubType>%Language%\MySimon</SubType> - <Source>Release\language\MySimon\strings_sv.xml</Source> - <Id>02010</Id> + <Source>Release\language\MySimon\strings_fr.xml</Source> + <Id>04010</Id> <Option /> - <Guid>a0224762-3a8f-4e64-8be8-e95cb95b45bd</Guid> + <Guid>80f2ee7b-e486-440b-955a-11a262329b95</Guid> </File> <File> - <FileName>MySimon.dll</FileName> - <Type>Plugin</Type> - <SubType>Window</SubType> - <Source>SimonSay\bin\Release\MySimon.dll</Source> - <Id>01010</Id> - <Option /> - <Guid>d4d78b2e-0dd7-4f85-8194-87eb0400f750</Guid> - </File> - <File> - <FileName>MySimon.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\MySimon.xml</Source> + <FileName>strings_sv.xml</FileName> + <Type>Other</Type> + <SubType>%Language%\MySimon</SubType> + <Source>Release\language\MySimon\strings_sv.xml</Source> <Id>02010</Id> <Option /> - <Guid>fef60394-f899-4543-9765-ac30edfed670</Guid> + <Guid>4b19628e-b919-4f23-8367-bb5934a4f352</Guid> </File> - <File> - <FileName>MySimon.xml</FileName> - <Type>Skin</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\MySimon.xml</Source> - <Id>02010</Id> - <Option /> - <Guid>772b1d40-6903-4610-95e0-acda8c44841d</Guid> - </File> - <File> - <FileName>MySimon_a.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_a.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>901af638-fa17-4782-aadd-20c05bef134a</Guid> - </File> - <File> - <FileName>MySimon_a.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_a.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>375cb4d2-6aee-4539-bfc5-bf5c4dcb4187</Guid> - </File> - <File> - <FileName>MySimon_c.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_c.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>1b7ecfeb-96b1-4a61-961c-115772f13706</Guid> - </File> - <File> - <FileName>MySimon_c.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_c.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>479e9173-7cd0-41fb-b1cf-8a2cd471a717</Guid> - </File> - <File> - <FileName>MySimon_e.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_e.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>29ce7daf-0e9c-4d30-b40e-2de5532db99c</Guid> - </File> - <File> - <FileName>MySimon_e.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_e.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>741295ac-e600-48e8-9b25-ba6cf41d2ef5</Guid> - </File> - <File> - <FileName>MySimon_err.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_err.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>0d927ca9-c5dd-4a1a-894f-6c11c0746eeb</Guid> - </File> - <File> - <FileName>MySimon_err.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_err.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>fc81cb66-18e5-4d8a-9bbb-d4bbbd7f2e82</Guid> - </File> - <File> - <FileName>MySimon_g.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo</SubType> - <Source>Release\skin\BlueTwo\Sounds\MySimon_g.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>ac67490e-9620-4bb0-9980-eda6f0bc9690</Guid> - </File> - <File> - <FileName>MySimon_g.wav</FileName> - <Type>Sounds</Type> - <SubType>BlueTwo wide</SubType> - <Source>Release\skin\BlueTwo wide\Sounds\MySimon_g.wav</Source> - <Id>02010</Id> - <Option /> - <Guid>e35910e0-e2b2-4b79-81df-c7f1e9798d77</Guid> - </File> </FileList> <StringList /> <Actions /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2008-08-17 21:16:46
|
Revision: 2060 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2060&view=rev Author: chef_koch Date: 2008-08-17 21:16:38 +0000 (Sun, 17 Aug 2008) Log Message: ----------- minor format changes (used VS08) Modified Paths: -------------- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_de.xml trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_en.xml trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_de.xml trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_en.xml trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_de.xml trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_en.xml trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml trunk/plugins/MySimon/Release/language/MySimon/strings_de.xml trunk/plugins/MySimon/Release/language/MySimon/strings_en.xml trunk/plugins/MySimon/Release/language/MySimon/strings_fr.xml trunk/plugins/MySimon/Release/language/MySimon/strings_sv.xml Modified: trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_de.xml =================================================================== --- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_de.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_de.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,28 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="German" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mein ">Vier gewinnt</String> - <String id="1">Neues Spiel</String> - <String id="2">Spieler</String> - <String id="3">gewinnt das Spiel!</String> - <String id="4">Unentschieden! Keiner hat gewonnen!</String> - <String id="5">Runde: </String> - <String id="6">GAME OVER</String> - <String id="9">Spielgeräusche</String> - <String id="10">Stufe: </String> - <String id="11">leicht</String> - <String id="12">mittel</String> - <String id="13">schwer</String> - <String id="20">Spieler vs. </String> - <String id="21">Computer</String> - <String id="22">Spieler</String> - <String id="31">Was ist Vier gewinnt?</String> - <String id="32">Vier gewinnt? Müsstest du kennen :P -Ziel ist es 4 Chips in eine Reihe zu bekommen. Diese kann sowohl vertikal, horizontal als auch diagonal verlaufen. + <Section name="unmapped"> + <String id="0" prefix="Mein ">Vier gewinnt</String> + <String id="1">Neues Spiel</String> + <String id="2">Spieler</String> + <String id="3">gewinnt das Spiel!</String> + <String id="4">Unentschieden! Keiner hat gewonnen!</String> + <String id="5">Runde: </String> + <String id="6">GAME OVER</String> + <String id="9">Spielgeräusche</String> + <String id="10">Stufe: </String> + <String id="11">leicht</String> + <String id="12">mittel</String> + <String id="13">schwer</String> + <String id="20">Spieler vs. </String> + <String id="21">Computer</String> + <String id="22">Spieler</String> + <String id="31">Was ist Vier gewinnt?</String> + <String id="32"> + Vier gewinnt? Müsstest du kennen :P + Ziel ist es 4 Chips in eine Reihe zu bekommen. Diese kann sowohl vertikal, horizontal als auch diagonal verlaufen. -Design des Spielbretts von Mikael Söderström. + Design des Spielbretts von Mikael Söderström. -Viel Glück -Mark Koenig 2008 (kroko)</String> - </Section> + Viel Glück + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_en.xml =================================================================== --- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_en.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_en.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,28 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="English" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="My ">Connect 4</String> - <String id="1">New Game</String> - <String id="2">Player</String> - <String id="3">wins the game!</String> - <String id="4">Nobody wins the game ! Its a draw !</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="9">Sounds</String> - <String id="10">Level: </String> - <String id="11">easy</String> - <String id="12">medium</String> - <String id="13">difficult</String> - <String id="20">Player vs. </String> - <String id="21">Computer</String> - <String id="22">Player</String> - <String id="31">What's Connect 4</String> - <String id="32">Connect 4 is a game where your object is to get 4 tokens in a row. -This could be vertically, horizontal or diagonally. + <Section name="unmapped"> + <String id="0" prefix="My ">Connect 4</String> + <String id="1">New Game</String> + <String id="2">Player</String> + <String id="3">wins the game!</String> + <String id="4">Nobody wins the game ! Its a draw !</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="9">Sounds</String> + <String id="10">Level: </String> + <String id="11">easy</String> + <String id="12">medium</String> + <String id="13">difficult</String> + <String id="20">Player vs. </String> + <String id="21">Computer</String> + <String id="22">Player</String> + <String id="31">What's Connect 4</String> + <String id="32"> + Connect 4 is a game where your object is to get 4 tokens in a row. + This could be vertically, horizontal or diagonally. -Gameboard design by Mikael Söderström. + Gameboard design by Mikael Söderström. -Good luck -Mark Koenig 2008 (kroko)</String> - </Section> + Good luck + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml =================================================================== --- trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyConnect4/Release/language/MyConnect4/strings_fr.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,28 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="French" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mon ">Connect 4</String> - <String id="1">Nouvelle partie</String> - <String id="2">Joueur</String> - <String id="3">gagne la partie !</String> - <String id="4">Personne ne gagne ! Tirage au sort !</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="9">Sons</String> - <String id="10">Niveau: </String> - <String id="11">facile</String> - <String id="12">normal</String> - <String id="13">difficile</String> - <String id="20">Joueur contre </String> - <String id="21">Ordinateur</String> - <String id="22">Joueur</String> - <String id="31">Qu'est-ce que Connect 4</String> - <String id="32">Connect 4 est un jeu dont l'objectif est d'aligner 4 jetons dans une rangée. -Et ceci, verticalement, horizontalement ou en diagonale. + <Section name="unmapped"> + <String id="0" prefix="Mon ">Connect 4</String> + <String id="1">Nouvelle partie</String> + <String id="2">Joueur</String> + <String id="3">gagne la partie !</String> + <String id="4">Personne ne gagne ! Tirage au sort !</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="20">Joueur contre </String> + <String id="21">Ordinateur</String> + <String id="22">Joueur</String> + <String id="31">Qu'est-ce que Connect 4</String> + <String id="32"> + Connect 4 est un jeu dont l'objectif est d'aligner 4 jetons dans une rangée. + Et ceci, verticalement, horizontalement ou en diagonale. -Gameboard design par Mikael Söderström. + Gameboard design par Mikael Söderström. -Bonne chance -Mark Koenig 2008 (kroko)</String> - </Section> + Bonne chance + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_de.xml =================================================================== --- trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_de.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_de.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,41 +1,43 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="German" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mein ">Hexxagon</String> - <String id="1">Neues Spiel</String> - <String id="2">Spieler</String> - <String id="4">Zeit</String> - <String id="5">Runde: </String> - <String id="6">GAME OVER</String> - <String id="7">Spielbrett</String> - <String id="8">Rückgängig</String> - <String id="9">Spielgeräusche</String> - <String id="10">Stufe: </String> - <String id="11">leicht</String> - <String id="12">mittel</String> - <String id="13">schwer</String> - <String id="20">Spieler vs. </String> - <String id="21">Computer</String> - <String id="22">Spieler</String> - <String id="31">Was ist Hexxagon?</String> - <String id="32">Hexxagon is one of the most popular animated -board games of strategy, loosely based upon -Othello and Attaxx!. The original version was -written in 1992 by Argo Games, and has been -updated for the web by Neave. -http://www.neave.com/games/ + <Section name="unmapped"> + <String id="0" prefix="Mein ">Hexxagon</String> + <String id="1">Neues Spiel</String> + <String id="2">Spieler</String> + <String id="4">Zeit</String> + <String id="5">Runde: </String> + <String id="6">GAME OVER</String> + <String id="7">Spielbrett</String> + <String id="8">Rückgängig</String> + <String id="9">Spielgeräusche</String> + <String id="10">Stufe: </String> + <String id="11">leicht</String> + <String id="12">mittel</String> + <String id="13">schwer</String> + <String id="20">Spieler vs. </String> + <String id="21">Computer</String> + <String id="22">Spieler</String> + <String id="31">Was ist Hexxagon?</String> + <String id="32"> + Hexxagon is one of the most popular animated + board games of strategy, loosely based upon + Othello and Attaxx!. The original version was + written in 1992 by Argo Games, and has been + updated for the web by Neave. + http://www.neave.com/games/ -Finally I updated it for the MP + Finally I updated it for the MP -Game board design by Mikael Söderström + Game board design by Mikael Söderström -YOUR AIM: To take over the world! You can -choose to play against the computer, or -against another human opponent. There are -two types of move, a jump or double, indicated -hexxagon occupied by an opponent's piece will -transform them into yours. + YOUR AIM: To take over the world! You can + choose to play against the computer, or + against another human opponent. There are + two types of move, a jump or double, indicated + hexxagon occupied by an opponent's piece will + transform them into yours. -Good luck\nMark Koenig (kroko)</String> - </Section> + Good luck\nMark Koenig (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_en.xml =================================================================== --- trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_en.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_en.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,41 +1,43 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="English" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="My ">Hexxagon</String> - <String id="1">New Game</String> - <String id="2">Player</String> - <String id="4">Time</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="7">Board</String> - <String id="8">Undo</String> - <String id="9">Sounds</String> - <String id="10">Level: </String> - <String id="11">easy</String> - <String id="12">medium</String> - <String id="13">difficult</String> - <String id="20">Player vs. </String> - <String id="21">Computer</String> - <String id="22">Player</String> - <String id="31">What's Hexxagon</String> - <String id="32">Hexxagon is one of the most popular animated -board games of strategy, loosely based upon -Othello and Attaxx!. The original version was -written in 1992 by Argo Games, and has been -updated for the web by Neave. -http://www.neave.com/games/ + <Section name="unmapped"> + <String id="0" prefix="My ">Hexxagon</String> + <String id="1">New Game</String> + <String id="2">Player</String> + <String id="4">Time</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="7">Board</String> + <String id="8">Undo</String> + <String id="9">Sounds</String> + <String id="10">Level: </String> + <String id="11">easy</String> + <String id="12">medium</String> + <String id="13">difficult</String> + <String id="20">Player vs. </String> + <String id="21">Computer</String> + <String id="22">Player</String> + <String id="31">What's Hexxagon</String> + <String id="32"> + Hexxagon is one of the most popular animated + board games of strategy, loosely based upon + Othello and Attaxx!. The original version was + written in 1992 by Argo Games, and has been + updated for the web by Neave. + http://www.neave.com/games/ -Finally I updated it for the MP + Finally I updated it for the MP -Game board design by Mikael Söderström + Game board design by Mikael Söderström -YOUR AIM: To take over the world! You can -choose to play against the computer, or -against another human opponent. There are -two types of move, a jump or double, indicated -hexxagon occupied by an opponent's piece will -transform them into yours. + YOUR AIM: To take over the world! You can + choose to play against the computer, or + against another human opponent. There are + two types of move, a jump or double, indicated + hexxagon occupied by an opponent's piece will + transform them into yours. -Good luck\nMark Koenig (kroko)</String> - </Section> + Good luck\nMark Koenig (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml =================================================================== --- trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyHexxagon/Release/language/MyHexxagon/strings_fr.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,41 +1,43 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="French" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mon ">Hexxagon</String> - <String id="1">Nouvelle partie</String> - <String id="2">Joueur</String> - <String id="4">Temps</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="7">Tableau</String> - <String id="8">Annuler</String> - <String id="9">Sons</String> - <String id="10">Niveau: </String> - <String id="11">facile</String> - <String id="12">normal</String> - <String id="13">difficile</String> - <String id="20">Joueur contre </String> - <String id="21">Ordinateur</String> - <String id="22">Joueur</String> - <String id="31">Qu'est-ce que Hexxagon</String> - <String id="32">Hexxagon est parmi les jeux de tableau animé -de stratégie les plus populaires, vaguement -basé sur Othello et Attaxx!. La version originale -a été écrite en 1992 par Argo Games, et a été -mise à jour pour le web par Neave. -http://www.neave.com/games/ + <Section name="unmapped"> + <String id="0" prefix="Mon ">Hexxagon</String> + <String id="1">Nouvelle partie</String> + <String id="2">Joueur</String> + <String id="4">Temps</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="7">Tableau</String> + <String id="8">Annuler</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="20">Joueur contre </String> + <String id="21">Ordinateur</String> + <String id="22">Joueur</String> + <String id="31">Qu'est-ce que Hexxagon</String> + <String id="32"> + Hexxagon est parmi les jeux de tableau animé + de stratégie les plus populaires, vaguement + basé sur Othello et Attaxx!. La version originale + a été écrite en 1992 par Argo Games, et a été + mise à jour pour le web par Neave. + http://www.neave.com/games/ -Finalement je l'ai adapté pour MP. + Finalement je l'ai adapté pour MP. -Game board design par Mikael Söderström + Game board design par Mikael Söderström -VOTRE OBJECTIF: Conquérir le monde! Vous pouvez -choisir de jouer contre l'ordinateur, ou -contre une autre personne. Il y a -deux types de déplacement, un saut ou un double, la case -occupée par un adversaire transformera les jetons -en les votres. + VOTRE OBJECTIF: Conquérir le monde! Vous pouvez + choisir de jouer contre l'ordinateur, ou + contre une autre personne. Il y a + deux types de déplacement, un saut ou un double, la case + occupée par un adversaire transformera les jetons + en les votres. -Bonne chance\nMark Koenig (kroko)</String> - </Section> + Bonne chance\nMark Koenig (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_de.xml =================================================================== --- trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_de.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_de.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,31 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="German" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mein ">Minesweeper</String> - <String id="1">Neues Spiel</String> - <String id="4">Zeit</String> - <String id="6">GAME OVER</String> - <String id="9">Spielgeräusche</String> - <String id="10">Stufe: </String> - <String id="11">leicht</String> - <String id="12">mittel</String> - <String id="13">schwer</String> - <String id="31">Was ist Minesweeper?</String> - <String id="32">Das Ziel bei Minesweeper ist es,alle -versteckten Minen so schnell wie möglich zu finden. Wenn du -auf eine versteckte Mine klickt's, explodiert diese und das -Spiel ist zu Ende. + <Section name="unmapped"> + <String id="0" prefix="Mein ">Minesweeper</String> + <String id="1">Neues Spiel</String> + <String id="4">Zeit</String> + <String id="6">GAME OVER</String> + <String id="9">Spielgeräusche</String> + <String id="10">Stufe: </String> + <String id="11">leicht</String> + <String id="12">mittel</String> + <String id="13">schwer</String> + <String id="31">Was ist Minesweeper?</String> + <String id="32"> + Das Ziel bei Minesweeper ist es,alle + versteckten Minen so schnell wie möglich zu finden. Wenn du + auf eine versteckte Mine klickt's, explodiert diese und das + Spiel ist zu Ende. -Spielfeld Design von Mikael Söderström + Spielfeld Design von Mikael Söderström -OK prüfe aktuelle Position -1 markiere als Bombe -2 markiere als Fragezeichen -3 prüfe die Umgebung -0 neues Spiel + OK prüfe aktuelle Position + 1 markiere als Bombe + 2 markiere als Fragezeichen + 3 prüfe die Umgebung + 0 neues Spiel -Viel Glück -Mark König 2008 (kroko)</String> - - </Section> + Viel Glück + Mark König 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_en.xml =================================================================== --- trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_en.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_en.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,30 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="English" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="My ">Minesweeper</String> - <String id="1">New Game</String> - <String id="4">Time</String> - <String id="6">GAME OVER</String> - <String id="9">Sounds</String> - <String id="10">Level: </String> - <String id="11">easy</String> - <String id="12">medium</String> - <String id="13">difficult</String> - <String id="31">What's Minesweeper</String> - <String id="32">Your goal in Minesweeper is to discover all -hidden mines as soon as possible. If you click -on a hidden mine it will explode and the game -ends. + <Section name="unmapped"> + <String id="0" prefix="My ">Minesweeper</String> + <String id="1">New Game</String> + <String id="4">Time</String> + <String id="6">GAME OVER</String> + <String id="9">Sounds</String> + <String id="10">Level: </String> + <String id="11">easy</String> + <String id="12">medium</String> + <String id="13">difficult</String> + <String id="31">What's Minesweeper</String> + <String id="32"> + Your goal in Minesweeper is to discover all + hidden mines as soon as possible. If you click + on a hidden mine it will explode and the game + ends. -Game board design by Mikael Söderström + Game board design by Mikael Söderström -OK check actual position -1 mark as bomb -2 mark as not sure -3 check surrounding -0 new game + OK check actual position + 1 mark as bomb + 2 mark as not sure + 3 check surrounding + 0 new game -Good luck -Mark Koenig 2008 (kroko)</String> - </Section> + Good luck + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml =================================================================== --- trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MyMinesweeper/Release/language/MyMinesweeper/strings_fr.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,30 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="English" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mon ">Démineur</String> - <String id="1">Nouvelle partie</String> - <String id="4">Heure</String> - <String id="6">GAME OVER</String> - <String id="9">Sons</String> - <String id="10">Niveau: </String> - <String id="11">facile</String> - <String id="12">normal</String> - <String id="13">difficile</String> - <String id="31">Qu'est-ce que Démineur</String> - <String id="32">Votre but dans le démineur est de trouver toutes -les mines cachées aussi vite que possible. Si vous cliquez -sur une mine cachée, elle explosera et la partie -se termine. + <Section name="unmapped"> + <String id="0" prefix="Mon ">Démineur</String> + <String id="1">Nouvelle partie</String> + <String id="4">Heure</String> + <String id="6">GAME OVER</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="31">Qu'est-ce que Démineur</String> + <String id="32"> + Votre but dans le démineur est de trouver toutes + les mines cachées aussi vite que possible. Si vous cliquez + sur une mine cachée, elle explosera et la partie + se termine. -Game board design par Mikael Söderström + Game board design par Mikael Söderström -OK verifie la position actuelle -1 marque comme bombe -2 marque comme non sûr -3 verifier les alentours -0 Nouvelle partie + OK verifie la position actuelle + 1 marque comme bombe + 2 marque comme non sûr + 3 verifier les alentours + 0 Nouvelle partie -Bonne chance -Mark Koenig 2008 (kroko)</String> - </Section> + Bonne chance + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MySimon/Release/language/MySimon/strings_de.xml =================================================================== --- trunk/plugins/MySimon/Release/language/MySimon/strings_de.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MySimon/Release/language/MySimon/strings_de.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,27 +1,29 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="German" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mein ">Simon Say</String> - <String id="1">Neues Spiel</String> - <String id="2">Spieler</String> - <String id="3">SIMON</String> - <String id="5">Runde: </String> - <String id="6">GAME OVER</String> - <String id="9">Spielgeräusche</String> - <String id="10">Stufe: </String> - <String id="11">leicht</String> - <String id="12">mittel</String> - <String id="13">schwer</String> - <String id="31">Was ist Simon Say?</String> - <String id="32">Simon Say ist ein Spiel, wo man ein Folge von Tönen und Farben wiederholen muss. -Stufe Leicht/Mittel/Schwer: Geschwindigkeit erhöht sich + <Section name="unmapped"> + <String id="0" prefix="Mein ">Simon Say</String> + <String id="1">Neues Spiel</String> + <String id="2">Spieler</String> + <String id="3">SIMON</String> + <String id="5">Runde: </String> + <String id="6">GAME OVER</String> + <String id="9">Spielgeräusche</String> + <String id="10">Stufe: </String> + <String id="11">leicht</String> + <String id="12">mittel</String> + <String id="13">schwer</String> + <String id="31">Was ist Simon Say?</String> + <String id="32"> + Simon Say ist ein Spiel, wo man ein Folge von Tönen und Farben wiederholen muss. + Stufe Leicht/Mittel/Schwer: Geschwindigkeit erhöht sich -Gameboard Design by Mikael Söderström. + Gameboard Design by Mikael Söderström. -Auf der Fernbedienung die farbigen Tasten, -2 - 4 - 6 - 8 oder die Pfeil Tasten benutzen. + Auf der Fernbedienung die farbigen Tasten, + 2 - 4 - 6 - 8 oder die Pfeil Tasten benutzen. -Viel Glück -Mark König 2008 (kroko)</String> - </Section> + Viel Glück + Mark König 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MySimon/Release/language/MySimon/strings_en.xml =================================================================== --- trunk/plugins/MySimon/Release/language/MySimon/strings_en.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MySimon/Release/language/MySimon/strings_en.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,28 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="English" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="My ">Simon Say</String> - <String id="1">New Game</String> - <String id="2">Player</String> - <String id="3">SIMON</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="9">Sounds</String> - <String id="10">Level: </String> - <String id="11">easy</String> - <String id="12">medium</String> - <String id="13">difficult</String> - <String id="31">What's Simon Say</String> - <String id="32">Simon Say is a game where your object is to repeat a code of -tones and colors. -Level easy/medium/difficult: Speed is increasing + <Section name="unmapped"> + <String id="0" prefix="My ">Simon Say</String> + <String id="1">New Game</String> + <String id="2">Player</String> + <String id="3">SIMON</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="9">Sounds</String> + <String id="10">Level: </String> + <String id="11">easy</String> + <String id="12">medium</String> + <String id="13">difficult</String> + <String id="31">What's Simon Say</String> + <String id="32"> + Simon Say is a game where your object is to repeat a code of + tones and colors. + Level easy/medium/difficult: Speed is increasing -Gameboard design by Mikael Söderström. + Gameboard design by Mikael Söderström. -Remote play with the colored buttons or -use 2 - 4 - 6 - 8 or arrow keys. + Remote play with the colored buttons or + use 2 - 4 - 6 - 8 or arrow keys. -Good luck -Mark Koenig 2008 (kroko)</String> - </Section> + Good luck + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MySimon/Release/language/MySimon/strings_fr.xml =================================================================== --- trunk/plugins/MySimon/Release/language/MySimon/strings_fr.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MySimon/Release/language/MySimon/strings_fr.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,27 +1,29 @@ <?xml version="1.0" encoding="utf-8"?> <Language name="French" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="Mon ">Simon Say</String> - <String id="1">Nouvelle partie</String> - <String id="2">Joueur</String> - <String id="3">SIMON</String> - <String id="5">Round: </String> - <String id="6">GAME OVER</String> - <String id="9">Sons</String> - <String id="10">Niveau: </String> - <String id="11">facile</String> - <String id="12">normal</String> - <String id="13">difficile</String> - <String id="31">Qu'est-ce que Simon Say</String> - <String id="32">Simon Say est un jeu dont l'objectif est de répéter un code de sons et de couleurs. -Niveau facile/normal/difficile : La vitesse augmente + <Section name="unmapped"> + <String id="0" prefix="Mon ">Simon Say</String> + <String id="1">Nouvelle partie</String> + <String id="2">Joueur</String> + <String id="3">SIMON</String> + <String id="5">Round: </String> + <String id="6">GAME OVER</String> + <String id="9">Sons</String> + <String id="10">Niveau: </String> + <String id="11">facile</String> + <String id="12">normal</String> + <String id="13">difficile</String> + <String id="31">Qu'est-ce que Simon Say</String> + <String id="32"> + Simon Say est un jeu dont l'objectif est de répéter un code de sons et de couleurs. + Niveau facile/normal/difficile : La vitesse augmente -Gameboard design par Mikael Söderström. + Gameboard design par Mikael Söderström. -Jouez à la télécommande avec les boutons de couleur ou -utilisez 2 - 4 - 6 - 8 ou les touches fléchées. + Jouez à la télécommande avec les boutons de couleur ou + utilisez 2 - 4 - 6 - 8 ou les touches fléchées. -Bonne Chance -Mark Koenig 2008 (kroko)</String> - </Section> + Bonne Chance + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file Modified: trunk/plugins/MySimon/Release/language/MySimon/strings_sv.xml =================================================================== --- trunk/plugins/MySimon/Release/language/MySimon/strings_sv.xml 2008-08-17 20:58:54 UTC (rev 2059) +++ trunk/plugins/MySimon/Release/language/MySimon/strings_sv.xml 2008-08-17 21:16:38 UTC (rev 2060) @@ -1,29 +1,31 @@ -<<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <Language name="Swedish" characters="255"> - <Section name="unmapped"> - <String id="0" prefix="My ">Simon Say</String> - <String id="1">Nytt Spel</String> - <String id="2">Spelare</String> - <String id="3">SIMON</String> - <String id="5">Runda: </String> - <String id="6">Spelet Slut</String> - <String id="9">Ljud</String> - <String id="10">Nivå: </String> - <String id="11">lätt</String> - <String id="12">mellan</String> - <String id="13">svårt</String> - <String id="31">Vad är Simon Say</String> - <String id="32">Simon Say är ett spel vars mål är att -upprepa en kod av ljud och färger i rätt ordning. -Nivå Amatör/Normal/Professionell: Hastigheten ökar + <Section name="unmapped"> + <String id="0" prefix="My ">Simon Say</String> + <String id="1">Nytt Spel</String> + <String id="2">Spelare</String> + <String id="3">SIMON</String> + <String id="5">Runda: </String> + <String id="6">Spelet Slut</String> + <String id="9">Ljud</String> + <String id="10">Nivå: </String> + <String id="11">lätt</String> + <String id="12">mellan</String> + <String id="13">svårt</String> + <String id="31">Vad är Simon Say</String> + <String id="32"> + Simon Say är ett spel vars mål är att + upprepa en kod av ljud och färger i rätt ordning. + Nivå Amatör/Normal/Professionell: Hastigheten ökar -Speldesign av Mikael Söderström. + Speldesign av Mikael Söderström. -Spela med fjärrkontrollen och använd dom -färgade knapparna eller använd -2 - 4 - 6 -8 eller piltangenterna. + Spela med fjärrkontrollen och använd dom + färgade knapparna eller använd + 2 - 4 - 6 -8 eller piltangenterna. -Lycka till! -Mark Koenig 2008 (kroko)</String> - </Section> + Lycka till! + Mark Koenig 2008 (kroko) + </String> + </Section> </Language> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <do...@us...> - 2008-08-26 11:24:21
|
Revision: 2091 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2091&view=rev Author: dot-i Date: 2008-08-26 11:24:17 +0000 (Tue, 26 Aug 2008) Log Message: ----------- Created basic directory structure. Added Paths: ----------- trunk/plugins/ForTheRecord/ trunk/plugins/ForTheRecord/ForTheRecord.RecorderTuners.MediaPortalTvServer/ trunk/plugins/ForTheRecord/ForTheRecord.UI.MediaPortal/ trunk/plugins/ForTheRecord/ForTheRecord.UI.Process/ trunk/plugins/ForTheRecord/ReferencedAssemblies/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fr...@us...> - 2008-10-14 04:41:04
|
Revision: 2229 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2229&view=rev Author: framug Date: 2008-10-14 04:40:59 +0000 (Tue, 14 Oct 2008) Log Message: ----------- Changed Hovers with reflection (thx -ltb- !!!) Modified Paths: -------------- trunk/plugins/WebEPGfr/skin/BlueTwo/Media/Hover_WebEPGfr.png trunk/plugins/WebEPGfr/skin/BlueTwo/Media/Hover_ZguideTV.png trunk/plugins/WebEPGfr/skin/BlueTwo/Media/hover_kazer.png trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/Hover_WebEPGfr.png trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/Hover_ZguideTV.png trunk/plugins/WebEPGfr/skin/BlueTwo wide/Media/hover_kazer.png trunk/plugins/kazer/skin/BlueTwo/Media/hover_kazer.png trunk/plugins/kazer/skin/BlueTwo wide/Media/hover_kazer.png This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jos...@us...> - 2008-10-25 06:00:51
|
Revision: 2267 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2267&view=rev Author: josch-hh Date: 2008-10-25 06:00:43 +0000 (Sat, 25 Oct 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/Icon.ico trunk/plugins/MPstandbyHandler2.sln trunk/plugins/MPstandbyHandler2.suo trunk/plugins/MPstandbyHandlerGui/ trunk/plugins/MPstandbyHandlerGui/ExternalLogReader.cs trunk/plugins/MPstandbyHandlerGui/Icon.ico trunk/plugins/MPstandbyHandlerGui/MPstandbyHandlerGui.csproj trunk/plugins/MPstandbyHandlerGui/MainForm.Designer.cs trunk/plugins/MPstandbyHandlerGui/MainForm.cs trunk/plugins/MPstandbyHandlerGui/MainForm.resx trunk/plugins/MPstandbyHandlerGui/Program.cs trunk/plugins/MPstandbyHandlerGui/Properties/ trunk/plugins/MPstandbyHandlerGui/Properties/AssemblyInfo.cs trunk/plugins/MPstandbyHandlerGui/Properties/Resources.Designer.cs trunk/plugins/MPstandbyHandlerGui/Properties/Resources.resx trunk/plugins/MPstandbyHandlerGui/Properties/Settings.Designer.cs trunk/plugins/MPstandbyHandlerGui/Properties/Settings.settings trunk/plugins/MPstandbyHandlerGui/app.config trunk/plugins/MPstandbyHandlerGui/bin/ trunk/plugins/MPstandbyHandlerGui/bin/Debug/ trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbHandlerGui.vshost.exe trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerGui.exe trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerGui.exe.config trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerGui.pdb trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerGui.vshost.exe trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerGui.vshost.exe.config trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerGui/bin/Debug/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerGui/bin/Release/ trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerGui.exe trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerGui.exe.config trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerGui.pdb trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerService.InstallLog trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerGui/bin/Release/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerGui/bin/Release/install.cmd trunk/plugins/MPstandbyHandlerGui/bin/Release/uninstall.cmd trunk/plugins/MPstandbyHandlerGui/obj/ trunk/plugins/MPstandbyHandlerGui/obj/Debug/ trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.MainForm.resources trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.Properties.Resources.resources trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.csproj.GenerateResource.Cache trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.exe trunk/plugins/MPstandbyHandlerGui/obj/Debug/MPstandbyHandlerGui.pdb trunk/plugins/MPstandbyHandlerGui/obj/Debug/Refactor/ trunk/plugins/MPstandbyHandlerGui/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerGui/obj/Debug/TempPE/ trunk/plugins/MPstandbyHandlerGui/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MPstandbyHandlerGui/obj/MPstandbHandlerGui.csproj.FileList.txt trunk/plugins/MPstandbyHandlerGui/obj/MPstandbyHandlerGui.csproj.FileList.txt trunk/plugins/MPstandbyHandlerGui/obj/MPstandbyHandlerGui.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerGui/obj/Release/ trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbHandlerGui.csproj.GenerateResource.Cache trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.MainForm.resources trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.Properties.Resources.resources trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.csproj.GenerateResource.Cache trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.exe trunk/plugins/MPstandbyHandlerGui/obj/Release/MPstandbyHandlerGui.pdb trunk/plugins/MPstandbyHandlerGui/obj/Release/Refactor/ trunk/plugins/MPstandbyHandlerGui/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerGui/obj/Release/TempPE/ trunk/plugins/MPstandbyHandlerGui/obj/Release/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MPstandbyHandlerService/ trunk/plugins/MPstandbyHandlerService/Icon.ico trunk/plugins/MPstandbyHandlerService/MPstandbyHandlerService.csproj trunk/plugins/MPstandbyHandlerService/MPstandbyHandlerService.csproj.user trunk/plugins/MPstandbyHandlerService/MainForm.cs trunk/plugins/MPstandbyHandlerService/MainForm.designer.cs trunk/plugins/MPstandbyHandlerService/MainForm.resx trunk/plugins/MPstandbyHandlerService/MpshService.cs trunk/plugins/MPstandbyHandlerService/MpshServiceInstaller.cs trunk/plugins/MPstandbyHandlerService/Properties/ trunk/plugins/MPstandbyHandlerService/Properties/AssemblyInfo.cs trunk/plugins/MPstandbyHandlerService/RemoteClient.cs trunk/plugins/MPstandbyHandlerService/app.config trunk/plugins/MPstandbyHandlerService/bin/ trunk/plugins/MPstandbyHandlerService/bin/Debug/ trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandler2.vshost.exe trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerService.exe.config trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerService.vshost.exe trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerService.vshost.exe.config trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerService/bin/Debug/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerService/bin/Release/ trunk/plugins/MPstandbyHandlerService/bin/Release/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/bin/Release/MPstandbyHandlerService.exe.config trunk/plugins/MPstandbyHandlerService/bin/Release/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerService/bin/Release/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerService/bin/Release/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerService/install.cmd trunk/plugins/MPstandbyHandlerService/obj/ trunk/plugins/MPstandbyHandlerService/obj/Debug/ trunk/plugins/MPstandbyHandlerService/obj/Debug/MPstandbyHandlerService.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerService/obj/Debug/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/obj/Debug/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerService/obj/Debug/Refactor/ trunk/plugins/MPstandbyHandlerService/obj/Debug/Refactor/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerService/obj/Debug/TempPE/ trunk/plugins/MPstandbyHandlerService/obj/MPstandbyHandlerService.csproj.FileList.txt trunk/plugins/MPstandbyHandlerService/obj/MPstandbyHandlerService.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerService/obj/Release/ trunk/plugins/MPstandbyHandlerService/obj/Release/MPstandbyHandlerService.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerService/obj/Release/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/obj/Release/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerService/obj/Release/Refactor/ trunk/plugins/MPstandbyHandlerService/obj/Release/Refactor/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerService/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerService/obj/Release/TempPE/ trunk/plugins/MPstandbyHandlerService/uninstall.cmd trunk/plugins/MPstandbyHandlerUser/ trunk/plugins/MPstandbyHandlerUser/Icon.ico trunk/plugins/MPstandbyHandlerUser/MPstandbyHandlerUser.csproj trunk/plugins/MPstandbyHandlerUser/MainForm.Designer.cs trunk/plugins/MPstandbyHandlerUser/MainForm.cs trunk/plugins/MPstandbyHandlerUser/MainForm.resx trunk/plugins/MPstandbyHandlerUser/Program.cs trunk/plugins/MPstandbyHandlerUser/Properties/ trunk/plugins/MPstandbyHandlerUser/Properties/AssemblyInfo.cs trunk/plugins/MPstandbyHandlerUser/Properties/Resources.Designer.cs trunk/plugins/MPstandbyHandlerUser/Properties/Resources.resx trunk/plugins/MPstandbyHandlerUser/Properties/Settings.Designer.cs trunk/plugins/MPstandbyHandlerUser/Properties/Settings.settings trunk/plugins/MPstandbyHandlerUser/RemoteServer.cs trunk/plugins/MPstandbyHandlerUser/SplashForm.Designer.cs trunk/plugins/MPstandbyHandlerUser/SplashForm.cs trunk/plugins/MPstandbyHandlerUser/SplashForm.resx trunk/plugins/MPstandbyHandlerUser/app.config trunk/plugins/MPstandbyHandlerUser/bin/ trunk/plugins/MPstandbyHandlerUser/bin/Debug/ trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUser.exe.config trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUser.vshost.exe trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUser.vshost.exe.config trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUser/bin/Debug/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUser/bin/Release/ trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerService.exe trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerService.pdb trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerUser.exe.config trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUser/bin/Release/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUser/obj/ trunk/plugins/MPstandbyHandlerUser/obj/Debug/ trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.MainForm.resources trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.Properties.Resources.resources trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.SplashForm.resources trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.csproj.GenerateResource.Cache trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/obj/Debug/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerUser/obj/Debug/Refactor/ trunk/plugins/MPstandbyHandlerUser/obj/Debug/Refactor/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerUser/obj/Debug/TempPE/ trunk/plugins/MPstandbyHandlerUser/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MPstandbyHandlerUser/obj/MPstandbyHandlerUser.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUser/obj/Release/ trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.MainForm.resources trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.Properties.Resources.resources trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.SplashForm.resources trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.csproj.GenerateResource.Cache trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/obj/Release/MPstandbyHandlerUser.pdb trunk/plugins/MPstandbyHandlerUser/obj/Release/Refactor/ trunk/plugins/MPstandbyHandlerUser/obj/Release/Refactor/MPstandbyHandlerUser.exe trunk/plugins/MPstandbyHandlerUser/obj/Release/ResolveAssemblyReference.cache trunk/plugins/MPstandbyHandlerUser/obj/Release/TempPE/ trunk/plugins/MPstandbyHandlerUser/obj/Release/TempPE/Properties.Resources.Designer.cs.dll trunk/plugins/MPstandbyHandlerUtils/ trunk/plugins/MPstandbyHandlerUtils/CommonSettings.cs trunk/plugins/MPstandbyHandlerUtils/Flags.cs trunk/plugins/MPstandbyHandlerUtils/HardwareLib.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/ trunk/plugins/MPstandbyHandlerUtils/Jobs/Job.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobExternalCommandStart.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobHardwareDeviceRestart.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobIdentification.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobMediaportalStart.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobMediaportalStop.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobNetworkCheck.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobProperty.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobTVServiceStart.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobTVServiceStop.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobTimebased.cs trunk/plugins/MPstandbyHandlerUtils/Jobs/JobTools.cs trunk/plugins/MPstandbyHandlerUtils/Logging/ trunk/plugins/MPstandbyHandlerUtils/Logging/FileLogHandler.cs trunk/plugins/MPstandbyHandlerUtils/Logging/GuiLogHandler.cs trunk/plugins/MPstandbyHandlerUtils/Logging/ILogHandler.cs trunk/plugins/MPstandbyHandlerUtils/Logging/Logger.cs trunk/plugins/MPstandbyHandlerUtils/MPstandbyHandlerUtils.csproj trunk/plugins/MPstandbyHandlerUtils/MPstandbyHandlerUtils.csproj.user trunk/plugins/MPstandbyHandlerUtils/Properties/ trunk/plugins/MPstandbyHandlerUtils/Properties/AssemblyInfo.cs trunk/plugins/MPstandbyHandlerUtils/Tools.cs trunk/plugins/MPstandbyHandlerUtils/app.config trunk/plugins/MPstandbyHandlerUtils/bin/ trunk/plugins/MPstandbyHandlerUtils/bin/Debug/ trunk/plugins/MPstandbyHandlerUtils/bin/Debug/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/bin/Debug/MPstandbyHandlerUtils.dll.config trunk/plugins/MPstandbyHandlerUtils/bin/Debug/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUtils/bin/Release/ trunk/plugins/MPstandbyHandlerUtils/bin/Release/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/bin/Release/MPstandbyHandlerUtils.dll.config trunk/plugins/MPstandbyHandlerUtils/bin/Release/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUtils/obj/ trunk/plugins/MPstandbyHandlerUtils/obj/Debug/ trunk/plugins/MPstandbyHandlerUtils/obj/Debug/MPstandbyHandlerUtils.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUtils/obj/Debug/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/obj/Debug/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUtils/obj/Debug/Refactor/ trunk/plugins/MPstandbyHandlerUtils/obj/Debug/Refactor/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/obj/Debug/TempPE/ trunk/plugins/MPstandbyHandlerUtils/obj/MPstandbyHandlerJobs.csproj.FileList.txt trunk/plugins/MPstandbyHandlerUtils/obj/MPstandbyHandlerUtils.csproj.FileList.txt trunk/plugins/MPstandbyHandlerUtils/obj/MPstandbyHandlerUtils.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUtils/obj/Release/ trunk/plugins/MPstandbyHandlerUtils/obj/Release/MPstandbyHandlerUtils.csproj.FileListAbsolute.txt trunk/plugins/MPstandbyHandlerUtils/obj/Release/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/obj/Release/MPstandbyHandlerUtils.pdb trunk/plugins/MPstandbyHandlerUtils/obj/Release/Refactor/ trunk/plugins/MPstandbyHandlerUtils/obj/Release/Refactor/MPstandbyHandlerUtils.dll trunk/plugins/MPstandbyHandlerUtils/obj/Release/TempPE/ trunk/plugins/mp_logo.png Added: trunk/plugins/Icon.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/Icon.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MPstandbyHandler2.sln =================================================================== --- trunk/plugins/MPstandbyHandler2.sln (rev 0) +++ trunk/plugins/MPstandbyHandler2.sln 2008-10-25 06:00:43 UTC (rev 2267) @@ -0,0 +1,45 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C# Express 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerService", "MPstandbyHandlerService\MPstandbyHandlerService.csproj", "{B47B12D4-CC57-43B8-9E4C-9B83800A8718}" + ProjectSection(ProjectDependencies) = postProject + {03208FA7-4457-428A-ADF7-B14DAA7A21BF} = {03208FA7-4457-428A-ADF7-B14DAA7A21BF} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerGui", "MPstandbyHandlerGui\MPstandbyHandlerGui.csproj", "{6D156C82-2ECD-4891-9EDF-A74A321EDC8D}" + ProjectSection(ProjectDependencies) = postProject + {03208FA7-4457-428A-ADF7-B14DAA7A21BF} = {03208FA7-4457-428A-ADF7-B14DAA7A21BF} + {B47B12D4-CC57-43B8-9E4C-9B83800A8718} = {B47B12D4-CC57-43B8-9E4C-9B83800A8718} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerUtils", "MPstandbyHandlerUtils\MPstandbyHandlerUtils.csproj", "{03208FA7-4457-428A-ADF7-B14DAA7A21BF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerUser", "MPstandbyHandlerUser\MPstandbyHandlerUser.csproj", "{6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Release|Any CPU.Build.0 = Release|Any CPU + {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Release|Any CPU.Build.0 = Release|Any CPU + {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Release|Any CPU.Build.0 = Release|Any CPU + {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/MPstandbyHandler2.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/MPstandbyHandler2.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MPstandbyHandlerGui/ExternalLogReader.cs =================================================================== --- trunk/plugins/MPstandbyHandlerGui/ExternalLogReader.cs (rev 0) +++ trunk/plugins/MPstandbyHandlerGui/ExternalLogReader.cs 2008-10-25 06:00:43 UTC (rev 2267) @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using MPstandbyHandlerUtils; +using System.Threading; + + +namespace MPstandbyHandlerGui +{ + public class ExternalLogReader + { + + private string logFile; + private StreamReader reader; + private volatile bool stopReading; + private SendMessage sendMessage; + + public delegate void SendMessage(string message); + + + public ExternalLogReader(SendMessage sendMessage, string logFile) + { + if (logFile == null || sendMessage == null) throw new ArgumentException("arguments can't be null"); + this.sendMessage = sendMessage; + this.logFile = logFile; + reader = null; + stopReading = false; + } + + + public void RequestStop() + { + stopReading = true; + } + + + public void Start() + { + string logBasename = Path.GetFileName(logFile); + try + { + reader = new StreamReader(File.Open(logFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); + while (!stopReading) + { + string text = reader.ReadToEnd(); + if (text != null) sendMessage(text); + Thread.Sleep(200); + } + } + catch (ThreadAbortException) + { + // No need to do something here + } + catch (Exception ex) + { + Logger.Warn("Read external log " + logBasename + " - " + ex.Message); + } + finally + { + try + { + if (reader != null) reader.Close(); + } + catch (Exception ex) + { + Logger.Warn("Read external log " + logBasename + " - " + ex.Message); + } + } + } + + } +} Added: trunk/plugins/MPstandbyHandlerGui/Icon.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/MPstandbyHandlerGui/Icon.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MPstandbyHandlerGui/MPstandbyHandlerGui.csproj =================================================================== --- trunk/plugins/MPstandbyHandlerGui/MPstandbyHandlerGui.csproj (rev 0) +++ trunk/plugins/MPstandbyHandlerGui/MPstandbyHandlerGui.csproj 2008-10-25 06:00:43 UTC (rev 2267) @@ -0,0 +1,108 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.30729</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{6D156C82-2ECD-4891-9EDF-A74A321EDC8D}</ProjectGuid> + <OutputType>WinExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MPstandbyHandlerGui</RootNamespace> + <AssemblyName>MPstandbyHandlerGui</AssemblyName> + <ApplicationIcon>Icon.ico</ApplicationIcon> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>2.0</OldToolsVersion> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <TargetFrameworkSubset> + </TargetFrameworkSubset> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.ServiceProcess" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="MainForm.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="MainForm.Designer.cs"> + <DependentUpon>MainForm.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <EmbeddedResource Include="MainForm.resx"> + <SubType>Designer</SubType> + <DependentUpon>MainForm.cs</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + <SubType>Designer</SubType> + </EmbeddedResource> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Resources.resx</DependentUpon> + <DesignTime>True</DesignTime> + </Compile> + <None Include="app.config" /> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <Compile Include="ExternalLogReader.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\MPstandbyHandlerUser\MPstandbyHandlerUser.csproj"> + <Project>{6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}</Project> + <Name>MPstandbyHandlerUser</Name> + </ProjectReference> + <ProjectReference Include="..\MPstandbyHandlerService\MPstandbyHandlerService.csproj"> + <Project>{B47B12D4-CC57-43B8-9E4C-9B83800A8718}</Project> + <Name>MPstandbyHandlerService</Name> + </ProjectReference> + <ProjectReference Include="..\MPstandbyHandlerUtils\MPstandbyHandlerUtils.csproj"> + <Project>{03208FA7-4457-428A-ADF7-B14DAA7A21BF}</Project> + <Name>MPstandbyHandlerUtils</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Content Include="Icon.ico" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/MPstandbyHandlerGui/MainForm.Designer.cs =================================================================== --- trunk/plugins/MPstandbyHandlerGui/MainForm.Designer.cs (rev 0) +++ trunk/plugins/MPstandbyHandlerGui/MainForm.Designer.cs 2008-10-25 06:00:43 UTC (rev 2267) @@ -0,0 +1,894 @@ +namespace MPstandbyHandlerGui +{ + partial class MainForm + { + /// <summary> + /// Erforderliche Designervariable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Verwendete Ressourcen bereinigen. + /// </summary> + /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// <summary> + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.resumeJobListBox = new System.Windows.Forms.ListBox(); + this.resumeDataGridLbl = new System.Windows.Forms.Label(); + this.resumeDataGridView = new System.Windows.Forms.DataGridView(); + this.keyHeader = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.valueHeader = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.resumeJobComboBox = new System.Windows.Forms.ComboBox(); + this.resumeAddBtn = new System.Windows.Forms.Button(); + this.resumeRemoveBtn = new System.Windows.Forms.Button(); + this.resumeDownBtn = new System.Windows.Forms.Button(); + this.resumeUpBtn = new System.Windows.Forms.Button(); + this.okBtn = new System.Windows.Forms.Button(); + this.cancelBtn = new System.Windows.Forms.Button(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.commonTab = new System.Windows.Forms.TabPage(); + this.userAutostartCheckbox = new System.Windows.Forms.CheckBox(); + this.externalCmdOpenDialog = new System.Windows.Forms.Button(); + this.externalCmdTextBox = new System.Windows.Forms.TextBox(); + this.externalCmdLbl = new System.Windows.Forms.Label(); + this.mediaportalExeOpenDialog = new System.Windows.Forms.Button(); + this.mediaportalExeTextBox = new System.Windows.Forms.TextBox(); + this.mediaportalExeLbl = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.resumeTab = new System.Windows.Forms.TabPage(); + this.resumeLbl = new System.Windows.Forms.Label(); + this.suspendTab = new System.Windows.Forms.TabPage(); + this.suspendLbl = new System.Windows.Forms.Label(); + this.suspendDataGridLbl = new System.Windows.Forms.Label(); + this.suspendDataGridView = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.suspendJobListBox = new System.Windows.Forms.ListBox(); + this.suspendJobComboBox = new System.Windows.Forms.ComboBox(); + this.suspendUpBtn = new System.Windows.Forms.Button(); + this.suspendAddBtn = new System.Windows.Forms.Button(); + this.suspendDownBtn = new System.Windows.Forms.Button(); + this.suspendRemoveBtn = new System.Windows.Forms.Button(); + this.serviceLogTab = new System.Windows.Forms.TabPage(); + this.serviceLogFileLbl = new System.Windows.Forms.Label(); + this.clearServiceLogBtn = new System.Windows.Forms.Button(); + this.serviceLogTextBox = new System.Windows.Forms.TextBox(); + this.guiLogTab = new System.Windows.Forms.TabPage(); + this.guiLogFileLbl = new System.Windows.Forms.Label(); + this.guiLogTextBox = new System.Windows.Forms.TextBox(); + this.clearGuiLogBtn = new System.Windows.Forms.Button(); + this.testSuspendBtn = new System.Windows.Forms.Button(); + this.testResumeBtn = new System.Windows.Forms.Button(); + this.aboutTab = new System.Windows.Forms.TabPage(); + this.serviceStatusUpdateBtn = new System.Windows.Forms.Button(); + this.serviceStatusLbl = new System.Windows.Forms.Label(); + this.serviceStatusHeaderLbl = new System.Windows.Forms.Label(); + this.about2Lbl = new System.Windows.Forms.Label(); + this.about1Lbl = new System.Windows.Forms.Label(); + this.userVersionLbl = new System.Windows.Forms.Label(); + this.userVersionHeaderLbl = new System.Windows.Forms.Label(); + this.utilsVersionLbl = new System.Windows.Forms.Label(); + this.serviceVersionLbl = new System.Windows.Forms.Label(); + this.guiVersionLbl = new System.Windows.Forms.Label(); + this.utilsVersionHeaderLbl = new System.Windows.Forms.Label(); + this.serviceVersionHeaderLbl = new System.Windows.Forms.Label(); + this.guiVersionHeaderLbl = new System.Windows.Forms.Label(); + this.splashCheckBox = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.resumeDataGridView)).BeginInit(); + this.tabControl.SuspendLayout(); + this.commonTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.resumeTab.SuspendLayout(); + this.suspendTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.suspendDataGridView)).BeginInit(); + this.serviceLogTab.SuspendLayout(); + this.guiLogTab.SuspendLayout(); + this.aboutTab.SuspendLayout(); + this.SuspendLayout(); + // + // resumeJobListBox + // + this.resumeJobListBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.resumeJobListBox.FormattingEnabled = true; + this.resumeJobListBox.Location = new System.Drawing.Point(15, 16); + this.resumeJobListBox.Name = "resumeJobListBox"; + this.resumeJobListBox.Size = new System.Drawing.Size(235, 212); + this.resumeJobListBox.TabIndex = 0; + this.resumeJobListBox.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); + // + // resumeDataGridLbl + // + this.resumeDataGridLbl.AutoSize = true; + this.resumeDataGridLbl.Location = new System.Drawing.Point(255, 71); + this.resumeDataGridLbl.Name = "resumeDataGridLbl"; + this.resumeDataGridLbl.Size = new System.Drawing.Size(67, 13); + this.resumeDataGridLbl.TabIndex = 6; + this.resumeDataGridLbl.Text = "<Job Name>"; + // + // resumeDataGridView + // + this.resumeDataGridView.AllowUserToAddRows = false; + this.resumeDataGridView.AllowUserToDeleteRows = false; + this.resumeDataGridView.AllowUserToResizeRows = false; + this.resumeDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.resumeDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.resumeDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.resumeDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.keyHeader, + this.valueHeader}); + this.resumeDataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; + this.resumeDataGridView.Location = new System.Drawing.Point(256, 91); + this.resumeDataGridView.MultiSelect = false; + this.resumeDataGridView.Name = "resumeDataGridView"; + this.resumeDataGridView.RowHeadersVisible = false; + this.resumeDataGridView.Size = new System.Drawing.Size(327, 201); + this.resumeDataGridView.TabIndex = 2; + this.resumeDataGridView.Validated += new System.EventHandler(this.dataGrid_Validated); + this.resumeDataGridView.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dataGrid_DataError); + // + // keyHeader + // + this.keyHeader.HeaderText = "Key"; + this.keyHeader.Name = "keyHeader"; + this.keyHeader.ReadOnly = true; + // + // valueHeader + // + this.valueHeader.HeaderText = "Value"; + this.valueHeader.Name = "valueHeader"; + // + // resumeJobComboBox + // + this.resumeJobComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.resumeJobComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.resumeJobComboBox.FormattingEnabled = true; + this.resumeJobComboBox.Location = new System.Drawing.Point(14, 271); + this.resumeJobComboBox.Name = "resumeJobComboBox"; + this.resumeJobComboBox.Size = new System.Drawing.Size(234, 21); + this.resumeJobComboBox.TabIndex = 5; + // + // resumeAddBtn + // + this.resumeAddBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.resumeAddBtn.Location = new System.Drawing.Point(14, 242); + this.resumeAddBtn.Name = "resumeAddBtn"; + this.resumeAddBtn.Size = new System.Drawing.Size(75, 23); + this.resumeAddBtn.TabIndex = 4; + this.resumeAddBtn.Text = "Add"; + this.resumeAddBtn.UseVisualStyleBackColor = true; + this.resumeAddBtn.Click += new System.EventHandler(this.addBtn_Click); + // + // resumeRemoveBtn + // + this.resumeRemoveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.resumeRemoveBtn.Location = new System.Drawing.Point(95, 242); + this.resumeRemoveBtn.Name = "resumeRemoveBtn"; + this.resumeRemoveBtn.Size = new System.Drawing.Size(75, 23); + this.resumeRemoveBtn.TabIndex = 3; + this.resumeRemoveBtn.Text = "Remove"; + this.resumeRemoveBtn.UseVisualStyleBackColor = true; + this.resumeRemoveBtn.Click += new System.EventHandler(this.removeBtn_Click); + // + // resumeDownBtn + // + this.resumeDownBtn.Location = new System.Drawing.Point(255, 45); + this.resumeDownBtn.Name = "resumeDownBtn"; + this.resumeDownBtn.Size = new System.Drawing.Size(75, 23); + this.resumeDownBtn.TabIndex = 2; + this.resumeDownBtn.Text = "Down"; + this.resumeDownBtn.UseVisualStyleBackColor = true; + this.resumeDownBtn.Click += new System.EventHandler(this.downBtn_Click); + // + // resumeUpBtn + // + this.resumeUpBtn.Location = new System.Drawing.Point(255, 16); + this.resumeUpBtn.Name = "resumeUpBtn"; + this.resumeUpBtn.Size = new System.Drawing.Size(75, 23); + this.resumeUpBtn.TabIndex = 1; + this.resumeUpBtn.Text = "Up"; + this.resumeUpBtn.UseVisualStyleBackColor = true; + this.resumeUpBtn.Click += new System.EventHandler(this.upBtn_Click); + // + // okBtn + // + this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okBtn.Location = new System.Drawing.Point(466, 389); + this.okBtn.Name = "okBtn"; + this.okBtn.Size = new System.Drawing.Size(75, 23); + this.okBtn.TabIndex = 2; + this.okBtn.Text = "Ok"; + this.okBtn.UseVisualStyleBackColor = true; + this.okBtn.Click += new System.EventHandler(this.okBtn_Click); + // + // cancelBtn + // + this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelBtn.Location = new System.Drawing.Point(547, 389); + this.cancelBtn.Name = "cancelBtn"; + this.cancelBtn.Size = new System.Drawing.Size(75, 23); + this.cancelBtn.TabIndex = 3; + this.cancelBtn.Text = "Cancel"; + this.cancelBtn.UseVisualStyleBackColor = true; + this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click); + // + // tabControl + // + this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl.Controls.Add(this.commonTab); + this.tabControl.Controls.Add(this.resumeTab); + this.tabControl.Controls.Add(this.suspendTab); + this.tabControl.Controls.Add(this.serviceLogTab); + this.tabControl.Controls.Add(this.guiLogTab); + this.tabControl.Controls.Add(this.aboutTab); + this.tabControl.Location = new System.Drawing.Point(12, 12); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(610, 360); + this.tabControl.TabIndex = 4; + this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged); + // + // commonTab + // + this.commonTab.Controls.Add(this.splashCheckBox); + this.commonTab.Controls.Add(this.userAutostartCheckbox); + this.commonTab.Controls.Add(this.externalCmdOpenDialog); + this.commonTab.Controls.Add(this.externalCmdTextBox); + this.commonTab.Controls.Add(this.externalCmdLbl); + this.commonTab.Controls.Add(this.mediaportalExeOpenDialog); + this.commonTab.Controls.Add(this.mediaportalExeTextBox); + this.commonTab.Controls.Add(this.mediaportalExeLbl); + this.commonTab.Controls.Add(this.pictureBox1); + this.commonTab.Location = new System.Drawing.Point(4, 22); + this.commonTab.Name = "commonTab"; + this.commonTab.Padding = new System.Windows.Forms.Padding(3); + this.commonTab.Size = new System.Drawing.Size(602, 334); + this.commonTab.TabIndex = 2; + this.commonTab.Text = "Common"; + this.commonTab.UseVisualStyleBackColor = true; + // + // userAutostartCheckbox + // + this.userAutostartCheckbox.AutoSize = true; + this.userAutostartCheckbox.Checked = global::MPstandbyHandlerGui.Properties.Settings.Default.AutostartUserspaceExecutable; + this.userAutostartCheckbox.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::MPstandbyHandlerGui.Properties.Settings.Default, "AutostartUserspaceExecutable", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); + this.userAutostartCheckbox.Location = new System.Drawing.Point(10, 102); + this.userAutostartCheckbox.Name = "userAutostartCheckbox"; + this.userAutostartCheckbox.Size = new System.Drawing.Size(178, 17); + this.userAutostartCheckbox.TabIndex = 26; + this.userAutostartCheckbox.Text = "Autostart Userspace Executable"; + this.userAutostartCheckbox.UseVisualStyleBackColor = true; + // + // externalCmdOpenDialog + // + this.externalCmdOpenDialog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.externalCmdOpenDialog.Location = new System.Drawing.Point(416, 62); + this.externalCmdOpenDialog.Name = "externalCmdOpenDialog"; + this.externalCmdOpenDialog.Size = new System.Drawing.Size(33, 23); + this.externalCmdOpenDialog.TabIndex = 14; + this.externalCmdOpenDialog.Text = "..."; + this.externalCmdOpenDialog.UseVisualStyleBackColor = true; + this.externalCmdOpenDialog.Click += new System.EventHandler(this.externalCmdOpenDialog_Click); + // + // externalCmdTextBox + // + this.externalCmdTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.externalCmdTextBox.Location = new System.Drawing.Point(10, 64); + this.externalCmdTextBox.Name = "externalCmdTextBox"; + this.externalCmdTextBox.Size = new System.Drawing.Size(400, 20); + this.externalCmdTextBox.TabIndex = 13; + // + // externalCmdLbl + // + this.externalCmdLbl.AutoSize = true; + this.externalCmdLbl.Location = new System.Drawing.Point(7, 47); + this.externalCmdLbl.Name = "externalCmdLbl"; + this.externalCmdLbl.Size = new System.Drawing.Size(98, 13); + this.externalCmdLbl.TabIndex = 12; + this.externalCmdLbl.Text = "External Command:"; + // + // mediaportalExeOpenDialog + // + this.mediaportalExeOpenDialog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.mediaportalExeOpenDialog.Location = new System.Drawing.Point(416, 22); + this.mediaportalExeOpenDialog.Name = "mediaportalExeOpenDialog"; + this.mediaportalExeOpenDialog.Size = new System.Drawing.Size(33, 23); + this.mediaportalExeOpenDialog.TabIndex = 11; + this.mediaportalExeOpenDialog.Text = "..."; + this.mediaportalExeOpenDialog.UseVisualStyleBackColor = true; + this.mediaportalExeOpenDialog.Click += new System.EventHandler(this.mediaportalExeOpenDialog_Click); + // + // mediaportalExeTextBox + // + this.mediaportalExeTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.mediaportalExeTextBox.Location = new System.Drawing.Point(10, 24); + this.mediaportalExeTextBox.Name = "mediaportalExeTextBox"; + this.mediaportalExeTextBox.Size = new System.Drawing.Size(400, 20); + this.mediaportalExeTextBox.TabIndex = 10; + // + // mediaportalExeLbl + // + this.mediaportalExeLbl.AutoSize = true; + this.mediaportalExeLbl.Location = new System.Drawing.Point(7, 7); + this.mediaportalExeLbl.Name = "mediaportalExeLbl"; + this.mediaportalExeLbl.Size = new System.Drawing.Size(121, 13); + this.mediaportalExeLbl.TabIndex = 9; + this.mediaportalExeLbl.Text = "Mediaportal Executable:"; + // + // pictureBox1 + // + this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(226, 234); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(370, 94); + this.pictureBox1.TabIndex = 8; + this.pictureBox1.TabStop = false; + // + // resumeTab + // + this.resumeTab.Controls.Add(this.resumeLbl); + this.resumeTab.Controls.Add(this.resumeDataGridLbl); + this.resumeTab.Controls.Add(this.resumeDataGridView); + this.resumeTab.Controls.Add(this.resumeJobListBox); + this.resumeTab.Controls.Add(this.resumeJobComboBox); + this.resumeTab.Controls.Add(this.resumeUpBtn); + this.resumeTab.Controls.Add(this.resumeAddBtn); + this.resumeTab.Controls.Add(this.resumeDownBtn); + this.resumeTab.Controls.Add(this.resumeRemoveBtn); + this.resumeTab.Location = new System.Drawing.Point(4, 22); + this.resumeTab.Name = "resumeTab"; + this.resumeTab.Padding = new System.Windows.Forms.Padding(3); + this.resumeTab.Size = new System.Drawing.Size(602, 334); + this.resumeTab.TabIndex = 0; + this.resumeTab.Text = "Resume"; + this.resumeTab.UseVisualStyleBackColor = true; + // + // resumeLbl + // + this.resumeLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.resumeLbl.AutoSize = true; + this.resumeLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.resumeLbl.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.resumeLbl.Location = new System.Drawing.Point(411, 16); + this.resumeLbl.Name = "resumeLbl"; + this.resumeLbl.Size = new System.Drawing.Size(172, 29); + this.resumeLbl.TabIndex = 8; + this.resumeLbl.Text = "Resume Jobs"; + // + // suspendTab + // + this.suspendTab.Controls.Add(this.suspendLbl); + this.suspendTab.Controls.Add(this.suspendDataGridLbl); + this.suspendTab.Controls.Add(this.suspendDataGridView); + this.suspendTab.Controls.Add(this.suspendJobListBox); + this.suspendTab.Controls.Add(this.suspendJobComboBox); + this.suspendTab.Controls.Add(this.suspendUpBtn); + this.suspendTab.Controls.Add(this.suspendAddBtn); + this.suspendTab.Controls.Add(this.suspendDownBtn); + this.suspendTab.Controls.Add(this.suspendRemoveBtn); + this.suspendTab.Location = new System.Drawing.Point(4, 22); + this.suspendTab.Name = "suspendTab"; + this.suspendTab.Padding = new System.Windows.Forms.Padding(3); + this.suspendTab.Size = new System.Drawing.Size(602, 334); + this.suspendTab.TabIndex = 1; + this.suspendTab.Text = "Suspend"; + this.suspendTab.UseVisualStyleBackColor = true; + // + // suspendLbl + // + this.suspendLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.suspendLbl.AutoSize = true; + this.suspendLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.suspendLbl.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.suspendLbl.Location = new System.Drawing.Point(404, 16); + this.suspendLbl.Name = "suspendLbl"; + this.suspendLbl.Size = new System.Drawing.Size(179, 29); + this.suspendLbl.TabIndex = 16; + this.suspendLbl.Text = "Suspend Jobs"; + // + // suspendDataGridLbl + // + this.suspendDataGridLbl.AutoSize = true; + this.suspendDataGridLbl.Location = new System.Drawing.Point(255, 71); + this.suspendDataGridLbl.Name = "suspendDataGridLbl"; + this.suspendDataGridLbl.Size = new System.Drawing.Size(67, 13); + this.suspendDataGridLbl.TabIndex = 15; + this.suspendDataGridLbl.Text = "<Job Name>"; + // + // suspendDataGridView + // + this.suspendDataGridView.AllowUserToAddRows = false; + this.suspendDataGridView.AllowUserToDeleteRows = false; + this.suspendDataGridView.AllowUserToResizeRows = false; + this.suspendDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.suspendDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.suspendDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.suspendDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2}); + this.suspendDataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; + this.suspendDataGridView.Location = new System.Drawing.Point(256, 91); + this.suspendDataGridView.MultiSelect = false; + this.suspendDataGridView.Name = "suspendDataGridView"; + this.suspendDataGridView.RowHeadersVisible = false; + this.suspendDataGridView.Size = new System.Drawing.Size(327, 201); + this.suspendDataGridView.TabIndex = 10; + this.suspendDataGridView.Validated += new System.EventHandler(this.dataGrid_Validated); + this.suspendDataGridView.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dataGrid_DataError); + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.HeaderText = "Key"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "Value"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + // + // suspendJobListBox + // + this.suspendJobListBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.suspendJobListBox.FormattingEnabled = true; + this.suspendJobListBox.Location = new System.Drawing.Point(15, 16); + this.suspendJobListBox.Name = "suspendJobListBox"; + this.suspendJobListBox.Size = new System.Drawing.Size(235, 212); + this.suspendJobListBox.TabIndex = 8; + this.suspendJobListBox.SelectedIndexChanged += new System.EventHandler(this.listBox_SelectedIndexChanged); + // + // suspendJobComboBox + // + this.suspendJobComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.suspendJobComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.suspendJobComboBox.FormattingEnabled = true; + this.suspendJobComboBox.Location = new System.Drawing.Point(14, 271); + this.suspendJobComboBox.Name = "suspendJobComboBox"; + this.suspendJobComboBox.Size = new System.Drawing.Size(234, 21); + this.suspendJobComboBox.TabIndex = 14; + // + // suspendUpBtn + // + this.suspendUpBtn.Location = new System.Drawing.Point(255, 16); + this.suspendUpBtn.Name = "suspendUpBtn"; + this.suspendUpBtn.Size = new System.Drawing.Size(75, 23); + this.suspendUpBtn.TabIndex = 9; + this.suspendUpBtn.Text = "Up"; + this.suspendUpBtn.UseVisualStyleBackColor = true; + this.suspendUpBtn.Click += new System.EventHandler(this.upBtn_Click); + // + // suspendAddBtn + // + this.suspendAddBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.suspendAddBtn.Location = new System.Drawing.Point(14, 242); + this.suspendAddBtn.Name = "suspendAddBtn"; + this.suspendAddBtn.Size = new System.Drawing.Size(75, 23); + this.suspendAddBtn.TabIndex = 13; + this.suspendAddBtn.Text = "Add"; + this.suspendAddBtn.UseVisualStyleBackColor = true; + this.suspendAddBtn.Click += new System.EventHandler(this.addBtn_Click); + // + // suspendDownBtn + // + this.suspendDownBtn.Location = new System.Drawing.Point(255, 45); + this.suspendDownBtn.Name = "suspendDownBtn"; + this.suspendDownBtn.Size = new System.Drawing.Size(75, 23); + this.suspendDownBtn.TabIndex = 11; + this.suspendDownBtn.Text = "Down"; + this.suspendDownBtn.UseVisualStyleBackColor = true; + this.suspendDownBtn.Click += new System.EventHandler(this.downBtn_Click); + // + // suspendRemoveBtn + // + this.suspendRemoveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.suspendRemoveBtn.Location = new System.Drawing.Point(95, 242); + this.suspendRemoveBtn.Name = "suspendRemoveBtn"; + this.suspendRemoveBtn.Size = new System.Drawing.Size(75, 23); + this.suspendRemoveBtn.TabIndex = 12; + this.suspendRemoveBtn.Text = "Remove"; + this.suspendRemoveBtn.UseVisualStyleBackColor = true; + this.suspendRemoveBtn.Click += new System.EventHandler(this.removeBtn_Click); + // + // serviceLogTab + // + this.serviceLogTab.Controls.Add(this.se... [truncated message content] |
From: <jos...@us...> - 2008-10-25 06:02:33
|
Revision: 2268 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2268&view=rev Author: josch-hh Date: 2008-10-25 06:02:29 +0000 (Sat, 25 Oct 2008) Log Message: ----------- Removed Paths: ------------- trunk/plugins/Icon.ico trunk/plugins/MPstandbyHandler2.sln trunk/plugins/MPstandbyHandler2.suo trunk/plugins/MPstandbyHandlerGui/ trunk/plugins/MPstandbyHandlerService/ trunk/plugins/MPstandbyHandlerUser/ trunk/plugins/MPstandbyHandlerUtils/ trunk/plugins/mp_logo.png Deleted: trunk/plugins/Icon.ico =================================================================== (Binary files differ) Deleted: trunk/plugins/MPstandbyHandler2.sln =================================================================== --- trunk/plugins/MPstandbyHandler2.sln 2008-10-25 06:00:43 UTC (rev 2267) +++ trunk/plugins/MPstandbyHandler2.sln 2008-10-25 06:02:29 UTC (rev 2268) @@ -1,45 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C# Express 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerService", "MPstandbyHandlerService\MPstandbyHandlerService.csproj", "{B47B12D4-CC57-43B8-9E4C-9B83800A8718}" - ProjectSection(ProjectDependencies) = postProject - {03208FA7-4457-428A-ADF7-B14DAA7A21BF} = {03208FA7-4457-428A-ADF7-B14DAA7A21BF} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerGui", "MPstandbyHandlerGui\MPstandbyHandlerGui.csproj", "{6D156C82-2ECD-4891-9EDF-A74A321EDC8D}" - ProjectSection(ProjectDependencies) = postProject - {03208FA7-4457-428A-ADF7-B14DAA7A21BF} = {03208FA7-4457-428A-ADF7-B14DAA7A21BF} - {B47B12D4-CC57-43B8-9E4C-9B83800A8718} = {B47B12D4-CC57-43B8-9E4C-9B83800A8718} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerUtils", "MPstandbyHandlerUtils\MPstandbyHandlerUtils.csproj", "{03208FA7-4457-428A-ADF7-B14DAA7A21BF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPstandbyHandlerUser", "MPstandbyHandlerUser\MPstandbyHandlerUser.csproj", "{6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B47B12D4-CC57-43B8-9E4C-9B83800A8718}.Release|Any CPU.Build.0 = Release|Any CPU - {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D156C82-2ECD-4891-9EDF-A74A321EDC8D}.Release|Any CPU.Build.0 = Release|Any CPU - {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03208FA7-4457-428A-ADF7-B14DAA7A21BF}.Release|Any CPU.Build.0 = Release|Any CPU - {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6CFC8FE7-3879-49AF-B00D-DC14D218AEB0}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal Deleted: trunk/plugins/MPstandbyHandler2.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/mp_logo.png =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jos...@us...> - 2008-10-25 15:18:43
|
Revision: 2272 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2272&view=rev Author: josch-hh Date: 2008-10-25 15:18:31 +0000 (Sat, 25 Oct 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/MPstandbyHandler2/ Removed Paths: ------------- trunk/plugins/MPstandbyHandler/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kro...@us...> - 2008-11-07 08:47:25
|
Revision: 2301 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2301&view=rev Author: kroko_koenig Date: 2008-11-07 08:47:15 +0000 (Fri, 07 Nov 2008) Log Message: ----------- new Version Added Paths: ----------- trunk/plugins/Release/ trunk/plugins/Release/ConfigDir/ trunk/plugins/Release/ConfigDir/TeamMediaPortal/ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/StarFM N?\195?\188rnberg.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SunshineLive.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Techno4ever.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/The Revolution.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/bigFM.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/chillout.pls trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/delta radio.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/errorFMch1.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/errorFMch2.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/expresradio.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/fip.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/gong fm.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/radio hagen.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/rautemusikfm.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/rockantenne.xml trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/tophits.pls trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Record/ trunk/plugins/Release/Mediapartal/ trunk/plugins/Release/Mediapartal/Plugins/ trunk/plugins/Release/Mediapartal/Plugins/Windows/ trunk/plugins/Release/Mediapartal/Plugins/Windows/MyStreamRadio.dll trunk/plugins/Release/Mediapartal/Skin/ trunk/plugins/Release/Mediapartal/Skin/BlueTwo wide/ trunk/plugins/Release/Mediapartal/Skin/BlueTwo wide/mystreamradio.xml trunk/plugins/Release/Mediapartal/bassenc.dll trunk/plugins/Release/Mediapartal/lame.exe trunk/plugins/Source/ trunk/plugins/Source/MyStreamRadio/ trunk/plugins/Source/MyStreamRadio/GUIRadio.cs trunk/plugins/Source/MyStreamRadio/GUIRadioGuide.cs trunk/plugins/Source/MyStreamRadio/GUIRadioGuideBase.cs trunk/plugins/Source/MyStreamRadio/GetRSS.cs trunk/plugins/Source/MyStreamRadio/MyStreamRadio.csproj trunk/plugins/Source/MyStreamRadio/MyStreamRadio.csproj.user trunk/plugins/Source/MyStreamRadio/Parser.cs trunk/plugins/Source/MyStreamRadio/Properties/ trunk/plugins/Source/MyStreamRadio/Properties/AssemblyInfo.cs trunk/plugins/Source/MyStreamRadio/Properties/Resources.Designer.cs trunk/plugins/Source/MyStreamRadio/Properties/Resources.resx trunk/plugins/Source/MyStreamRadio/Request.cs trunk/plugins/Source/MyStreamRadio/Station.cs trunk/plugins/Source/MyStreamRadio/StreamRadio.png trunk/plugins/Source/MyStreamRadio/StreamRadioDisabled.png trunk/plugins/Source/MyStreamRadio/bin/ trunk/plugins/Source/MyStreamRadio/frmSetup.Designer.cs trunk/plugins/Source/MyStreamRadio/frmSetup.cs trunk/plugins/Source/MyStreamRadio/frmSetup.resx trunk/plugins/Source/MyStreamRadio/obj/ trunk/plugins/Source/MyStreamRadio.sln trunk/plugins/Source/MyStreamRadio.suo trunk/plugins/parser.txt Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>104.6 RTL Hit-Radio</name> + <short>104.6</short> + <description>Berlins Hit-Radio</description> + <homepage>http://104.6rtl.com/</homepage> + <position>0</position> + <logo>1046 RTL Hit-Radio.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=rtl1046$rtllive.wma&content=live&media=ms&token=cf4744cb20a7c9b11b05b07dfd352c03</url> +</stream> + + <parser> + <method>2</method> + <get>http://104.6rtl.com/iplaylist/getsong.xml</get> + <search></search> + <offset></offset> + <start>interpret="</start> + <start2>titel="</start2> + <stop>"</stop> + <devider></devider> + <image>imgname="</image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>106!8</name> + <short>106!8</short> + <description>rock 'n pop</description> + <homepage>http://www.106acht.de</homepage> + <position>0</position> + <logo>106!8.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://62.75.132.19:80</url> + </stream> + + <parser> + <method>3</method> + <get>http://alsterradio.de/alsterradioApplet/OG2WEBurlencoded.php</get> + <search></search> + <offset></offset> + <start>titel1=</start> + <start2>interpret1=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>1067 Rockklassiker</name> + <short>1067 Rock</short> + <description>Alla tiders bästa rock!</description> + <homepage>http://www.rockklassiker.se</homepage> + <position>0</position> + <logo>1067 Rockklassiker.png</logo> + <bouquet>Swedish</bouquet> + <category>Mixed</category> + <language>Swedish</language> + <country>se</country> + <quality>Good</quality> + </station> + + <stream> + <url>mms://streaming.sbsradio.se/03872_Rockklassiker_high</url> + </stream> + + <parser> + <method>0</method> + <get>http://www.rockklassiker.se/wpc/TuneTracker/Track.aspx?station=rockklassiker</get> + <search>hidden</search> + <offset>12</offset> + <start><B></start> + <start2></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>yes</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>1Live</name> + <short>1Live</short> + <description>Das Jugendprogramm des Westdeutschen Rundfunks</description> + <homepage>http://www.einslive.de</homepage> + <position>0</position> + <logo>1Live.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://gffstream.ic.llnwd.net/stream/gffstream_stream_wdr_einslive_a</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.einslive.de</get> + <search></search> + <offset></offset> + <start>Interpret</th><td class="wsELPink"></start> + <start2>Titel</th><td><strong></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Antenne Thueringen</name> + <short>Ant.Thuer</short> + <description>Wir... spielen die Hits</description> + <homepage>http://www.antennethueringen.de</homepage> + <position>0</position> + <logo>Antenne Thueringen.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=antennethuer/antennestream.wma&content=live&media=ms&token=43c9d3623d68f9e1d03379081efe94c4</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.antennethueringen.de/titel/at_titel.txt2</get> + <search></search> + <offset></offset> + <start>a2=</start> + <start2>a1=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>yes</swap> + </parser> + + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Antenne Bayern</name> + <short>Raute</short> + <description>100% Pure Rock</description> + <homepage>http://webradio.antenne.de/</homepage> + <position>0</position> + <logo>RockAntenne.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.antenne.de/webradio/antenne.wmx</url> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap></swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Bremen vier</name> + <short>Bremen4</short> + <description>rocken, poppen, dancen</description> + <homepage>http://www.radiobremen.de/bremenvier</homepage> + <position>0</position> + <logo>Bremen4.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w49a</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.radiobremen.de/bremenvier +</get> + <search>"Sendung"</search> + <offset>18</offset> + <start></start> + <start2></start2> + <stop></a</stop> + <devider>:<br /></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>EBM Radio</name> + <short>EBM</short> + <description>strange music 4 strange people</description> + <homepage>http://www.ebm-radio.de</homepage> + <position>5</position> + <logo>EBM Radio.png</logo> + <bouquet>English</bouquet> + <category>Indy</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://ebmradio.org:8050</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.ebm-radio.de/scripts/latest_tracks/scxml.php</get> + <search>Aktueller Track</search> + <offset>7</offset> + <start></start> + <start2></start2> + <stop></stop> + <devider>-</devider> + <image></image> + <swap></swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Energy HH</name> + <short>Energy HH</short> + <description>Hit music only</description> + <homepage>http://www.energy.de</homepage> + <position>3</position> + <logo>Energy HH.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://nrj.project-fx.de/play.wma?radio=NRJ_HAMBURG</url> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>FFN</name> + <short>FFN</short> + <description>du bist Niedersachsen</description> + <homepage>http://www.ffn.de</homepage> + <position>0</position> + <logo>FFN.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.stream24.org/listento/r2526.asx</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.ffn.de/nowPlaying.php?r=123456</get> + <search>webradio</search> + <offset>2</offset> + <start>&interpret=</start> + <start2>&titel=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>FM4</name> + <short>FM4</short> + <description>FM4 Live</description> + <homepage>http://www.fm4.orf.at</homepage> + <position>0</position> + <logo>fm4.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>at</country> + <quality>Good</quality> + </station> + + <stream> + <url>mms://streamy.orf.at/fm4_live</url> + </stream> + + <parser> + <method>2</method> + <get>http://hop.orf.at/img-trackservice/fm4.html</get> + <search></search> + <offset></offset> + <start>span class="tracktitle"></start> + <start2>span class="artist"></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>HR3</name> + <short>HR3</short> + <description>voll im Leben</description> + <homepage>http://www.hr-online.de/website/radio/hr3/</homepage> + <position>0</position> + <logo>HR3.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://hr.streamfarm.net/cms/_vm100/radio/live/hr3_cms.asx</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.hr-online.de/website/tools/playlist/flashdata/hr3neu.txt</get> + <search></search> + <offset></offset> + <start>: </start> + <start2>-</start2> + <stop>-</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Hitradio RTL</name> + <short>Hit RTL</short> + <description>Die groessten Hits aller Zeiten</description> + <homepage>http://www.hitradio-rtl-sachsen.de</homepage> + <position>0</position> + <logo>Hitradio RTL.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=antennesax/livestream02.wma&content=live&media=ms</url> + <token>antennesax/livestream02.wma</token> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>KissFM</name> + <short>KissFM</short> + <description>KISS FM Liveradio</description> + <homepage>http://www.kissfm.de</homepage> + <position>0</position> + <logo>KissFM.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=kissfm$livestream.wma&content=live&media=ms</url> + <token>kissfm$livestream.wma</token> + </stream> + + <parser> + <method>4</method> + <get>http://www.kissfm.de/cgi-bin/WebObjects/XMLPlaylistServer.woa/wa/exportPlaylistAsXML?client=KissFM</get> + <search></search> + <offset></offset> + <start>playlist/entry/song/</start> + <start2>playlist/entry/artist/</start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>MDR Jump</name> + <short>MDR Jump</short> + <description>MDR Jump Liveradio</description> + <homepage>http://www.jumpradio.de</homepage> + <position>0</position> + <logo>MDR Jump.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://mdr.streamfarm.net/cms/_v/radios/mdr/live/jump/mp3.asx</url> + </stream> + + <parser> + <method>4</method> + <get>http://www.jumpradio.de/navi/onair.xml</get> + <search></search> + <offset></offset> + <start>onair/titel/</start> + <start2>onair/interpret/</start2> + <stop></stop> + <devider></devider> + <image>onair/image/</image> + <imageUrl>http://www.jumpradio.de/musik/pics-interpret/</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>N-Joy</name> + <short>N-Joy</short> + <description>enjoy the music</description> + <homepage>http://www.n-joy.de</homepage> + <position>2</position> + <logo>N-Joy.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.nacamar.net/bb/redirect.lsc?content=live&media=mp3&stream=ndr/n-joy.mp3</url> +</stream> + + <parser> + <method>1</method> + <get>http://www.n-joy.de</get> + <search>alt="N-JOY Playlist"</search> + <offset>1</offset> + <start>Playlist"></start> + <start2></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <title></title> + <interpret></interpret> + <swap>yes</swap> + + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>NDR2</name> + <short>NDR2</short> + <description>NDR2 Livemusic</description> + <homepage>http://www.ndr2.de</homepage> + <position>4</position> + <logo>NDR2.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?content=live&media=ms&stream=ndr/live/ndr2.wma</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.ndr2.de</get> + <search>boxtext">Jetzt h</search> + <offset>1</offset> + <start><strong></start> + <start2><strong></start2> + <stop><</stop> + <devider>: </devider> + <image></image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>PSR</name> + <short>PSR</short> + <description>Der Supermix für Sachsen</description> + <homepage>http://www.radiopsr.de</homepage> + <position>0</position> + <logo>psr.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radio-psr$livestream.wma&content=live&media=ms</url> + <token>radio-psr/livestream.wma</token> + </stream> + + <parser> + <method>4</method> + <get>http://www.radiopsr.de/playingnow.xml</get> + <search></search> + <offset>0</offset> + <start>teaser/item/title/</start> + <start2>teaser/item/teaser/</start2> + <stop></stop> + <devider></devider> + <image>teaser/item/asset/</image> + <imageUrl>http://www.radiopsr.de/</imageUrl> + <swap>yes</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RMNradio</name> + <short>RMN</short> + <description>Das Internetradio</description> + <homepage>http://www.rmnradio.de</homepage> + <position>0</position> + <logo>RMNradio.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://rmnradio.powerstream.de:8022</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.rmnradio.de/streaminfo.php?pop=1&ch=1</get> + <search></search> + <offset>0</offset> + <start>bold;"></start> + <start2>11px;"></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RMNrelax</name> + <short>RMN Relax</short> + <description>Your relaxed chillout radiostation</description> + <homepage>http://www.rmnrelax.de/</homepage> + <position>0</position> + <logo>RMNrelax.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://server.rmnrelax.de:80</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.rmnradio.de/streaminfo.php?pop=1&ch=2</get> + <search></search> + <offset>0</offset> + <start>bold;"></start> + <start2>11px;"></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>PRP1</name> + <short>PRP1</short> + <description>Die Superhits im Megamix</description> + <homepage>http://www.rpr1.de/de</homepage> + <position>0</position> + <logo>RPR1.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.rpr1.de/ext/stream/stream.6.asx</url> + </stream> + + <parser> + <method>4</method> + <get>http://www.rpr1.de/ext/stream/xml/titel.6.xml</get> + <search></search> + <offset></offset> + <start>titelinfos/titel/</start> + <start2>titelinfos/interpret/</start2> + <stop></stop> + <devider></devider> + <image>titelinfos/image/</image> + <imageUrl>http://www.rpr1.de/ext/stream/titelbilder/</imageUrl> + <swap>no</swap> + </parser> +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RSH</name> + <short>RSH</short> + <description>Mehr Hits, mehr Abwechslung, mehr Schleswig-Holstein</description> + <homepage>http://www.rsh.de</homepage> + <position>0</position> + <logo>RSH.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=rsh/live.wma&content=live&media=ms</url> + <token>rsh/live.wma</token> +</stream> + + <parser> + <method>3</method> + <get>http://www.rsh.de/rshweb/components/flash/Hafenrundfahrt.php</get> + <search></search> + <offset></offset> + <start>#titel=</start> + <start2>#interpret=</start2> + <stop>#</stop> + <devider></devider> + <image>#image_var=</image> + <imageUrl>http://www.rsh.de</imageUrl> + <swap>no</swap> +</parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Hamburg</name> + <short>RHH</short> + <description>auf 103.6 - der Mix macht's</description> + <homepage>http://www.radiohamburg.de</homepage> + <position>1</position> + <logo>Radio Hamburg.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radiohamburg/livestream.wma&content=live&media=ms&token=abdad4c2b32875c130d890116a2c2b1d</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.radiohamburg.de</get> + <search>nobg datler</search> + <offset>1</offset> + <start> </start> + <start2></start2> + <stop></stop> + <devider><br /></devider> + <image>src="</image> + <imageUrl>http://www.radiohamburg.de</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Koeln</name> + <short>Koeln</short> + <description>107,1 - 100% die beste Musik - 100% von hier</description> + <homepage>http://www.radiokoeln.de</homepage> + <position>0</position> + <logo>rkoeln.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&content=live&media=ms&stream=radiokoeln/livestream.wma</url> + <token>radiokoeln/livestream.wma</token> + </stream> + + <parser> + <method>1</method> + <get>http://radiokoeln.de/koeln/rk</get> + <search>Aktuelle Playlist</search> + <offset>0</offset> + <start>div><b></start> + <start2></start2> + <stop><br/></td></stop> + <devider></b><br/></devider> + <image></image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Mi Amigo</name> + <short>Mi Amigo</short> + <description>Schlagersender</description> + <homepage>http://www.radiomiamigo.es/schlager.html</homepage> + <position>0</position> + <logo>Radio Mi Amigo.png</logo> + <bouquet>German</bouquet> + <category>Schlager</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://87.118.64.215:8110</url> + +</stream> + + <parser> + <method>2</method> + <get>http://87.118.64.215:8110/index.html</get> + <search>Song:</search> + <offset>0</offset> + <start>Song: </font></td><td><font class=default><b></start> + <start2></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <swap>no</swap> +</parser> + +</profile> \ No newline at end of file Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Regenbogen</name> + <short>Regenb</short> + <description>Wir sind von Hier</description> + <homepage>http://www.regenbogenweb.de</homepage> + <position>0</position> + <logo>Radio Regenbogen.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=regenbogenweb/livestream.wma&content=live&media=ms</url> + <token>regenbogenweb/livestream.wma</token> + </stream> + + <parser> + <method>1</method> + <get>http://www.regenbogenweb.de</get> + <search>interpret</search> + <offset>0</offset> + <start>interpret"></start> + <start2></start2> + <stop></p></stop> + <devider></span><br /></devider> + <image>img src="</image> + <imageUrl>http://www.regenbogenweb.de</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio SAW</name> + <short>SAW</short> + <description>Superhits für Sachsen-Anhalt</description> + <homepage>http://www.radiosaw.de</homepage> + <position>5</position> + <logo>Radio SAW.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radiosaw/livestream.wma&content=live&media=ms&token=49328c4d85e7e2533d3e2499e9a4eef6</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.radiosaw.de/aktuellertitel/akttitelsaw_fuerflash.txt</get> + <search></search> + <offset></offset> + <start>titel=</start> + <start2>interpret=</start2> + <stop>&</stop> + <devider></devider> + <image>bildurl=</image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml =================================================================== --- trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml (rev 0) +++ trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml 2008-11-07 08:47:15 UTC (rev 2301) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>SWR3</name> + <short>SWR3</short> + <description>Der Elch im Netz</description> + <homepage>http://www.swr3.de</homepage> + <position>0</position> + <logo>swr3.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?stream=swr3/livestream.wma&content=live&media=ms</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.swr3.de/musik/webradio</get> + <search>coverrahmen_l.gif</search> + <offset>1</offset> + <start>title="</start> + <start2></start2> + <stop>"</stop> + <devider> - </devider> + <image>img src="</image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/StarFM N?\195?\188rnberg.xml =================================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kro...@us...> - 2008-11-07 08:59:09
|
Revision: 2303 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2303&view=rev Author: kroko_koenig Date: 2008-11-07 08:58:57 +0000 (Fri, 07 Nov 2008) Log Message: ----------- new version Added Paths: ----------- trunk/plugins/MyStreamradioV2/ trunk/plugins/MyStreamradioV2/Release/ trunk/plugins/MyStreamradioV2/Release/ConfigDir/ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/StarFM N?\195?\188rnberg.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SunshineLive.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Techno4ever.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/The Revolution.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/bigFM.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/chillout.pls trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/delta radio.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/errorFMch1.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/errorFMch2.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/expresradio.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/fip.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/gong fm.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/radio hagen.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/rautemusikfm.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/rockantenne.xml trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/tophits.pls trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Record/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/Plugins/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/Plugins/Windows/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/Plugins/Windows/MyStreamRadio.dll trunk/plugins/MyStreamradioV2/Release/Mediapartal/Skin/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/Skin/BlueTwo wide/ trunk/plugins/MyStreamradioV2/Release/Mediapartal/Skin/BlueTwo wide/mystreamradio.xml trunk/plugins/MyStreamradioV2/Release/Mediapartal/bassenc.dll trunk/plugins/MyStreamradioV2/Release/Mediapartal/lame.exe trunk/plugins/MyStreamradioV2/Source/ trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/ trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/GUIRadio.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/GUIRadioGuide.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/GUIRadioGuideBase.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/GetRSS.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/MyStreamRadio.csproj trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/MyStreamRadio.csproj.user trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Parser.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Properties/ trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Properties/AssemblyInfo.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Properties/Resources.Designer.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Properties/Resources.resx trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Request.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/Station.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/StreamRadio.png trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/StreamRadioDisabled.png trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/bin/ trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/frmSetup.Designer.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/frmSetup.cs trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/frmSetup.resx trunk/plugins/MyStreamradioV2/Source/MyStreamRadio/obj/ trunk/plugins/MyStreamradioV2/Source/MyStreamRadio.sln trunk/plugins/MyStreamradioV2/Source/MyStreamRadio.suo trunk/plugins/MyStreamradioV2/parser.txt Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1046 RTL Hit-Radio.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>104.6 RTL Hit-Radio</name> + <short>104.6</short> + <description>Berlins Hit-Radio</description> + <homepage>http://104.6rtl.com/</homepage> + <position>0</position> + <logo>1046 RTL Hit-Radio.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=rtl1046$rtllive.wma&content=live&media=ms&token=cf4744cb20a7c9b11b05b07dfd352c03</url> +</stream> + + <parser> + <method>2</method> + <get>http://104.6rtl.com/iplaylist/getsong.xml</get> + <search></search> + <offset></offset> + <start>interpret="</start> + <start2>titel="</start2> + <stop>"</stop> + <devider></devider> + <image>imgname="</image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/106!8.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>106!8</name> + <short>106!8</short> + <description>rock 'n pop</description> + <homepage>http://www.106acht.de</homepage> + <position>0</position> + <logo>106!8.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://62.75.132.19:80</url> + </stream> + + <parser> + <method>3</method> + <get>http://alsterradio.de/alsterradioApplet/OG2WEBurlencoded.php</get> + <search></search> + <offset></offset> + <start>titel1=</start> + <start2>interpret1=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1067 Rockklassiker.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>1067 Rockklassiker</name> + <short>1067 Rock</short> + <description>Alla tiders bästa rock!</description> + <homepage>http://www.rockklassiker.se</homepage> + <position>0</position> + <logo>1067 Rockklassiker.png</logo> + <bouquet>Swedish</bouquet> + <category>Mixed</category> + <language>Swedish</language> + <country>se</country> + <quality>Good</quality> + </station> + + <stream> + <url>mms://streaming.sbsradio.se/03872_Rockklassiker_high</url> + </stream> + + <parser> + <method>0</method> + <get>http://www.rockklassiker.se/wpc/TuneTracker/Track.aspx?station=rockklassiker</get> + <search>hidden</search> + <offset>12</offset> + <start><B></start> + <start2></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>yes</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/1Live.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>1Live</name> + <short>1Live</short> + <description>Das Jugendprogramm des Westdeutschen Rundfunks</description> + <homepage>http://www.einslive.de</homepage> + <position>0</position> + <logo>1Live.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://gffstream.ic.llnwd.net/stream/gffstream_stream_wdr_einslive_a</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.einslive.de</get> + <search></search> + <offset></offset> + <start>Interpret</th><td class="wsELPink"></start> + <start2>Titel</th><td><strong></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Antenne Thueringen.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Antenne Thueringen</name> + <short>Ant.Thuer</short> + <description>Wir... spielen die Hits</description> + <homepage>http://www.antennethueringen.de</homepage> + <position>0</position> + <logo>Antenne Thueringen.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=antennethuer/antennestream.wma&content=live&media=ms&token=43c9d3623d68f9e1d03379081efe94c4</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.antennethueringen.de/titel/at_titel.txt2</get> + <search></search> + <offset></offset> + <start>a2=</start> + <start2>a1=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>yes</swap> + </parser> + + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/AntenneBayern.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Antenne Bayern</name> + <short>Raute</short> + <description>100% Pure Rock</description> + <homepage>http://webradio.antenne.de/</homepage> + <position>0</position> + <logo>RockAntenne.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.antenne.de/webradio/antenne.wmx</url> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap></swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Bremen4.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Bremen vier</name> + <short>Bremen4</short> + <description>rocken, poppen, dancen</description> + <homepage>http://www.radiobremen.de/bremenvier</homepage> + <position>0</position> + <logo>Bremen4.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w49a</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.radiobremen.de/bremenvier +</get> + <search>"Sendung"</search> + <offset>18</offset> + <start></start> + <start2></start2> + <stop></a</stop> + <devider>:<br /></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/EBM Radio.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>EBM Radio</name> + <short>EBM</short> + <description>strange music 4 strange people</description> + <homepage>http://www.ebm-radio.de</homepage> + <position>5</position> + <logo>EBM Radio.png</logo> + <bouquet>English</bouquet> + <category>Indy</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://ebmradio.org:8050</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.ebm-radio.de/scripts/latest_tracks/scxml.php</get> + <search>Aktueller Track</search> + <offset>7</offset> + <start></start> + <start2></start2> + <stop></stop> + <devider>-</devider> + <image></image> + <swap></swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Energy HH.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Energy HH</name> + <short>Energy HH</short> + <description>Hit music only</description> + <homepage>http://www.energy.de</homepage> + <position>3</position> + <logo>Energy HH.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://nrj.project-fx.de/play.wma?radio=NRJ_HAMBURG</url> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FFN.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>FFN</name> + <short>FFN</short> + <description>du bist Niedersachsen</description> + <homepage>http://www.ffn.de</homepage> + <position>0</position> + <logo>FFN.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.stream24.org/listento/r2526.asx</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.ffn.de/nowPlaying.php?r=123456</get> + <search>webradio</search> + <offset>2</offset> + <start>&interpret=</start> + <start2>&titel=</start2> + <stop>&</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/FM4.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>FM4</name> + <short>FM4</short> + <description>FM4 Live</description> + <homepage>http://www.fm4.orf.at</homepage> + <position>0</position> + <logo>fm4.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>at</country> + <quality>Good</quality> + </station> + + <stream> + <url>mms://streamy.orf.at/fm4_live</url> + </stream> + + <parser> + <method>2</method> + <get>http://hop.orf.at/img-trackservice/fm4.html</get> + <search></search> + <offset></offset> + <start>span class="tracktitle"></start> + <start2>span class="artist"></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/HR3.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>HR3</name> + <short>HR3</short> + <description>voll im Leben</description> + <homepage>http://www.hr-online.de/website/radio/hr3/</homepage> + <position>0</position> + <logo>HR3.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://hr.streamfarm.net/cms/_vm100/radio/live/hr3_cms.asx</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.hr-online.de/website/tools/playlist/flashdata/hr3neu.txt</get> + <search></search> + <offset></offset> + <start>: </start> + <start2>-</start2> + <stop>-</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Hitradio RTL.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Hitradio RTL</name> + <short>Hit RTL</short> + <description>Die groessten Hits aller Zeiten</description> + <homepage>http://www.hitradio-rtl-sachsen.de</homepage> + <position>0</position> + <logo>Hitradio RTL.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=antennesax/livestream02.wma&content=live&media=ms</url> + <token>antennesax/livestream02.wma</token> + </stream> + + <parser> + <method>0</method> + <get></get> + <search></search> + <offset></offset> + <start></start> + <start2></start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/KissFM.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>KissFM</name> + <short>KissFM</short> + <description>KISS FM Liveradio</description> + <homepage>http://www.kissfm.de</homepage> + <position>0</position> + <logo>KissFM.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=kissfm$livestream.wma&content=live&media=ms</url> + <token>kissfm$livestream.wma</token> + </stream> + + <parser> + <method>4</method> + <get>http://www.kissfm.de/cgi-bin/WebObjects/XMLPlaylistServer.woa/wa/exportPlaylistAsXML?client=KissFM</get> + <search></search> + <offset></offset> + <start>playlist/entry/song/</start> + <start2>playlist/entry/artist/</start2> + <stop></stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/MDR Jump.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>MDR Jump</name> + <short>MDR Jump</short> + <description>MDR Jump Liveradio</description> + <homepage>http://www.jumpradio.de</homepage> + <position>0</position> + <logo>MDR Jump.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://mdr.streamfarm.net/cms/_v/radios/mdr/live/jump/mp3.asx</url> + </stream> + + <parser> + <method>4</method> + <get>http://www.jumpradio.de/navi/onair.xml</get> + <search></search> + <offset></offset> + <start>onair/titel/</start> + <start2>onair/interpret/</start2> + <stop></stop> + <devider></devider> + <image>onair/image/</image> + <imageUrl>http://www.jumpradio.de/musik/pics-interpret/</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/N-Joy.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>N-Joy</name> + <short>N-Joy</short> + <description>enjoy the music</description> + <homepage>http://www.n-joy.de</homepage> + <position>2</position> + <logo>N-Joy.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.nacamar.net/bb/redirect.lsc?content=live&media=mp3&stream=ndr/n-joy.mp3</url> +</stream> + + <parser> + <method>1</method> + <get>http://www.n-joy.de</get> + <search>alt="N-JOY Playlist"</search> + <offset>1</offset> + <start>Playlist"></start> + <start2></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <title></title> + <interpret></interpret> + <swap>yes</swap> + + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/NDR2.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>NDR2</name> + <short>NDR2</short> + <description>NDR2 Livemusic</description> + <homepage>http://www.ndr2.de</homepage> + <position>4</position> + <logo>NDR2.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?content=live&media=ms&stream=ndr/live/ndr2.wma</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.ndr2.de</get> + <search>boxtext">Jetzt h</search> + <offset>1</offset> + <start><strong></start> + <start2><strong></start2> + <stop><</stop> + <devider>: </devider> + <image></image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/PSR.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>PSR</name> + <short>PSR</short> + <description>Der Supermix für Sachsen</description> + <homepage>http://www.radiopsr.de</homepage> + <position>0</position> + <logo>psr.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radio-psr$livestream.wma&content=live&media=ms</url> + <token>radio-psr/livestream.wma</token> + </stream> + + <parser> + <method>4</method> + <get>http://www.radiopsr.de/playingnow.xml</get> + <search></search> + <offset>0</offset> + <start>teaser/item/title/</start> + <start2>teaser/item/teaser/</start2> + <stop></stop> + <devider></devider> + <image>teaser/item/asset/</image> + <imageUrl>http://www.radiopsr.de/</imageUrl> + <swap>yes</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNradio.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RMNradio</name> + <short>RMN</short> + <description>Das Internetradio</description> + <homepage>http://www.rmnradio.de</homepage> + <position>0</position> + <logo>RMNradio.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://rmnradio.powerstream.de:8022</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.rmnradio.de/streaminfo.php?pop=1&ch=1</get> + <search></search> + <offset>0</offset> + <start>bold;"></start> + <start2>11px;"></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RMNrelax.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RMNrelax</name> + <short>RMN Relax</short> + <description>Your relaxed chillout radiostation</description> + <homepage>http://www.rmnrelax.de/</homepage> + <position>0</position> + <logo>RMNrelax.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://server.rmnrelax.de:80</url> + </stream> + + <parser> + <method>2</method> + <get>http://www.rmnradio.de/streaminfo.php?pop=1&ch=2</get> + <search></search> + <offset>0</offset> + <start>bold;"></start> + <start2>11px;"></start2> + <stop><</stop> + <devider></devider> + <image></image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RPR1.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>PRP1</name> + <short>PRP1</short> + <description>Die Superhits im Megamix</description> + <homepage>http://www.rpr1.de/de</homepage> + <position>0</position> + <logo>RPR1.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://www.rpr1.de/ext/stream/stream.6.asx</url> + </stream> + + <parser> + <method>4</method> + <get>http://www.rpr1.de/ext/stream/xml/titel.6.xml</get> + <search></search> + <offset></offset> + <start>titelinfos/titel/</start> + <start2>titelinfos/interpret/</start2> + <stop></stop> + <devider></devider> + <image>titelinfos/image/</image> + <imageUrl>http://www.rpr1.de/ext/stream/titelbilder/</imageUrl> + <swap>no</swap> + </parser> +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/RSH.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>RSH</name> + <short>RSH</short> + <description>Mehr Hits, mehr Abwechslung, mehr Schleswig-Holstein</description> + <homepage>http://www.rsh.de</homepage> + <position>0</position> + <logo>RSH.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=rsh/live.wma&content=live&media=ms</url> + <token>rsh/live.wma</token> +</stream> + + <parser> + <method>3</method> + <get>http://www.rsh.de/rshweb/components/flash/Hafenrundfahrt.php</get> + <search></search> + <offset></offset> + <start>#titel=</start> + <start2>#interpret=</start2> + <stop>#</stop> + <devider></devider> + <image>#image_var=</image> + <imageUrl>http://www.rsh.de</imageUrl> + <swap>no</swap> +</parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Hamburg.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Hamburg</name> + <short>RHH</short> + <description>auf 103.6 - der Mix macht's</description> + <homepage>http://www.radiohamburg.de</homepage> + <position>1</position> + <logo>Radio Hamburg.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radiohamburg/livestream.wma&content=live&media=ms&token=abdad4c2b32875c130d890116a2c2b1d</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.radiohamburg.de</get> + <search>nobg datler</search> + <offset>1</offset> + <start> </start> + <start2></start2> + <stop></stop> + <devider><br /></devider> + <image>src="</image> + <imageUrl>http://www.radiohamburg.de</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Koeln.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Koeln</name> + <short>Koeln</short> + <description>107,1 - 100% die beste Musik - 100% von hier</description> + <homepage>http://www.radiokoeln.de</homepage> + <position>0</position> + <logo>rkoeln.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&content=live&media=ms&stream=radiokoeln/livestream.wma</url> + <token>radiokoeln/livestream.wma</token> + </stream> + + <parser> + <method>1</method> + <get>http://radiokoeln.de/koeln/rk</get> + <search>Aktuelle Playlist</search> + <offset>0</offset> + <start>div><b></start> + <start2></start2> + <stop><br/></td></stop> + <devider></b><br/></devider> + <image></image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Mi Amigo.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Mi Amigo</name> + <short>Mi Amigo</short> + <description>Schlagersender</description> + <homepage>http://www.radiomiamigo.es/schlager.html</homepage> + <position>0</position> + <logo>Radio Mi Amigo.png</logo> + <bouquet>German</bouquet> + <category>Schlager</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://87.118.64.215:8110</url> + +</stream> + + <parser> + <method>2</method> + <get>http://87.118.64.215:8110/index.html</get> + <search>Song:</search> + <offset>0</offset> + <start>Song: </font></td><td><font class=default><b></start> + <start2></start2> + <stop><</stop> + <devider> - </devider> + <image></image> + <swap>no</swap> +</parser> + +</profile> \ No newline at end of file Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio Regenbogen.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio Regenbogen</name> + <short>Regenb</short> + <description>Wir sind von Hier</description> + <homepage>http://www.regenbogenweb.de</homepage> + <position>0</position> + <logo>Radio Regenbogen.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=regenbogenweb/livestream.wma&content=live&media=ms</url> + <token>regenbogenweb/livestream.wma</token> + </stream> + + <parser> + <method>1</method> + <get>http://www.regenbogenweb.de</get> + <search>interpret</search> + <offset>0</offset> + <start>interpret"></start> + <start2></start2> + <stop></p></stop> + <devider></span><br /></devider> + <image>img src="</image> + <imageUrl>http://www.regenbogenweb.de</imageUrl> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/Radio SAW.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>Radio SAW</name> + <short>SAW</short> + <description>Superhits für Sachsen-Anhalt</description> + <homepage>http://www.radiosaw.de</homepage> + <position>5</position> + <logo>Radio SAW.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=radiosaw/livestream.wma&content=live&media=ms&token=49328c4d85e7e2533d3e2499e9a4eef6</url> + </stream> + + <parser> + <method>3</method> + <get>http://www.radiosaw.de/aktuellertitel/akttitelsaw_fuerflash.txt</get> + <search></search> + <offset></offset> + <start>titel=</start> + <start2>interpret=</start2> + <stop>&</stop> + <devider></devider> + <image>bildurl=</image> + <swap>no</swap> + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml =================================================================== --- trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml (rev 0) +++ trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/SWR3.xml 2008-11-07 08:58:57 UTC (rev 2303) @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <station> + <name>SWR3</name> + <short>SWR3</short> + <description>Der Elch im Netz</description> + <homepage>http://www.swr3.de</homepage> + <position>0</position> + <logo>swr3.png</logo> + <bouquet>German</bouquet> + <category>Mixed</category> + <language>German</language> + <country>de</country> + <quality>Good</quality> + </station> + + <stream> + <url>http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?stream=swr3/livestream.wma&content=live&media=ms</url> + </stream> + + <parser> + <method>1</method> + <get>http://www.swr3.de/musik/webradio</get> + <search>coverrahmen_l.gif</search> + <offset>1</offset> + <start>title="</start> + <start2></start2> + <stop>"</stop> + <devider> - </devider> + <image>img src="</image> + <swap>no</swap> + + </parser> + +</profile> + Added: trunk/plugins/MyStreamradioV2/Release/ConfigDir/TeamMediaPortal/Mediaportal/Radio/StarFM N?\195?\188rnberg.xml =================================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hwa...@us...> - 2008-11-25 21:05:34
|
Revision: 2363 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2363&view=rev Author: hwahrmann Date: 2008-11-25 21:05:26 +0000 (Tue, 25 Nov 2008) Log Message: ----------- Initial Import Added Paths: ----------- trunk/plugins/OneButtonMusic/ trunk/plugins/OneButtonMusic/OneButtonMusic/ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.cs trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.csproj trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.Designer.cs trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.cs trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.resx trunk/plugins/OneButtonMusic/OneButtonMusic/Properties/ trunk/plugins/OneButtonMusic/OneButtonMusic/Properties/AssemblyInfo.cs trunk/plugins/OneButtonMusic/OneButtonMusic.sln Added: trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.cs =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.cs (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.cs 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; + +using MediaPortal.Configuration; +using MediaPortal.Music.Database; +using MediaPortal.GUI.Library; +using MediaPortal.Playlists; +using MediaPortal.Util; + +namespace MediaPortal.Plugins +{ + public class OneButtonMusic : IPlugin, ISetupForm + { + #region Variables + string _playlistFolder = ""; + string _playlist = ""; + bool _usePlaylist = false; + bool _randomPlaylist = true; + bool _lucky = false; + PlayListPlayer playlistPlayer; + #endregion + + #region Methods + /// <summary> + /// Load the settings + /// </summary> + private void LoadSettings() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _playlistFolder = xmlreader.GetValueAsString("music", "playlists", ""); + _playlist = xmlreader.GetValueAsString("onebuttonmusic", "playlist", ""); + _usePlaylist = xmlreader.GetValueAsBool("onebuttonmusic", "useplaylist", false); + _randomPlaylist = xmlreader.GetValueAsBool("onebuttonmusic", "randomplaylist", true); + _lucky = xmlreader.GetValueAsBool("onebuttonmusic", "feelinglucky", false); + } + } + + /// <summary> + /// An Action has been fired + /// + /// Check if we are on Home Screen and if Play was pressed. + /// </summary> + /// <param name="action"></param> + void OnAction(Action action) + { + if ((action.wID == Action.ActionType.ACTION_PLAY || + action.wID == Action.ActionType.ACTION_MUSIC_PLAY) && + (GUIWindowManager.ActiveWindow == (int)GUIWindow.Window.WINDOW_HOME || + GUIWindowManager.ActiveWindow == (int)GUIWindow.Window.WINDOW_SECOND_HOME)) + { + playlistPlayer = PlayListPlayer.SingletonPlayer; + + if (_lucky) + { + Log.Info("OneButtonMusic: Adding 100 Random songs from the database"); + AddRandomSongToPlaylist(); + } + else + { + string playList = ""; + if (_randomPlaylist) + playList = GetRandomPlayList(); + else + playList = System.IO.Path.Combine(_playlistFolder, _playlist); + + if (playList == "") + { + Log.Warn("OneButtonMusic: No useable Playlist found"); + return; + } + + Log.Info("OneButtonMusic: Playing Playlist: {0}", playList); + LoadPlaylist(playList); + } + + // if we got a playlist start playing it + if (playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Count > 0) + { + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC; + playlistPlayer.Reset(); + playlistPlayer.Play(0); + } + } + } + + void LoadPlaylist(string strPlayList) + { + IPlayListIO loader = PlayListFactory.CreateIO(strPlayList); + if (loader == null) + return; + + PlayList playlist = new PlayList(); + + if (!loader.Load(playlist, strPlayList)) + { + Log.Error("OneButtonMusic: Could not load Playlist"); + return; + } + + playlistPlayer.CurrentPlaylistName = System.IO.Path.GetFileNameWithoutExtension(strPlayList); + + // clear current playlist + playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Clear(); + // add each item of the playlist to the playlistplayer + for (int i = 0; i < playlist.Count; ++i) + { + PlayListItem playListItem = playlist[i]; + playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Add(playListItem); + } + } + + /// <summary> + /// Gets a Random Playlist out of the Playlist folder + /// </summary> + /// <returns></returns> + string GetRandomPlayList() + { + if (!System.IO.Directory.Exists(_playlistFolder)) + { + Log.Warn("OneButtonMusic: Non existing Playlist Folder"); + return ""; + } + + string[] playLists = System.IO.Directory.GetFiles(_playlistFolder); + PseudoRandomNumberGenerator rand = new PseudoRandomNumberGenerator(); + int rndPlayList = rand.Next(0, playLists.Length - 1); + return playLists[rndPlayList]; + } + + + void AddRandomSongToPlaylist() + { + MusicDatabase m_db = MusicDatabase.Instance; + + // clear current playlist + playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Clear(); + + for (int i = 0; i < 100; i++) + { + Song song = new Song(); + if (m_db.GetRandomSong(ref song)) + { + PlayListItem playListItem = new PlayListItem(song.Title, song.FileName); + playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Add(playListItem); + } + } + } + + #endregion + + #region IPlugin Members + /// <summary> + /// The plugin is started by Mediaportal + /// </summary> + public void Start() + { + LoadSettings(); + GUIGraphicsContext.OnNewAction += new OnActionHandler(OnAction); + Log.Info("OneButtonMusic: Started"); + } + + /// <summary> + /// The Plugin is stopped + /// </summary> + public void Stop() + { + Log.Info("OneButtonMusic: Stopped"); + } + + #endregion IPlugin Members + + #region ISetupForm methods + + /// <summary> + /// Determines whether this plugin can be enabled. + /// </summary> + /// <returns> + /// <c>true</c> if this plugin can be enabled; otherwise, <c>false</c>. + /// </returns> + public bool CanEnable() { return true; } + /// <summary> + /// Determines whether this plugin has setup. + /// </summary> + /// <returns> + /// <c>true</c> if this plugin has setup; otherwise, <c>false</c>. + /// </returns> + public bool HasSetup() { return true; } + /// <summary> + /// Gets the plugin name. + /// </summary> + /// <returns>The plugin name.</returns> + public string PluginName() { return "OneButtonMusic"; } + /// <summary> + /// Defaults enabled. + /// </summary> + /// <returns>true if this plugin is enabled by default, otherwise false.</returns> + public bool DefaultEnabled() { return false; } + /// <summary> + /// Gets the window id. + /// </summary> + /// <returns>The window id.</returns> + public int GetWindowId() { return 0; } + /// <summary> + /// Gets the plugin author. + /// </summary> + /// <returns>The plugin author.</returns> + public string Author() { return "hwahrmann"; } + /// <summary> + /// Gets the description of the plugin. + /// </summary> + /// <returns>The plugin description.</returns> + public string Description() { return "Starts Music Playback when \"Play\" is pressed in Home screen"; } + + /// <summary> + /// Shows the plugin configuration. + /// </summary> + public void ShowPlugin() + { + OneButtonMusicConfig config = new OneButtonMusicConfig(); + config.ShowDialog(); + } + + /// <summary> + /// Gets the home screen details for the plugin. + /// </summary> + /// <param name="strButtonText">The button text.</param> + /// <param name="strButtonImage">The button image.</param> + /// <param name="strButtonImageFocus">The button image focus.</param> + /// <param name="strPictureImage">The picture image.</param> + /// <returns>true if the plugin can be seen, otherwise false.</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = strButtonImage = strButtonImageFocus = strPictureImage = String.Empty; + return false; + } + + #endregion ISetupForm methods + } +} Added: trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.csproj =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.csproj (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusic.csproj 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,89 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{27F417A4-6D27-4952-B0FC-FDCE9101A7DD}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>OneButtonMusic</RootNamespace> + <AssemblyName>OneButtonMusic</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>pdbonly</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=0.9.4.25894, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\mediaportal\Core\bin\Debug\Core.dll</HintPath> + </Reference> + <Reference Include="Databases, Version=0.9.4.25896, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\mediaportal\Databases\bin\Debug\Databases.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.6.30715, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\mediaportal\Utils\bin\Debug\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="OneButtonMusic.cs" /> + <Compile Include="OneButtonMusicConfig.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="OneButtonMusicConfig.Designer.cs"> + <DependentUpon>OneButtonMusicConfig.cs</DependentUpon> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="OneButtonMusicConfig.resx"> + <SubType>Designer</SubType> + <DependentUpon>OneButtonMusicConfig.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.Designer.cs =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.Designer.cs (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.Designer.cs 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,168 @@ +namespace MediaPortal.Plugins +{ + partial class OneButtonMusicConfig + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); + this.btPlaylistSelect = new System.Windows.Forms.Button(); + this.tbPlayList = new System.Windows.Forms.TextBox(); + this.rbRandomPlaylist = new System.Windows.Forms.RadioButton(); + this.rbUsePlaylist = new System.Windows.Forms.RadioButton(); + this.btOk = new System.Windows.Forms.Button(); + this.btCancel = new System.Windows.Forms.Button(); + this.rbLucky = new System.Windows.Forms.RadioButton(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rbLucky); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.btPlaylistSelect); + this.groupBox1.Controls.Add(this.tbPlayList); + this.groupBox1.Controls.Add(this.rbRandomPlaylist); + this.groupBox1.Controls.Add(this.rbUsePlaylist); + this.groupBox1.Location = new System.Drawing.Point(13, 22); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(403, 173); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "PlayList Options"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(16, 139); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(262, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Note: Playlists are loaded from the Music Playlist folder"; + // + // btPlaylistSelect + // + this.btPlaylistSelect.Location = new System.Drawing.Point(359, 21); + this.btPlaylistSelect.Name = "btPlaylistSelect"; + this.btPlaylistSelect.Size = new System.Drawing.Size(36, 23); + this.btPlaylistSelect.TabIndex = 3; + this.btPlaylistSelect.Text = "..."; + this.btPlaylistSelect.UseVisualStyleBackColor = true; + this.btPlaylistSelect.Click += new System.EventHandler(this.btPlaylistSelect_Click); + // + // tbPlayList + // + this.tbPlayList.Location = new System.Drawing.Point(139, 25); + this.tbPlayList.Name = "tbPlayList"; + this.tbPlayList.Size = new System.Drawing.Size(213, 20); + this.tbPlayList.TabIndex = 2; + // + // rbRandomPlaylist + // + this.rbRandomPlaylist.AutoSize = true; + this.rbRandomPlaylist.Checked = true; + this.rbRandomPlaylist.Location = new System.Drawing.Point(19, 61); + this.rbRandomPlaylist.Name = "rbRandomPlaylist"; + this.rbRandomPlaylist.Size = new System.Drawing.Size(100, 17); + this.rbRandomPlaylist.TabIndex = 1; + this.rbRandomPlaylist.TabStop = true; + this.rbRandomPlaylist.Text = "Random Playlist"; + this.rbRandomPlaylist.UseVisualStyleBackColor = true; + // + // rbUsePlaylist + // + this.rbUsePlaylist.AutoSize = true; + this.rbUsePlaylist.Location = new System.Drawing.Point(19, 25); + this.rbUsePlaylist.Name = "rbUsePlaylist"; + this.rbUsePlaylist.Size = new System.Drawing.Size(80, 17); + this.rbUsePlaylist.TabIndex = 0; + this.rbUsePlaylist.Text = "Use Paylist:"; + this.rbUsePlaylist.UseVisualStyleBackColor = true; + // + // btOk + // + this.btOk.Location = new System.Drawing.Point(79, 213); + this.btOk.Name = "btOk"; + this.btOk.Size = new System.Drawing.Size(75, 23); + this.btOk.TabIndex = 1; + this.btOk.Text = "Ok"; + this.btOk.UseVisualStyleBackColor = true; + this.btOk.Click += new System.EventHandler(this.btOk_Click); + // + // btCancel + // + this.btCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btCancel.Location = new System.Drawing.Point(255, 213); + this.btCancel.Name = "btCancel"; + this.btCancel.Size = new System.Drawing.Size(75, 23); + this.btCancel.TabIndex = 2; + this.btCancel.Text = "Cancel"; + this.btCancel.UseVisualStyleBackColor = true; + this.btCancel.Click += new System.EventHandler(this.btCancel_Click); + // + // rbLucky + // + this.rbLucky.AutoSize = true; + this.rbLucky.Location = new System.Drawing.Point(19, 99); + this.rbLucky.Name = "rbLucky"; + this.rbLucky.Size = new System.Drawing.Size(303, 17); + this.rbLucky.TabIndex = 5; + this.rbLucky.Text = "I\'m feeling Lucky (Select random 100 songs from database)"; + this.rbLucky.UseVisualStyleBackColor = true; + // + // OneButtonMusicConfig + // + this.AcceptButton = this.btOk; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btCancel; + this.ClientSize = new System.Drawing.Size(428, 257); + this.Controls.Add(this.btCancel); + this.Controls.Add(this.btOk); + this.Controls.Add(this.groupBox1); + this.Name = "OneButtonMusicConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "OneButtonMusic Configuration"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btPlaylistSelect; + private System.Windows.Forms.TextBox tbPlayList; + private System.Windows.Forms.RadioButton rbRandomPlaylist; + private System.Windows.Forms.RadioButton rbUsePlaylist; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button btOk; + private System.Windows.Forms.Button btCancel; + private System.Windows.Forms.RadioButton rbLucky; + } +} \ No newline at end of file Added: trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.cs =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.cs (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.cs 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using MediaPortal.Configuration; + + +namespace MediaPortal.Plugins +{ + public partial class OneButtonMusicConfig : Form + { + #region Variables + string _playlistFolder = ""; + string _playlist = ""; + bool _usePlaylist = false; + bool _randomPlaylist = true; + bool _lucky = false; + #endregion + + #region ctor + public OneButtonMusicConfig() + { + InitializeComponent(); + LoadSettings(); + } + #endregion + + #region Methods + private void LoadSettings() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _playlistFolder = xmlreader.GetValueAsString("music", "playlists", ""); + _playlist = xmlreader.GetValueAsString("onebuttonmusic", "playlist", ""); + _usePlaylist = xmlreader.GetValueAsBool("onebuttonmusic", "useplaylist", false); + _randomPlaylist = xmlreader.GetValueAsBool("onebuttonmusic", "randomplaylist", true); + _lucky = xmlreader.GetValueAsBool("onebuttonmusic", "feelinglucky", false); + + tbPlayList.Text = _playlist; + rbUsePlaylist.Checked = _usePlaylist; + rbRandomPlaylist.Checked = _randomPlaylist; + } + } + + private void SaveSettings() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("onebuttonmusic", "playlist", _playlist); + xmlwriter.SetValueAsBool("onebuttonmusic", "useplaylist", rbUsePlaylist.Checked); + xmlwriter.SetValueAsBool("onebuttonmusic", "randomplaylist", rbRandomPlaylist.Checked); + xmlwriter.SetValueAsBool("onebuttonmusic", "feelinglucky", rbLucky.Checked); + } + } + #endregion + + #region Events + private void btOk_Click(object sender, EventArgs e) + { + if (rbUsePlaylist.Checked && _playlistFolder == "") + { + MessageBox.Show("No Playlist Folder specified in Music section"); + return; + } + + if (rbUsePlaylist.Checked && tbPlayList.Text == "") + { + MessageBox.Show("No Playlist Folder specified in Music section"); + return; + } + + _playlist = tbPlayList.Text; + SaveSettings(); + this.Close(); + } + + private void btCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btPlaylistSelect_Click(object sender, EventArgs e) + { + if (_playlistFolder == "") + { + MessageBox.Show("No Playlist Folder specified in Music section"); + return; + } + OpenFileDialog oFD = new OpenFileDialog(); + oFD.InitialDirectory = _playlistFolder; + if (oFD.ShowDialog() == DialogResult.OK) + tbPlayList.Text = System.IO.Path.GetFileName(oFD.FileName); + } + #endregion + } +} \ No newline at end of file Added: trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.resx =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.resx (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/OneButtonMusicConfig.resx 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: trunk/plugins/OneButtonMusic/OneButtonMusic/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic/Properties/AssemblyInfo.cs 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OneButtonMusic")] +[assembly: AssemblyDescription("Starts Playback of Predefined Playlists when pressing Play in Home Screen")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OneButtonMusic")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("46055095-64cf-4446-b808-b3aaa10884a7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/OneButtonMusic/OneButtonMusic.sln =================================================================== --- trunk/plugins/OneButtonMusic/OneButtonMusic.sln (rev 0) +++ trunk/plugins/OneButtonMusic/OneButtonMusic.sln 2008-11-25 21:05:26 UTC (rev 2363) @@ -0,0 +1,24 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneButtonMusic", "OneButtonMusic\OneButtonMusic.csproj", "{27F417A4-6D27-4952-B0FC-FDCE9101A7DD}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.Debug = "False" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {27F417A4-6D27-4952-B0FC-FDCE9101A7DD}.Debug|x86.ActiveCfg = Debug|x86 + {27F417A4-6D27-4952-B0FC-FDCE9101A7DD}.Debug|x86.Build.0 = Debug|x86 + {27F417A4-6D27-4952-B0FC-FDCE9101A7DD}.Release|x86.ActiveCfg = Release|x86 + {27F417A4-6D27-4952-B0FC-FDCE9101A7DD}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ze...@us...> - 2008-11-29 11:19:35
|
Revision: 2370 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2370&view=rev Author: zebons Date: 2008-11-29 11:19:30 +0000 (Sat, 29 Nov 2008) Log Message: ----------- New Myfilms repository Added Paths: ----------- trunk/plugins/MyFilms/ trunk/plugins/MyFilms/trunk/ trunk/plugins/MyFilms/trunk/MesFilms.sln trunk/plugins/MyFilms/trunk/MesFilms.suo trunk/plugins/MyFilms/trunk/MyFilms/ trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.Designer.cs trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.cs trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.resx trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.xsc trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.xsd trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.xss trunk/plugins/MyFilms/trunk/MyFilms/AssemblyInfo.cs trunk/plugins/MyFilms/trunk/MyFilms/BaseMesFilms.cs trunk/plugins/MyFilms/trunk/MyFilms/CString.cs trunk/plugins/MyFilms/trunk/MyFilms/CatalogConverter.cs trunk/plugins/MyFilms/trunk/MyFilms/Configuration.cs trunk/plugins/MyFilms/trunk/MyFilms/CryptageTexte.cs trunk/plugins/MyFilms/trunk/MyFilms/FastImage.cs trunk/plugins/MyFilms/trunk/MyFilms/GUIDialogSetRating.cs trunk/plugins/MyFilms/trunk/MyFilms/Logos.cs trunk/plugins/MyFilms/trunk/MyFilms/MesFilms.cs trunk/plugins/MyFilms/trunk/MyFilms/MesFilmsDetail.cs trunk/plugins/MyFilms/trunk/MyFilms/MesFilmsSetup.Designer.cs trunk/plugins/MyFilms/trunk/MyFilms/MesFilmsSetup.cs trunk/plugins/MyFilms/trunk/MyFilms/MesFilmsSetup.resx trunk/plugins/MyFilms/trunk/MyFilms/MovieCollector.cs trunk/plugins/MyFilms/trunk/MyFilms/MyMovies.cs trunk/plugins/MyFilms/trunk/MyFilms/XmlConfig.cs trunk/plugins/MyFilms/trunk/Properties/ trunk/plugins/MyFilms/trunk/skin/ trunk/plugins/MyFilms/trunk/skin/Aeon Wide/ trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/ trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_next_focus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_next_nofocus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_prior_focus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/Films_prior_nofocus.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/hover_my Films.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/Aeon Wide/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/Aeon Wide/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Aeon Wide/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Aeon Wide/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Aeon Wide/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Black & White 1080/ trunk/plugins/MyFilms/trunk/skin/Black & White 1080/Media/ trunk/plugins/MyFilms/trunk/skin/Black & White 1080/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/Black & White 1080/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Black & White 1080/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Black & White 1080/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Black & White 1080/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst/ trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/ trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/Thumbs.db trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/hover_my Films.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/hover_my Films_F.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/BlackMyst/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst Blue wide/ trunk/plugins/MyFilms/trunk/skin/BlackMyst Blue wide/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst Blue wide/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst Blue wide/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst Blue wide/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst wide/ trunk/plugins/MyFilms/trunk/skin/BlackMyst wide/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst wide/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst wide/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/BlackMyst wide/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Blue3/ trunk/plugins/MyFilms/trunk/skin/Blue3/Media/ trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Blue3/Media/hover_Films.png trunk/plugins/MyFilms/trunk/skin/Blue3/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Blue3/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Blue3/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Blue3/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Blue3wide/ trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/ trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/Media/hover_Films.png trunk/plugins/MyFilms/trunk/skin/Blue3wide/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Blue3wide/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Blue3wide/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Blue3wide/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo/ trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/ trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/Thumbs.db trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/BlueTwo/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/ trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/ trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/BlueTwo wide/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Core Reloaded/ trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/ trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/Core Reloaded/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/Core Reloaded/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Core Reloaded/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Core Reloaded/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Core Reloaded/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Foofaraw/ trunk/plugins/MyFilms/trunk/skin/Indigo/ trunk/plugins/MyFilms/trunk/skin/Indigo/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/Indigo/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Indigo/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Indigo/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Monochrome/ trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/ trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Monochrome/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/Monochrome/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/Monochrome/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Monochrome/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Monochrome/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Monochrome/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/ trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/ trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Back_films.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_No_Cover.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Project Mayhem 3/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/PureVisionHD/ trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/ trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_next_focus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_next_nofocus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_prior_focus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/Films_prior_nofocus.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/PureVisionHD/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/PureVisionHD/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/PureVisionHD/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/PureVisionHD/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/PureVisionHD/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/ trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/ trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_No_Cover.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/SpinSafe Revolve/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/ trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/ trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_next_focus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_next_nofocus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_prior_focus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/Films_prior_nofocus.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilms.common.facade.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilms_Visible.xml trunk/plugins/MyFilms/trunk/skin/Titanium v0.4/MesFilmscommon.window.xml trunk/plugins/MyFilms/trunk/skin/Xface/ trunk/plugins/MyFilms/trunk/skin/Xface/Media/ trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_DD.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_first_focus.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_first_nofocus.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_last_focus.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_last_nofocus.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_next_focus.PNG trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_next_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_prior_focus.PNG trunk/plugins/MyFilms/trunk/skin/Xface/Media/Films_prior_nofocus.PNG trunk/plugins/MyFilms/trunk/skin/Xface/Media/amclogo.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/defaultDVDEmptyBig.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/hover_my films.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/starhalf.png trunk/plugins/MyFilms/trunk/skin/Xface/Media/starhalf_horz.png trunk/plugins/MyFilms/trunk/skin/Xface/MesFilms.common.window.xml trunk/plugins/MyFilms/trunk/skin/Xface/MesFilms.xml trunk/plugins/MyFilms/trunk/skin/Xface/MesFilmsDetail.xml trunk/plugins/MyFilms/trunk/skin/Xface/MesFilmsDialogRating.xml trunk/plugins/MyFilms/trunk/skin/Xface/MesFilms_Visible.xml Added: trunk/plugins/MyFilms/trunk/MesFilms.sln =================================================================== --- trunk/plugins/MyFilms/trunk/MesFilms.sln (rev 0) +++ trunk/plugins/MyFilms/trunk/MesFilms.sln 2008-11-29 11:19:30 UTC (rev 2370) @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C# Express 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MesFilms", "MesFilms.csproj", "{20BCDBE0-0812-4235-9330-40B8E570DAE1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Debug|x86.ActiveCfg = Debug|x86 + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Debug|x86.Build.0 = Debug|x86 + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Release|Any CPU.Build.0 = Release|Any CPU + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Release|x86.ActiveCfg = Release|x86 + {20BCDBE0-0812-4235-9330-40B8E570DAE1}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/MyFilms/trunk/MesFilms.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/MyFilms/trunk/MesFilms.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.Designer.cs =================================================================== --- trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.Designer.cs (rev 0) +++ trunk/plugins/MyFilms/trunk/MyFilms/AntMovieCatalog.Designer.cs 2008-11-29 11:19:30 UTC (rev 2370) @@ -0,0 +1,2840 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Ce code a été généré par un outil. +// Version du runtime :2.0.50727.1433 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// </auto-generated> +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace MesFilms { + + + /// <summary> + ///Represents a strongly typed in-memory cache of data. + ///</summary> + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("AntMovieCatalog")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class AntMovieCatalog : global::System.Data.DataSet { + + private CatalogDataTable tableCatalog; + + private ContentsDataTable tableContents; + + private MovieDataTable tableMovie; + + private global::System.Data.DataRelation relationCatalog_Contents; + + private global::System.Data.DataRelation relationContents_Movie; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public AntMovieCatalog() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + this.InitExpressions(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected AntMovieCatalog(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Catalog"] != null)) { + base.Tables.Add(new CatalogDataTable(ds.Tables["Catalog"])); + } + if ((ds.Tables["Contents"] != null)) { + base.Tables.Add(new ContentsDataTable(ds.Tables["Contents"])); + } + if ((ds.Tables["Movie"] != null)) { + base.Tables.Add(new MovieDataTable(ds.Tables["Movie"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + this.InitExpressions(); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public CatalogDataTable Catalog { + get { + return this.tableCatalog; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ContentsDataTable Contents { + get { + return this.tableContents; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MovieDataTable Movie { + get { + return this.tableMovie; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public override global::System.Data.DataSet Clone() { + AntMovieCatalog cln = ((AntMovieCatalog)(base.Clone())); + cln.InitVars(); + cln.InitExpressions(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Catalog"] != null)) { + base.Tables.Add(new CatalogDataTable(ds.Tables["Catalog"])); + } + if ((ds.Tables["Contents"] != null)) { + base.Tables.Add(new ContentsDataTable(ds.Tables["Contents"])); + } + if ((ds.Tables["Movie"] != null)) { + base.Tables.Add(new MovieDataTable(ds.Tables["Movie"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal void InitVars(bool initTable) { + this.tableCatalog = ((CatalogDataTable)(base.Tables["Catalog"])); + if ((initTable == true)) { + if ((this.tableCatalog != null)) { + this.tableCatalog.InitVars(); + } + } + this.tableContents = ((ContentsDataTable)(base.Tables["Contents"])); + if ((initTable == true)) { + if ((this.tableContents != null)) { + this.tableContents.InitVars(); + } + } + this.tableMovie = ((MovieDataTable)(base.Tables["Movie"])); + if ((initTable == true)) { + if ((this.tableMovie != null)) { + this.tableMovie.InitVars(); + } + } + this.relationCatalog_Contents = this.Relations["Catalog_Contents"]; + this.relationContents_Movie = this.Relations["Contents_Movie"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private void InitClass() { + this.DataSetName = "AntMovieCatalog"; + this.Prefix = ""; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableCatalog = new CatalogDataTable(); + base.Tables.Add(this.tableCatalog); + this.tableContents = new ContentsDataTable(); + base.Tables.Add(this.tableContents); + this.tableMovie = new MovieDataTable(false); + base.Tables.Add(this.tableMovie); + global::System.Data.ForeignKeyConstraint fkc; + fkc = new global::System.Data.ForeignKeyConstraint("Catalog_Contents", new global::System.Data.DataColumn[] { + this.tableCatalog.Catalog_IdColumn}, new global::System.Data.DataColumn[] { + this.tableContents.Catalog_IdColumn}); + this.tableContents.Constraints.Add(fkc); + fkc.AcceptRejectRule = global::System.Data.AcceptRejectRule.None; + fkc.DeleteRule = global::System.Data.Rule.Cascade; + fkc.UpdateRule = global::System.Data.Rule.Cascade; + fkc = new global::System.Data.ForeignKeyConstraint("Contents_Movie", new global::System.Data.DataColumn[] { + this.tableContents.Contents_IdColumn}, new global::System.Data.DataColumn[] { + this.tableMovie.Contents_IdColumn}); + this.tableMovie.Constraints.Add(fkc); + fkc.AcceptRejectRule = global::System.Data.AcceptRejectRule.None; + fkc.DeleteRule = global::System.Data.Rule.Cascade; + fkc.UpdateRule = global::System.Data.Rule.Cascade; + this.relationCatalog_Contents = new global::System.Data.DataRelation("Catalog_Contents", new global::System.Data.DataColumn[] { + this.tableCatalog.Catalog_IdColumn}, new global::System.Data.DataColumn[] { + this.tableContents.Catalog_IdColumn}, false); + this.relationCatalog_Contents.Nested = true; + this.Relations.Add(this.relationCatalog_Contents); + this.relationContents_Movie = new global::System.Data.DataRelation("Contents_Movie", new global::System.Data.DataColumn[] { + this.tableContents.Contents_IdColumn}, new global::System.Data.DataColumn[] { + this.tableMovie.Contents_IdColumn}, false); + this.relationContents_Movie.Nested = true; + this.Relations.Add(this.relationContents_Movie); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private bool ShouldSerializeCatalog() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private bool ShouldSerializeContents() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private bool ShouldSerializeMovie() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + AntMovieCatalog ds = new AntMovieCatalog(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private void InitExpressions() { + this.Movie.DateAddedColumn.Expression = "Convert(Date,\'System.DateTime\')"; + this.Movie.Length_NumColumn.Expression = "Convert(Length,\'System.Int32\')"; + } + + public delegate void CatalogRowChangeEventHandler(object sender, CatalogRowChangeEvent e); + + public delegate void ContentsRowChangeEventHandler(object sender, ContentsRowChangeEvent e); + + public delegate void MovieRowChangeEventHandler(object sender, MovieRowChangeEvent e); + + /// <summary> + ///Represents the strongly named DataTable class. + ///</summary> + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CatalogDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { + + private global::System.Data.DataColumn columnAntMovieCatalog_Id; + + private global::System.Data.DataColumn columnProperties; + + private global::System.Data.DataColumn columnCatalog_Id; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public CatalogDataTable() { + this.TableName = "Catalog"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal CatalogDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected CatalogDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::System.Data.DataColumn AntMovieCatalog_IdColumn { + get { + return this.columnAntMovieCatalog_Id; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::System.Data.DataColumn PropertiesColumn { + get { + return this.columnProperties; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::System.Data.DataColumn Catalog_IdColumn { + get { + return this.columnCatalog_Id; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public CatalogRow this[int index] { + get { + return ((CatalogRow)(this.Rows[index])); + } + } + + public event CatalogRowChangeEventHandler CatalogRowChanging; + + public event CatalogRowChangeEventHandler CatalogRowChanged; + + public event CatalogRowChangeEventHandler CatalogRowDeleting; + + public event CatalogRowChangeEventHandler CatalogRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public void AddCatalogRow(CatalogRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public CatalogRow AddCatalogRow(int AntMovieCatalog_Id, string Properties) { + CatalogRow rowCatalogRow = ((CatalogRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + AntMovieCatalog_Id, + Properties, + null}; + rowCatalogRow.ItemArray = columnValuesArray; + this.Rows.Add(rowCatalogRow); + return rowCatalogRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public virtual global::System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public override global::System.Data.DataTable Clone() { + CatalogDataTable cln = ((CatalogDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override global::System.Data.DataTable CreateInstance() { + return new CatalogDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal void InitVars() { + this.columnAntMovieCatalog_Id = base.Columns["AntMovieCatalog_Id"]; + this.columnProperties = base.Columns["Properties"]; + this.columnCatalog_Id = base.Columns["Catalog_Id"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private void InitClass() { + this.columnAntMovieCatalog_Id = new global::System.Data.DataColumn("AntMovieCatalog_Id", typeof(int), null, global::System.Data.MappingType.Hidden); + base.Columns.Add(this.columnAntMovieCatalog_Id); + this.columnProperties = new global::System.Data.DataColumn("Properties", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnProperties); + this.columnCatalog_Id = new global::System.Data.DataColumn("Catalog_Id", typeof(int), null, global::System.Data.MappingType.Hidden); + base.Columns.Add(this.columnCatalog_Id); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnCatalog_Id}, true)); + this.columnAntMovieCatalog_Id.Namespace = ""; + this.columnCatalog_Id.AutoIncrement = true; + this.columnCatalog_Id.AllowDBNull = false; + this.columnCatalog_Id.Unique = true; + this.columnCatalog_Id.Namespace = ""; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public CatalogRow NewCatalogRow() { + return ((CatalogRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new CatalogRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override global::System.Type GetRowType() { + return typeof(CatalogRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CatalogRowChanged != null)) { + this.CatalogRowChanged(this, new CatalogRowChangeEvent(((CatalogRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CatalogRowChanging != null)) { + this.CatalogRowChanging(this, new CatalogRowChangeEvent(((CatalogRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CatalogRowDeleted != null)) { + this.CatalogRowDeleted(this, new CatalogRowChangeEvent(((CatalogRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CatalogRowDeleting != null)) { + this.CatalogRowDeleting(this, new CatalogRowChangeEvent(((CatalogRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public void RemoveCatalogRow(CatalogRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + AntMovieCatalog ds = new AntMovieCatalog(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CatalogDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// <summary> + ///Represents the strongly named DataTable class. + ///</summary> + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ContentsDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { + + private global::System.Data.DataColumn columnContents_Id; + + private global::System.Data.DataColumn columnCatalog_Id; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public ContentsDataTable() { + this.TableName = "Contents"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal ContentsDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected ContentsDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::System.Data.DataColumn Contents_IdColumn { + get { + return this.columnContents_Id; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public global::System.Data.DataColumn Catalog_IdColumn { + get { + return this.columnCatalog_Id; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public ContentsRow this[int index] { + get { + return ((ContentsRow)(this.Rows[index])); + } + } + + public event ContentsRowChangeEventHandler ContentsRowChanging; + + public event ContentsRowChangeEventHandler ContentsRowChanged; + + public event ContentsRowChangeEventHandler ContentsRowDeleting; + + public event ContentsRowChangeEventHandler ContentsRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public void AddContentsRow(ContentsRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public ContentsRow AddContentsRow(CatalogRow parentCatalogRowByCatalog_Contents) { + ContentsRow rowContentsRow = ((ContentsRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + null}; + if ((parentCatalogRowByCatalog_Contents != null)) { + columnValuesArray[1] = parentCatalogRowByCatalog_Contents[2]; + } + rowContentsRow.ItemArray = columnValuesArray; + this.Rows.Add(rowContentsRow); + return rowContentsRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public virtual global::System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + public override global::System.Data.DataTable Clone() { + ContentsDataTable cln = ((ContentsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + protected override global::System.Data.DataTable CreateInstance() { + return new ContentsDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + internal void InitVars() { + this.columnContents_Id = base.Columns["Contents_Id"]; + this.columnCatalog_Id = base.Columns["Catalog_Id"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + private void InitClass() { + this.columnContents_Id = new global::System.Data.DataColumn("Contents_Id", typeof(int), null, global::System.Data.MappingType.Hidden); + base.Columns.Add(this.columnContents_Id); + this.columnCatalog_Id = new global::System.Data.DataColumn("Catalog_Id", typeof(int), null, global::System.Data.MappingType.Hidden); + base.Columns.Add(this.columnCatalog_Id); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnContents_Id}, true)); + this.columnContents_Id.AutoIncrement = true; + this.columnContents_Id.AllowDBNull = false; + this.columnContents_Id.Unique = true; + ... [truncated message content] |
From: <tou...@us...> - 2008-11-30 17:52:27
|
Revision: 2375 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2375&view=rev Author: tourettes_ Date: 2008-11-30 17:52:21 +0000 (Sun, 30 Nov 2008) Log Message: ----------- Added Arcsoft HD DVD / Blu-Ray player plugin. Added Paths: ----------- trunk/plugins/ArcsoftPlayer/ trunk/plugins/ArcsoftPlayer/Arcsoft player plugin.csproj trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.mpi trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.sln trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.xml trunk/plugins/ArcsoftPlayer/ArcsoftPlayerPlugin.cs trunk/plugins/ArcsoftPlayer/AssemblyInfo.cs trunk/plugins/ArcsoftPlayer/Blu-ray.gif trunk/plugins/ArcsoftPlayer/Blu-ray_disabled.gif trunk/plugins/ArcsoftPlayer/MPI.xmp trunk/plugins/ArcsoftPlayer/PluginSetupForm.Designer.cs trunk/plugins/ArcsoftPlayer/PluginSetupForm.cs trunk/plugins/ArcsoftPlayer/PluginSetupForm.resx trunk/plugins/ArcsoftPlayer/Properties/ trunk/plugins/ArcsoftPlayer/Properties/Resources.Designer.cs trunk/plugins/ArcsoftPlayer/Properties/Resources.resx trunk/plugins/ArcsoftPlayer/logo.png Added: trunk/plugins/ArcsoftPlayer/Arcsoft player plugin.csproj =================================================================== --- trunk/plugins/ArcsoftPlayer/Arcsoft player plugin.csproj (rev 0) +++ trunk/plugins/ArcsoftPlayer/Arcsoft player plugin.csproj 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,272 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectType>Local</ProjectType> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{B282C55B-A37B-4CEC-A4FC-00791069BF00}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ApplicationIcon> + </ApplicationIcon> + <AssemblyKeyContainerName> + </AssemblyKeyContainerName> + <AssemblyName>ArcsoftPlayer</AssemblyName> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + <DefaultClientScript>JScript</DefaultClientScript> + <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> + <DefaultTargetSchema>IE50</DefaultTargetSchema> + <DelaySign>false</DelaySign> + <OutputType>Library</OutputType> + <RootNamespace>WindowPlugins.ArcsoftPlayer</RootNamespace> + <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> + <StartupObject> + </StartupObject> + <FileUpgradeFlags> + </FileUpgradeFlags> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <SccProjectName> + </SccProjectName> + <SccLocalPath> + </SccLocalPath> + <SccAuxPath> + </SccAuxPath> + <SccProvider> + </SccProvider> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>true</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>false</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>full</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <OutputPath>bin\Release\</OutputPath> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>false</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>true</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>none</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'UseCaptureCardDefinitions|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>true</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>false</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>full</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'UseCaptureDefintionsRelease|AnyCPU' "> + <OutputPath>bin\Release\</OutputPath> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE;UseCaptureCardDefinitions</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>false</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>true</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>none</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <BaseAddress>285212672</BaseAddress> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <Optimize>false</Optimize> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <BaseAddress>285212672</BaseAddress> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <Optimize>true</Optimize> + <DebugType> + </DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'UseCaptureCardDefinitions|x86' "> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\UseCaptureCardDefinitions\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <BaseAddress>285212672</BaseAddress> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'UseCaptureDefintionsRelease|x86' "> + <OutputPath>bin\UseCaptureDefintionsRelease\</OutputPath> + <DefineConstants>TRACE;UseCaptureCardDefinitions</DefineConstants> + <BaseAddress>285212672</BaseAddress> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + <Optimize>true</Optimize> + <DebugType> + </DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=0.9.3.30398, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\Mediaportal\mediaportal\xbmc\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.9.3.378, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\Mediaportal\mediaportal\Dialogs\bin\Release\Dialogs.dll</HintPath> + </Reference> + <Reference Include="Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\MediaPortal.Base\Microsoft.DirectX.dll</HintPath> + </Reference> + <Reference Include="Microsoft.DirectX.Direct3D, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\MediaPortal.Base\Microsoft.DirectX.Direct3D.dll</HintPath> + </Reference> + <Reference Include="Microsoft.DirectX.Direct3DX, Version=1.0.2906.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\MediaPortal.Base\Microsoft.DirectX.Direct3DX.dll</HintPath> + </Reference> + <Reference Include="Microsoft.DirectX.DirectDraw, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\MediaPortal.Base\Microsoft.DirectX.DirectDraw.dll</HintPath> + </Reference> + <Reference Include="RemotePlugins, Version=0.9.3.30400, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\Mediaportal\mediaportal\xbmc\bin\Release\RemotePlugins.dll</HintPath> + </Reference> + <Reference Include="System"> + <Name>System</Name> + </Reference> + <Reference Include="System.Data"> + <Name>System.Data</Name> + </Reference> + <Reference Include="System.Drawing"> + <Name>System.Drawing</Name> + </Reference> + <Reference Include="System.Drawing.Design"> + <Name>System.Drawing.Design</Name> + </Reference> + <Reference Include="System.Management"> + <Name>System.Management</Name> + </Reference> + <Reference Include="System.Runtime.Serialization.Formatters.Soap"> + <Name>System.Runtime.Serialization.Formatters.Soap</Name> + </Reference> + <Reference Include="System.Web"> + <Name>System.Web</Name> + </Reference> + <Reference Include="System.Windows.Forms"> + <Name>System.Windows.Forms</Name> + </Reference> + <Reference Include="System.Xml"> + <Name>System.XML</Name> + </Reference> + <Reference Include="Utils, Version=2.2.6.375, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\Mediaportal\mediaportal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="ArcsoftPlayerPlugin.cs" /> + <Compile Include="AssemblyInfo.cs" /> + <Compile Include="PluginSetupForm.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="PluginSetupForm.Designer.cs"> + <DependentUpon>PluginSetupForm.cs</DependentUpon> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <EmbeddedResource Include="PluginSetupForm.resx"> + <DependentUpon>PluginSetupForm.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Properties\Resources.resx"> + <SubType>Designer</SubType> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <None Include="logo.png" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Blu-ray_disabled.gif" /> + <EmbeddedResource Include="Blu-ray.gif" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <PropertyGroup> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.mpi =================================================================== (Binary files differ) Property changes on: trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.mpi ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.sln =================================================================== --- trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.sln (rev 0) +++ trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.sln 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arcsoft player plugin", "Arcsoft player plugin.csproj", "{B282C55B-A37B-4CEC-A4FC-00791069BF00}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + UseCaptureCardDefinitions|Any CPU = UseCaptureCardDefinitions|Any CPU + UseCaptureCardDefinitions|x86 = UseCaptureCardDefinitions|x86 + UseCaptureDefintionsRelease|Any CPU = UseCaptureDefintionsRelease|Any CPU + UseCaptureDefintionsRelease|x86 = UseCaptureDefintionsRelease|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Debug|x86.ActiveCfg = Debug|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Debug|x86.Build.0 = Debug|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Release|Any CPU.Build.0 = Release|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Release|x86.ActiveCfg = Release|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.Release|x86.Build.0 = Release|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureCardDefinitions|Any CPU.ActiveCfg = UseCaptureCardDefinitions|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureCardDefinitions|Any CPU.Build.0 = UseCaptureCardDefinitions|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureCardDefinitions|x86.ActiveCfg = UseCaptureCardDefinitions|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureCardDefinitions|x86.Build.0 = UseCaptureCardDefinitions|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureDefintionsRelease|Any CPU.ActiveCfg = UseCaptureDefintionsRelease|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureDefintionsRelease|Any CPU.Build.0 = UseCaptureDefintionsRelease|Any CPU + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureDefintionsRelease|x86.ActiveCfg = UseCaptureDefintionsRelease|x86 + {B282C55B-A37B-4CEC-A4FC-00791069BF00}.UseCaptureDefintionsRelease|x86.Build.0 = UseCaptureDefintionsRelease|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.xml =================================================================== --- trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.xml (rev 0) +++ trunk/plugins/ArcsoftPlayer/ArcsoftPlayer.xml 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,26 @@ +<MPinstalerS> + <ver>1.00.000</ver> + <ExtensionList> + <Extension> + <FileName>ArcsoftPlayer.mpi</FileName> + <Name>Arcsoft Blu-Ray / HD DVD plugin</Name> + <URL>http://www.team-mediaportal.com</URL> + <Version>0.1</Version> + <Author>tourettes</Author> + <Description>Allow users to play HD DVD & Blu-Ray disks using Arcsoft's MCE plugin.</Description> + <Group>Video/Movies</Group> + <Properties> + <MPMaxVersion /> + <MPMinVersion /> + <MinExtensionVersion /> + <MaxExtensionVersion /> + <ForumURL /> + <WebURL /> + <CreationDate>30-11-08</CreationDate> + <SingleGroupSelect>False</SingleGroupSelect> + </Properties> + <Uninstall /> + </Extension> + </ExtensionList> + <Option /> +</MPinstalerS> \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/ArcsoftPlayerPlugin.cs =================================================================== --- trunk/plugins/ArcsoftPlayer/ArcsoftPlayerPlugin.cs (rev 0) +++ trunk/plugins/ArcsoftPlayer/ArcsoftPlayerPlugin.cs 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,397 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Threading; +using System.Windows.Forms; +using System.Diagnostics; + +using MediaPortal.Configuration; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Player; +using MediaPortal.Util; +using MediaPortal.InputDevices; + +namespace WindowPlugins.ArcsoftPlayer +{ + [PluginIcons("WindowPlugins.ArcsoftPlayer.Blu-ray.gif", "WindowPlugins.ArcsoftPlayer.Blu-ray_disabled.gif")] + + public class ArcsoftPlayerPlugin : GUIWindow, ISetupForm, IShowPlugin + { + string _playerExecutable; + bool _ejectReceived; + + // + // Constructor + // + public ArcsoftPlayerPlugin() + { + Log.Info("ArcsoftPlayerPlugin: construct"); + GetID = 8080; + + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _playerExecutable = xmlreader.GetValueAsString("arcsoftplayer", "executable", null); + } + } + + // Invoke needs to be used so that previus view is changed from correct thread. + private delegate void PlayerExitedInvoke(); + + #region BaseWindow Members + + // + // Init + // + public override bool Init() + { + bool bResult = Load(GUIGraphicsContext.Skin + @"\arcsoftplayer.xml"); + GUIWindowManager.Receivers += new SendMessageHandler(OnGlobalMessage); + return bResult; + } + + // + // Handle global messages, disk insert notification will be handled here in the future + // + private void OnGlobalMessage(GUIMessage message) + { + switch (message.Message) + { + /*case GUIMessage.MessageType.GUI_MSG_BLURAY_DISK_INSERTED: + { + Log.Info("ArcsoftPlayerPlugin: GUI_MSG_BLURAY_DISK_INSERTED"); + _ejectReceived = false; + PreparePlayback(); + SetRefreshRate(); + LaunchPlayer(); + break; + }*/ + /*case GUIMessage.MessageType.GUI_MSG_BLURAY_DISK_REMOVED: + { + Log.Info("ArcsoftPlayerPlugin: GUI_MSG_BLURAY_DISK_REMOVED"); + _ejectReceived = true; + StopPlayer(); + ResumeFromPlayback(); + RestoreRefreshRate(); + break; + }*/ + /*case GUIMessage.MessageType.GUI_MSG_HDDVD_DISK_INSERTED: + { + Log.Info("ArcsoftPlayerPlugin: GUI_MSG_HDDVD_DISK_INSERTED"); + _ejectReceived = false; + PreparePlayback(); + SetRefreshRate(); + LaunchPlayer(); + break; + }*/ + /*case GUIMessage.MessageType.GUI_MSG_HDDVD_DISK_REMOVED: + { + Log.Info("ArcsoftPlayerPlugin: GUI_MSG_HDDVD_DISK_REMOVED"); + break; + }*/ + } + } + + // + // OnAction + // + public override void OnAction(Action action) + { + // TODO, not needed most likely + base.OnAction(action); + } + + // + // OnPageLoad + // + protected override void OnPageLoad() + { + base.OnPageLoad(); + + // Manual launch from the home screen + _ejectReceived = false; + PreparePlayback(); + SetRefreshRate(); + LaunchPlayer(); + //LoadSettings(); + } + + // + // OnPageDestroy + // + protected override void OnPageDestroy(int newWindowId) + { + base.OnPageDestroy(newWindowId); + } + + + // + // Deinit + // + public override void DeInit() + { + base.DeInit(); + } + + + // + // OnClicked + // + protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) + { + // TODO, not needed most likely (no GUI in the plungin...) + base.OnClicked(controlId, control, actionType); + } + + + // + // Handle message + // + public override bool OnMessage(GUIMessage message) + { + // TODO, do we need to hanle any messages? + return base.OnMessage(message); + } + #endregion + #region Private helper methods + + + // + // Susend GUI rendering + // + private void PreparePlayback() + { + Log.Info("ArcsoftPlayerPlugin: PreparePlayback"); + GUIGraphicsContext.BlankScreen = true; + //GUIGraphicsContext.CurrentState = GUIGraphicsContext.State.SUSPENDING; + MediaPortal.InputDevices.InputDevices.Stop(); + g_Player.Stop(); + } + + + // + // Resume GUI rendering + // + private void ResumeFromPlayback() + { + Log.Info("ArcsoftPlayerPlugin: ResumeFromPlayback"); + GUIGraphicsContext.BlankScreen = false; + //GUIGraphicsContext.CurrentState = GUIGraphicsContext.State.RUNNING; + MediaPortal.InputDevices.InputDevices.Init(); + } + + // + // Set new refresh rate + // + private void SetRefreshRate() + { + Log.Info("ArcsoftPlayerPlugin: SetRefreshRate"); + // TODO + // - Fetcs FPS from the correct .mt2s file (main movie, requires A**DVD...) + //RefreshRateChanger.SetRefreshRateBasedOnFPS (yourFPS, "", RefreshRateChanger.MediaType.Video) + + ProcessStartInfo psi = new ProcessStartInfo(); + Process dc = new Process(); + psi.FileName = "c:\\dccmd.exe"; + psi.Arguments = "-refresh=24"; + dc.StartInfo = psi; + try + { + //dc.Start(); + } + catch (Exception e) + { + Log.Error("ArcsoftPlayerPlugin: RestoreRefreshRate - exception {0}", e); + } + } + + // + // Restore previous refresh rate + // + private void RestoreRefreshRate() + { + // TODO + // - restore previous refresh rate + //refreshratechanger.adaptrefreshrate(); + Log.Info("ArcsoftPlayerPlugin: RestoreRefreshRate"); + + ProcessStartInfo psi = new ProcessStartInfo(); + Process dc = new Process(); + psi.FileName = "c:\\dccmd.exe"; + psi.Arguments = "-refresh=25"; + dc.StartInfo = psi; + try + { + //dc.Start(); + } + catch (Exception e) + { + Log.Error("ArcsoftPlayerPlugin: RestoreRefreshRate - exception {0}", e); + } + } + + // + // Player exited event is rised when Arcsoft player process is exiting + // + private void PlayerExited(object o, EventArgs e) + { + Log.Info("ArcsoftPlayerPlugin: PlayerExited"); + // Cleanup only if no eject has been received + if (!_ejectReceived) + { + Log.Info("ArcsoftPlayerPlugin: No eject has been received, cleaning up"); + ResumeFromPlayback(); + RestoreRefreshRate(); + } + GUIGraphicsContext.form.Invoke(new PlayerExitedInvoke(PreviousView)); + } + + // + // Go back to previous view + // + public void PreviousView() + { + GUIWindowManager.ShowPreviousWindow(); + } + + // + // Launch external player + // + private void LaunchPlayer() + { + Log.Info("ArcsoftPlayerPlugin: LaunchPlayer"); + ProcessStartInfo psi = new ProcessStartInfo(); + Process arcsoftPlayer = new Process(); + psi.FileName = _playerExecutable; + + if (!File.Exists(psi.FileName)) + { + Log.Info("ArcsoftPlayerPlugin: missing player executable - {0}", psi.FileName); + ResumeFromPlayback(); + RestoreRefreshRate(); + return; + } + + arcsoftPlayer.EnableRaisingEvents = true; + arcsoftPlayer.Exited += PlayerExited; + arcsoftPlayer.StartInfo = psi; + try + { + arcsoftPlayer.Start(); + } + catch (Exception e) + { + // TODO - Add more error handling? + Log.Error("ArcsoftPlayerPlugin: LaunchPlayer - exception {0}", e); + } + } + + // + // Player exited event is rised when Arcsoft player process is exiting + // + private void StopPlayer() + { + Log.Info("ArcsoftPlayerPlugin: StopPlayer"); + // TODO parse executable name from the settings + string processName = "uMCEDVDPlayer.exe"; + Process[] processes = System.Diagnostics.Process.GetProcessesByName(processName); + + foreach (Process process in processes) + { + process.CloseMainWindow(); + //process.Kill(); + } + } + #endregion + + #region ISetupForm Members + + public int GetWindowId() + { + return GetID; + } + + public string PluginName() + { + return "Arcsoft player"; + } + + public string Description() + { + return "Provide support for launching Arcsoft's MCE plugin inside MediaPortal"; + } + + public string Author() + { + return "tourettes"; + } + + public bool CanEnable() + { + return true; + } + + public bool DefaultEnabled() + { + return false; + } + + public bool HasSetup() + { + return true; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = "Play Bluray"; + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = "hover_my videos.png"; + return true; + } + + // show the setup dialog + public void ShowPlugin() + { + PluginSetupForm setupForm = new PluginSetupForm(); + setupForm.ShowDialog(); + } + + #endregion + + #region IShowPlugin Members + + public bool ShowDefaultHome() + { + return false; + } + + #endregion + } +} \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/AssemblyInfo.cs =================================================================== --- trunk/plugins/ArcsoftPlayer/AssemblyInfo.cs (rev 0) +++ trunk/plugins/ArcsoftPlayer/AssemblyInfo.cs 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,14 @@ +// Assembly Arcsoft Player, Version 0.1.1888.15616 + +[assembly: System.Reflection.AssemblyVersion("0.1.0001.00001")] +[assembly: System.Reflection.AssemblyKeyName("")] +[assembly: System.Reflection.AssemblyKeyFile("")] +[assembly: System.Reflection.AssemblyDelaySign(false)] +[assembly: System.Reflection.AssemblyTrademark("")] +[assembly: System.Reflection.AssemblyCopyright("GPL")] +[assembly: System.Reflection.AssemblyProduct("Arcsoft player")] +[assembly: System.Reflection.AssemblyCompany("")] +[assembly: System.Reflection.AssemblyConfiguration("")] +[assembly: System.Reflection.AssemblyDescription("Arcsoft player plugin for MediaPortal")] +[assembly: System.Reflection.AssemblyTitle("Arcsoft player")] + Added: trunk/plugins/ArcsoftPlayer/Blu-ray.gif =================================================================== (Binary files differ) Property changes on: trunk/plugins/ArcsoftPlayer/Blu-ray.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/ArcsoftPlayer/Blu-ray_disabled.gif =================================================================== (Binary files differ) Property changes on: trunk/plugins/ArcsoftPlayer/Blu-ray_disabled.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/ArcsoftPlayer/MPI.xmp =================================================================== --- trunk/plugins/ArcsoftPlayer/MPI.xmp (rev 0) +++ trunk/plugins/ArcsoftPlayer/MPI.xmp 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,57 @@ +<MPinstaler> + <ver>1.00.000</ver> + <FileList> + <File> + <FileName>ArcsoftPlayer.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>bin\Release\ArcsoftPlayer.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>1ae08570-0b1d-492f-88cc-66c54e6fbc9a</Guid> + </File> + <File> + <FileName>ArcsoftPlayer.xml</FileName> + <Type>Skin</Type> + <SubType>Blue3</SubType> + <Source>ArcsoftPlayer.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>0419f4e8-2ab9-4200-987e-c8dcd36b5830</Guid> + </File> + <File> + <FileName>ArcsoftPlayer.xml</FileName> + <Type>Skin</Type> + <SubType>Blue3wide</SubType> + <Source>ArcsoftPlayer.xml</Source> + <Id>02010</Id> + <Option /> + <Guid>f05e0beb-a890-40a3-97f8-e7da20c0f2a4</Guid> + </File> + </FileList> + <StringList /> + <Actions /> + <SetupGroups /> + <SetupGroupMappings /> + <Option> + <BuildFileName>D:\Projects\ArcsoftPlayer\ArcsoftPlayer.mpi</BuildFileName> + <ProiectFileName>D:\Projects\ArcsoftPlayer\MPI.xmp</ProiectFileName> + <ProiectName>Arcsoft Blu-Ray / HD DVD plugin</ProiectName> + <Author>tourettes</Author> + <UpdateURL>http://www.team-mediaportal.com</UpdateURL> + <Version>0.1</Version> + <Description>Allow users to play HD DVD & Blu-Ray disks using Arcsoft's MCE plugin.</Description> + <Group>Video/Movies</Group> + <Release>Beta</Release> + </Option> + <Properties> + <MPMaxVersion /> + <MPMinVersion /> + <MinExtensionVersion /> + <MaxExtensionVersion /> + <ForumURL /> + <WebURL /> + <CreationDate>30-11-08</CreationDate> + <SingleGroupSelect>False</SingleGroupSelect> + </Properties> +</MPinstaler> \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/PluginSetupForm.Designer.cs =================================================================== --- trunk/plugins/ArcsoftPlayer/PluginSetupForm.Designer.cs (rev 0) +++ trunk/plugins/ArcsoftPlayer/PluginSetupForm.Designer.cs 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,182 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +namespace WindowPlugins.ArcsoftPlayer +{ + partial class PluginSetupForm + { + private System.ComponentModel.IContainer components = null; + + /*protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + }*/ + + #region Form-Designer generated code + + /// <summary> + /// </summary> + private void InitializeComponent() + { + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.panel1 = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.button1 = new System.Windows.Forms.Button(); + this.text_filename = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.button_OK = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // openFileDialog1 + // + this.openFileDialog1.FileName = "openFileDialog1"; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.panel1.BackgroundImage = global::WindowPlugins.ArcsoftPlayer.Properties.Resources.logo; + this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(496, 55); + this.panel1.TabIndex = 5; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.button1); + this.groupBox1.Controls.Add(this.text_filename); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Location = new System.Drawing.Point(11, 61); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(474, 122); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button1.Location = new System.Drawing.Point(392, 32); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(68, 25); + this.button1.TabIndex = 2; + this.button1.Text = "Browse"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // text_filename + // + this.text_filename.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.text_filename.Location = new System.Drawing.Point(9, 32); + this.text_filename.Name = "text_filename"; + this.text_filename.Size = new System.Drawing.Size(374, 20); + this.text_filename.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 16); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(155, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Arcsoft MCE plugin executable:"; + // + // button_OK + // + this.button_OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button_OK.Location = new System.Drawing.Point(403, 189); + this.button_OK.Name = "button_OK"; + this.button_OK.Size = new System.Drawing.Size(68, 25); + this.button_OK.TabIndex = 3; + this.button_OK.Text = "OK"; + this.button_OK.UseVisualStyleBackColor = true; + this.button_OK.Click += new System.EventHandler(this.button_OK_Click); + // + // button2 + // + this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button2.Location = new System.Drawing.Point(326, 189); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(68, 25); + this.button2.TabIndex = 4; + this.button2.Text = "Cancel"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // PluginSetupForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(497, 228); + this.Controls.Add(this.button2); + this.Controls.Add(this.button_OK); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.panel1); + this.Name = "PluginSetupForm"; + this.Text = "Arcsoft player setup"; + this.Load += new System.EventHandler(this.PluginSetupForm_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panelBannerAlign; + private System.Windows.Forms.PictureBox pictureBoxBanner; + private System.Windows.Forms.GroupBox groupBoxSettings; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonSave; + private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxUseTrayIcon; + private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxSubmitToProfile; + private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxShowBallonTips; + private MediaPortal.UserInterface.Controls.MPLabel labelListEntries; + private System.Windows.Forms.NumericUpDown numericUpDownListEntries; + private MediaPortal.UserInterface.Controls.MPLabel labelEngine; + private MediaPortal.UserInterface.Controls.MPComboBox comboBoxStreamPlayerType; + private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxDirectSkip; + private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxOneClickMode; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox text_filename; + private System.Windows.Forms.Button button_OK; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/PluginSetupForm.cs =================================================================== --- trunk/plugins/ArcsoftPlayer/PluginSetupForm.cs (rev 0) +++ trunk/plugins/ArcsoftPlayer/PluginSetupForm.cs 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,101 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Windows.Forms; + +using MediaPortal.Configuration; + +namespace WindowPlugins.ArcsoftPlayer +{ + public partial class PluginSetupForm : MediaPortal.UserInterface.Controls.MPConfigForm + { + public PluginSetupForm() + { + InitializeComponent(); + LoadSettings(); + } + + #region Serialisation + + private void LoadSettings() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + text_filename.Text = xmlreader.GetValueAsString("arcsoftplayer", "executable", "...uMCEDVDPlayer.exe"); + } + } + + void SaveSettings() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("arcsoftplayer", "executable", text_filename.Text); + } + } + + #endregion + + + private void PluginSetupForm_Load(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + if (System.IO.File.Exists(text_filename.Text)) + { + openFileDialog1.FileName = System.IO.Path.GetFileName(text_filename.Text); + } + else + { + openFileDialog1.FileName = "uMCEDVDPlayer.exe"; + } + + openFileDialog1.Filter.EndsWith(".exe"); + openFileDialog1.InitialDirectory = System.IO.Path.GetDirectoryName(text_filename.Text); + openFileDialog1.ShowDialog(); + text_filename.Text = openFileDialog1.FileName; + } + + private void button_OK_Click(object sender, EventArgs e) + { + if (!System.IO.File.Exists(text_filename.Text)) + { + System.Windows.Forms.MessageBox.Show("Invalid executable specified!", "Error"); + return; + } + + SaveSettings(); + this.Close(); + } + + private void button2_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/PluginSetupForm.resx =================================================================== --- trunk/plugins/ArcsoftPlayer/PluginSetupForm.resx (rev 0) +++ trunk/plugins/ArcsoftPlayer/PluginSetupForm.resx 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing"> + <value>17, 17</value> + </data> +</root> \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/ArcsoftPlayer/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/ArcsoftPlayer/Properties/Resources.Designer.cs 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.1434 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace WindowPlugins.ArcsoftPlayer.Properties { + using System; + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowPlugins.ArcsoftPlayer.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap logo { + get { + object obj = ResourceManager.GetObject("logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} Added: trunk/plugins/ArcsoftPlayer/Properties/Resources.resx =================================================================== --- trunk/plugins/ArcsoftPlayer/Properties/Resources.resx (rev 0) +++ trunk/plugins/ArcsoftPlayer/Properties/Resources.resx 2008-11-30 17:52:21 UTC (rev 2375) @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\logo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> +</root> \ No newline at end of file Added: trunk/plugins/ArcsoftPlayer/logo.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/ArcsoftPlayer/logo.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jos...@us...> - 2008-12-10 18:57:13
|
Revision: 2407 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2407&view=rev Author: josch-hh Date: 2008-12-10 18:57:07 +0000 (Wed, 10 Dec 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/TVSAuditor/ trunk/plugins/TVSAuditor/TVSAuditor/ trunk/plugins/TVSAuditor/TVSAuditor/CardInfo.cs trunk/plugins/TVSAuditor/TVSAuditor/CommonSettings.cs trunk/plugins/TVSAuditor/TVSAuditor/Logging/ trunk/plugins/TVSAuditor/TVSAuditor/Logging/ErrorFileLogHandler.cs trunk/plugins/TVSAuditor/TVSAuditor/Logging/FileLogHandler.cs trunk/plugins/TVSAuditor/TVSAuditor/Logging/GuiLogHandler.cs trunk/plugins/TVSAuditor/TVSAuditor/Logging/ILogHandler.cs trunk/plugins/TVSAuditor/TVSAuditor/Logging/Logger.cs trunk/plugins/TVSAuditor/TVSAuditor/Properties/ trunk/plugins/TVSAuditor/TVSAuditor/Properties/AssemblyInfo.cs trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.cs trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj.user trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditorInstaller.cs trunk/plugins/TVSAuditor/TVSAuditor/TVSinterface.cs trunk/plugins/TVSAuditor/TVSAuditor/Tools.cs trunk/plugins/TVSAuditor/TVSAuditor/app.config trunk/plugins/TVSAuditor/TVSAuditor/bin/ trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/ trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/DirectShowLib.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.exe trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.exe.config trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.pdb trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.vshost.exe trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.vshost.exe.config trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TVSAuditor.vshost.exe.manifest trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TvControl.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Debug/TvLibrary.Interfaces.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/ trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/DirectShowLib.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/InstallUtil.InstallLog trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSAuditor.exe trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSAuditor.exe.config trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSAuditor.pdb trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSAuditor.xml trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSauditor.InstallLog trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TVSauditor.InstallState trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TvControl.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/TvLibrary.Interfaces.dll trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/install.cmd trunk/plugins/TVSAuditor/TVSAuditor/bin/Release/uninstall.cmd trunk/plugins/TVSAuditor/TVSAuditor/install.cmd trunk/plugins/TVSAuditor/TVSAuditor/obj/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/Refactor/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/TVSAuditor.csproj.FileListAbsolute.txt trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/TVSAuditor.exe trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/TVSAuditor.pdb trunk/plugins/TVSAuditor/TVSAuditor/obj/Debug/TempPE/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/Refactor/ trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/TVSAuditor.csproj.FileListAbsolute.txt trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/TVSAuditor.exe trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/TVSAuditor.pdb trunk/plugins/TVSAuditor/TVSAuditor/obj/Release/TempPE/ trunk/plugins/TVSAuditor/TVSAuditor/uninstall.cmd trunk/plugins/TVSAuditor/TVSAuditor.sln trunk/plugins/TVSAuditor/TVSAuditor.suo Added: trunk/plugins/TVSAuditor/TVSAuditor/CardInfo.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/CardInfo.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/CardInfo.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TVSAuditor +{ + public class CardInfo + { + + private string username; + private TVSinterface.CardStatus status; + private string cardname; + private int cardId; + + + public CardInfo() + { + } + + public string Username { + get { return username;} + set { username = value; } + } + + + public string Cardname + { + get { return cardname; } + set { cardname = value; } + } + + + public int CardId + { + get { return cardId; } + set { cardId = value; } + } + + + public TVSinterface.CardStatus Status + { + get { return status; } + set { status = value; } + } + + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/CommonSettings.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/CommonSettings.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/CommonSettings.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,258 @@ +using System; +using System.Text; +using System.Xml; +using System.IO; + +namespace TVSAuditor +{ + public static class CommonSettings + { + + public const string APP_DATA_DIRECTORY_NAME = "TVSAuditor"; + public const string TVSERVICE_PROCESS_NAME = "TVService"; + public const string SETTINGS_FILENAME = "TVSAuditor.xml"; + + private const string CPU_MAX_USAGE_BUSY_KEY = "CpuUsageBusy"; + private const string CPU_MAX_USAGE_IDLE_KEY = "CpuUsageIdle"; + private const string MEMORY_MAX_USAGE_KEY = "MemoryUsage"; + private const string TIMESHIFT_USERS_KEY = "TimeshiftUsers"; + private const string AUDIT_INTERVAL_KEY = "AuditInterval"; + private const string LOG_LEVEL_KEY = "LogLevel"; + private const string COMMON_SETTINGS_ELEMENT = "CommonSettings"; + + private static string[] SPLIT_STRING = new string[] { "," }; + private static XmlDocument doc; + + + public static int AuditInterval + { + get + { + int retVal = 180000; + int.TryParse(LoadElement(AUDIT_INTERVAL_KEY), out retVal); + return retVal; + } + set + { + CreateElement(AUDIT_INTERVAL_KEY, value.ToString()); + } + } + + + public static Logger.Level LogLevel + { + get + { + try + { + return (Logger.Level)Enum.Parse(typeof(Logger.Level), LoadElement(LOG_LEVEL_KEY).ToUpper()); + } + catch (Exception) + { + Logger.Warn("Unkown log level from settings file - Possible levels are: DEBUG, INFO, WARNING, ERROR"); + return Logger.Level.INFO; + } + } + set + { + CreateElement(LOG_LEVEL_KEY, value.ToString("G")); + } + } + + + public static string[] TimeshiftUsers + { + get + { + string[] users = LoadElement(MEMORY_MAX_USAGE_KEY).Split(SPLIT_STRING,StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < users.Length; i++) + { + users[i] = users[i].Trim(); + } + return users; + } + set + { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < value.Length; i++) + { + if (!String.IsNullOrEmpty(value[i].Trim())) + sb.Append(value[i].Trim()); + if (i < value.Length - 1) sb.Append(SPLIT_STRING); + } + CreateElement(TIMESHIFT_USERS_KEY, sb.ToString()); + } + } + + + + public static double MemoryMaxUsage + { + get + { + double retVal = 100f; + double.TryParse(LoadElement(MEMORY_MAX_USAGE_KEY), out retVal); + return retVal; + } + set + { + CreateElement(MEMORY_MAX_USAGE_KEY, value.ToString("f")); + } + } + + + public static float CpuMaxUsageBusy + { + get { + float retVal = 100f; + float.TryParse(LoadElement(CPU_MAX_USAGE_BUSY_KEY), out retVal); + return retVal; + } + set + { + CreateElement(CPU_MAX_USAGE_BUSY_KEY, value.ToString("f")); + } + } + + + public static float CpuMaxUsageIdle + { + get + { + float retVal = 100f; + float.TryParse(LoadElement(CPU_MAX_USAGE_IDLE_KEY), out retVal); + return retVal; + } + set + { + CreateElement(CPU_MAX_USAGE_IDLE_KEY, value.ToString("f")); + } + } + + + public static string AppDataPath + { + get + { + return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\" + APP_DATA_DIRECTORY_NAME; + } + } + + + public static void InitialLoading() + { + doc = new XmlDocument(); + FileStream fs = null; + + if (!Directory.Exists(AppDataPath)) Directory.CreateDirectory(AppDataPath); + string file = AppDataPath + @"\" + SETTINGS_FILENAME; + + try + { + if (!File.Exists(file)) + { + Logger.Info("Settings Load - Initializing new settings file"); + XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"); + doc.AppendChild(dec); + XmlComment comment = doc.CreateComment("Settings " + SETTINGS_FILENAME); + doc.AppendChild(comment); + XmlElement startElem = doc.CreateElement(COMMON_SETTINGS_ELEMENT); + doc.AppendChild(startElem); + } + else + { + Logger.Info("Settings Load - Loading settings from " + file); + fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + doc.Load(fs); + } + } + catch (Exception ex) + { + Logger.Warn("Settings Load - Error loading settings " + ex.Message); + } + finally + { + try + { + if (fs != null) fs.Close(); + } + catch (Exception ex) + { + Logger.Warn("Settings Load - Error closing settings file " + ex.Message); + } + } + } + + + private static void CreateElement(string key, string value) + { + if (key == null || value == null) throw new ArgumentException("key or value can't be null"); + + if (doc == null) InitialLoading(); + + for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++) + { + if (doc.DocumentElement.ChildNodes[i].Name == key) + { + doc.DocumentElement.ChildNodes[i].InnerText = value; + return; + } + } + + XmlElement elem = doc.CreateElement(key); + elem.InnerText = value; + doc.DocumentElement.AppendChild(elem); + } + + + private static string LoadElement(string key) + { + if (key == null) return ""; + + if (doc == null) InitialLoading(); + + if (doc.DocumentElement == null) throw new Exception("Settings file corrupted"); + + for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++) + { + if (doc.DocumentElement.ChildNodes[i].Name == key) + return doc.DocumentElement.ChildNodes[i].InnerText; + } + return ""; + } + + + public static void Save() + { + if (doc == null) throw new Exception("doc is null, settings file not initially loaded"); + + string file = AppDataPath + @"\" + SETTINGS_FILENAME; + + XmlTextWriter writer = null; + try + { + if (!Directory.Exists(AppDataPath)) Directory.CreateDirectory(AppDataPath); + writer = new XmlTextWriter(file, Encoding.UTF8); + Logger.Info("Settings Save - Saving settings to " + file); + writer.Formatting = Formatting.Indented; + doc.WriteTo(writer); + } + catch (Exception ex) + { + Logger.Warn("Settings Save - Error saving settings " + ex.Message); + } + finally + { + try + { + if (writer != null) writer.Close(); + } + catch (Exception ex) + { + Logger.Warn("Settings Save - Error closing settings file " + ex.Message); + } + } + } + + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Logging/ErrorFileLogHandler.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Logging/ErrorFileLogHandler.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Logging/ErrorFileLogHandler.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,19 @@ +using System; + +namespace TVSAuditor +{ + public class ErrorFileLogHandler: FileLogHandler + { + + public ErrorFileLogHandler(string logFile) : base(logFile) + { + } + + + public override void Log(string message, Logger.Level level) + { + if (level < Logger.Level.WARNING) return; + base.Log(message, level); + } + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Logging/FileLogHandler.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Logging/FileLogHandler.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Logging/FileLogHandler.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,130 @@ +using System; +using System.IO; + +namespace TVSAuditor +{ + public class FileLogHandler : ILogHandler + { + + protected string logFile; + protected string logDir; + protected object syncAccess = new object(); + protected StreamWriter writer; + + + public FileLogHandler(string logFile) + { + if (logFile == null) throw new ArgumentException("logfile can't be null"); + this.logFile = logFile; + + try + { + logDir = Directory.GetParent(logFile).FullName; + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + + RotateLogFile(); + Open(); + Logger.AddLogHandler(this); + } + + + protected void Open() + { + try + { + string logDir = Directory.GetParent(logFile).FullName; + if (!Directory.Exists(logDir)) + { + Directory.CreateDirectory(logDir); + } + writer = new StreamWriter(File.Open(logFile, FileMode.Append, FileAccess.Write, FileShare.Read)); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + try + { + if (writer != null) writer.Close(); + } + catch (Exception ex2) + { + System.Diagnostics.Debug.WriteLine(ex2.Message); + } + } + } + + + public void Close() + { + try + { + if (writer != null) writer.Close(); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + + + public void RotateLogFile() + { + if (String.IsNullOrEmpty(logFile)) return; + + + int count = 5; + for (int i = count; i > 0; i--) + { + try + { + string sourceFile = logFile + "." + (i - 1); + string targetFile = logFile + "." + i; + if (i == 1) sourceFile = logFile; + + if (File.Exists(targetFile)) File.Delete(targetFile); + if (File.Exists(sourceFile)) File.Move(sourceFile, targetFile); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + } + + + public void DeleteLogFile() + { + if (String.IsNullOrEmpty(logFile)) return; + + try + { + if (File.Exists(logFile)) File.Delete(logFile); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + + + public virtual void Log(string message, Logger.Level level) + { + try + { + writer.WriteLine(DateTime.Now + " - " + level.ToString("G") + "\t" + message); + writer.Flush(); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + } + } + + + } + +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Logging/GuiLogHandler.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Logging/GuiLogHandler.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Logging/GuiLogHandler.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,60 @@ +using System; +using System.Text; + +namespace TVSAuditor +{ + public class GuiLogHandler : ILogHandler + { + + private SendMessage sendMessage; + + + public delegate void SendMessage(string message); + + + public GuiLogHandler(SendMessage sendMessage) + { + if (sendMessage == null) throw new ArgumentException("SendMessage can't be null"); + this.sendMessage = sendMessage; + Logger.AddLogHandler(this); + } + + + public void Log(string message, Logger.Level level) + { + string logLevel; + switch (level) + { + case Logger.Level.INFO: + logLevel = "Info"; + break; + case Logger.Level.WARNING: + logLevel = "Warning"; + break; + case Logger.Level.ERROR: + logLevel = "Error"; + break; + default: + logLevel = "Unknow"; + return; + } + + StringBuilder sb = new StringBuilder(); + sb.Append(DateTime.Now.ToString()); + sb.Append(" :: "); + sb.Append(logLevel); + sb.Append(" :: "); + sb.Append(message); + sb.Append(Environment.NewLine); + + sendMessage(sb.ToString()); + } + + + public void Close() + { + // No need to close anything + } + + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Logging/ILogHandler.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Logging/ILogHandler.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Logging/ILogHandler.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,12 @@ + +namespace TVSAuditor +{ + public interface ILogHandler + { + + void Log(string message, Logger.Level level); + + void Close(); + + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Logging/Logger.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Logging/Logger.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Logging/Logger.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,97 @@ +using System.Collections.Generic; + +namespace TVSAuditor +{ + public static class Logger + { + public enum Level { + DEBUG = 50, + INFO = 100, + WARNING = 200, + ERROR = 300 + } + + private static Level reportLevel = Level.INFO; + + private static List<ILogHandler> logHandler = new List<ILogHandler>(); + + + public static Level ReportLevel + { + get { return reportLevel; } + set { reportLevel = value; } + } + + + public static bool IsLoggable(Level level) + { + return (level > reportLevel); + } + + + public static void AddLogHandler(ILogHandler lh) + { + if (lh != null && ! logHandler.Contains(lh)) + logHandler.Add(lh); + } + + + public static void RemoveLogHandler(ILogHandler lh) + { + if (lh != null) + logHandler.Remove(lh); + } + + + public static void RemoveAllHandlers() + { + logHandler.Clear(); + } + + + public static void Close() + { + foreach (ILogHandler lh in logHandler) + { + if (lh != null) + lh.Close(); + } + } + + + public static void Log(string logMessage, Level level) + { + if (level < reportLevel) return; + + foreach (ILogHandler lh in logHandler) + { + if (lh != null) + lh.Log(logMessage, level); + } + } + + + public static void Info(string logMessage) + { + Log(logMessage, Level.INFO); + } + + + public static void Warn(string logMessage) + { + Log(logMessage, Level.WARNING); + } + + + public static void Error(string logMessage) + { + Log(logMessage, Level.ERROR); + } + + + public static void Debug(string logMessage) + { + Log(logMessage, Level.DEBUG); + } + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Properties/AssemblyInfo.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("TVSAuditor")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TVSAuditor")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("82559b46-4223-4aeb-b2f9-29508b64f529")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +[assembly: AssemblyVersion("0.0.1.8")] +[assembly: AssemblyFileVersion("0.0.1.8")] Added: trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,303 @@ +using System.Collections.Generic; +using System.IO; +using System; +using System.ServiceProcess; +using System.Timers; + + +namespace TVSAuditor +{ + + public class TVSAuditor : ServiceBase + { + + public const string LOGFILENAME = "TVSAuditor.log"; + public const string ERROR_LOGFILENAME = "TVSAuditor.err"; + public const string SERVICE_NAME = "TVSAuditor"; + + + private Timer timer; + private TVSinterface tvsi; + + + static void Main() + { +//#if (!DEBUG) + ServiceBase.Run(new TVSAuditor()); +//#else +// TVSAuditor service = new TVSAuditor(); + +// service.AuditEvent(null, null); +//#endif + } + + + public TVSAuditor() + { + new FileLogHandler(CommonSettings.AppDataPath + @"\" + LOGFILENAME); + new ErrorFileLogHandler(CommonSettings.AppDataPath + @"\" + ERROR_LOGFILENAME); + + // Set default value for settings if no settings file found + if (File.Exists(CommonSettings.AppDataPath + @"\" + CommonSettings.SETTINGS_FILENAME)) + { + CommonSettings.InitialLoading(); + } + else + { + CommonSettings.LogLevel = Logger.Level.DEBUG; + CommonSettings.AuditInterval = 300; + CommonSettings.CpuMaxUsageBusy = 70f; + CommonSettings.CpuMaxUsageIdle = 30f; + CommonSettings.MemoryMaxUsage = 100d; + //CommonSettings.TimeshiftUsers = new string[] { "" }; + CommonSettings.Save(); + } + + Logger.ReportLevel = CommonSettings.LogLevel; + + this.ServiceName = SERVICE_NAME; + this.EventLog.Log = "Application"; + + try + { + EventLog.WriteEntry("Logging to " + CommonSettings.AppDataPath + @"\" + LOGFILENAME); + } + catch (Exception ex) + { + // Try to log to own logging system + Logger.Warn("Unable to log to Windows eventlog: " + ex.Message); + } + + // These Flags set whether or not to handle that specific + // type of event. Set to true if you need it, false otherwise. + this.CanHandlePowerEvent = true; + this.CanHandleSessionChangeEvent = true; + this.CanPauseAndContinue = true; + this.CanShutdown = true; + this.CanStop = true; + + } + + + protected override void Dispose(bool disposing) + { + Logger.Close(); + base.Dispose(disposing); + } + + + protected override void OnStart(string[] args) + { + string path = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath); + string serviceVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(path + @"\" + SERVICE_NAME + ".exe").ProductVersion; + + Logger.Info("Starting " + SERVICE_NAME + " v" + serviceVersion); + Logger.Info("Log level: " + Logger.ReportLevel.ToString("G")); + timer = new Timer(); + timer.Elapsed += new ElapsedEventHandler( AuditEvent ); + timer.Interval = CommonSettings.AuditInterval * 1000; + timer.Start(); + Logger.Info("Started audit timer with interval: " + CommonSettings.AuditInterval + "s"); + } + + + protected override void OnStop() + { + Logger.Info("Stoping " + SERVICE_NAME); + if (timer != null) + { + timer.Stop(); + timer.Dispose(); + } + } + + + protected override void OnPause() + { + Logger.Info("Pause " + SERVICE_NAME); + if (timer != null) + { + timer.Stop(); + } + } + + + protected override void OnContinue() + { + Logger.Info("Continue " + SERVICE_NAME); + if (timer != null) + { + timer.Start(); + } + } + + + protected override void OnShutdown() + { + Logger.Info("System Shutdown"); + base.OnShutdown(); + } + + + protected override void OnCustomCommand(int command) + { + base.OnCustomCommand(command); + } + + + protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus) + { + Logger.Info("PowerEvent: " + powerStatus.ToString()); + return base.OnPowerEvent(powerStatus); + } + + + protected override void OnSessionChange(SessionChangeDescription changeDescription) + { + Logger.Info("SessionEvent: " + changeDescription.Reason.ToString()); + base.OnSessionChange(changeDescription); + } + + + + private void AuditEvent(object source, ElapsedEventArgs e) + { + string serviceName = CommonSettings.TVSERVICE_PROCESS_NAME; + + if (!Tools.IsServiceRunning(serviceName)) + { + Logger.Warn("TVService is not running, abording audit"); + return; + } + + DateTime startDate = DateTime.Now; + Logger.Debug("**** START Audit for timestamp: " + startDate); + + // Connect to TVS + if (tvsi != null) + { + tvsi.Disconnect(); + tvsi = null; + } + tvsi = new TVSinterface(); + // Add card to hide + //tvsi.AddCardToHide("RadioWebStream Card (builtin)"); + if (!TVSinterface.IsConnected()) + { + Logger.Warn("AP00: Unable to connect to TVService - ACTION: Should Restart TVService"); + return; + } + + // Show stati for all cards + //tvsi.ShowAllCardsStatus(); + + // Preload settings + float cpuMaxUsageBusy = CommonSettings.CpuMaxUsageBusy; + Logger.Debug("A: Loaded CPU max busy usage from settings: " + cpuMaxUsageBusy + "%"); + float cpuMaxUsageIdle = CommonSettings.CpuMaxUsageIdle; + Logger.Debug("A: Loaded CPU max idle usage from settings: " + cpuMaxUsageIdle + "%"); + double memMaxUsage = CommonSettings.MemoryMaxUsage; + Logger.Debug("A: Loaded Memory max usage from settings: " + memMaxUsage + "MB"); + + // Get process information + float cpuUsage = Tools.GetCpuUsage(serviceName, 5, 800); + Logger.Info("A: Current CPU usage: " + cpuUsage.ToString("F") + "%"); + double memUsage = Tools.GetMemoryUsage(serviceName); + Logger.Info("A: Current Memory usage: " + memUsage.ToString("F") + "MB"); + + // Get common card idle status + bool anyRecording = tvsi.AreAnyCards(TVSinterface.CardStatus.Recording); + Logger.Info("A: Are any cards recording: " + anyRecording); + bool anyTimeshifting = tvsi.AreAnyCards(TVSinterface.CardStatus.TimeShifting); + Logger.Info("A: Are any cards timeshifting: " + anyTimeshifting); + bool anyGrabbingEpg = tvsi.AreAnyCards(TVSinterface.CardStatus.GrabbingEpg); + Logger.Info("A: Are any cards grabbing epg: " + anyGrabbingEpg); + + bool allCardsIdle = tvsi.AreAllCardsIdle(); + Logger.Info("A: Are all cards idle: " + allCardsIdle); + + + if (memUsage > memMaxUsage) + { + Logger.Info("AP0: Memory usage is to high - ACTION: Should Restart TVService"); + } + else + { + Logger.Info("AP0: Memory usage on normal level - ACTION: Restart TVService NOT necessary"); + } + + + if (!allCardsIdle) + { + Logger.Info("AP1: At least one card is in use"); + + if (tvsi.AreAnyCards(TVSinterface.CardStatus.Recording) || tvsi.AreAnyCards(TVSinterface.CardStatus.TimeShifting)) + { + if (cpuUsage > cpuMaxUsageBusy) + { + Logger.Info("AP11: CPU usage for TVS(epg grabbing) to high - ACTION: Should Restart TVService"); + } + else + { + Logger.Info("AP11: CPU usage for TVS(epg grabbing) on normal level - ACTION: Restart TVService NOT necessary"); + } + } + else + { + if (cpuUsage > cpuMaxUsageIdle) + { + Logger.Info("AP12: CPU usage for TVS(epg grabbing) to high - ACTION: Should Restart TVService"); + } + else + { + Logger.Info("AP12: CPU usage for TVS(epg grabbing) on normal level - ACTION: Restart TVService NOT necessary"); + } + } + } + else + { + Logger.Info("AP2: No cards are in use"); + if (cpuUsage > cpuMaxUsageIdle) + { + Logger.Info("AP21: CPU usage for TVS(idle) to high - ACTION: Should Restart TVService"); + } + else + { + Logger.Info("AP21: CPU usage for TVS(idle) on normal level - ACTION: Restart TVService NOT necessary"); + } + } + + + // Disconnect from TVS + tvsi.Disconnect(); + tvsi = null; + + Logger.Debug("**** END Audit for timestamp: " + startDate); + System.GC.Collect(); + } + + + private void RestartTVS() + { + string serviceName = CommonSettings.TVSERVICE_PROCESS_NAME; + + if (!Tools.ServiceStop(serviceName, 10)) + { + if (!Tools.ProcessStop(serviceName, 10, true)) + { + Logger.Warn("TVService can't be killed !!!"); + } + + } + + System.Threading.Thread.Sleep(2000); + + if (!Tools.ServiceStart(serviceName, 30)) + { + Logger.Warn("TVService can't be started"); + } + } + + } + +} Added: trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.30729</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{BA83ED82-64A8-4DCB-B4D9-AAA3F4FFE785}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>TVSAuditor</RootNamespace> + <AssemblyName>TVSAuditor</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <TargetFrameworkSubset> + </TargetFrameworkSubset> + <StartupObject>TVSAuditor.TVSAuditor</StartupObject> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + <ItemGroup> + <Compile Include="CardInfo.cs" /> + <Compile Include="CommonSettings.cs" /> + <Compile Include="Logging\ErrorFileLogHandler.cs" /> + <Compile Include="Logging\FileLogHandler.cs" /> + <Compile Include="Logging\GuiLogHandler.cs" /> + <Compile Include="Logging\ILogHandler.cs" /> + <Compile Include="Logging\Logger.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="TVSAuditor.cs"> + <SubType>Component</SubType> + </Compile> + <Compile Include="TVSAuditorInstaller.cs"> + <SubType>Component</SubType> + </Compile> + <Compile Include="Tools.cs" /> + <Compile Include="TVSinterface.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Configuration.Install" /> + <Reference Include="System.Data" /> + <Reference Include="System.ServiceProcess" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.XML" /> + <Reference Include="TvControl, Version=0.9.3.968, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal TV Server\TvControl.dll</HintPath> + </Reference> + <Reference Include="TvLibrary.Interfaces, Version=0.9.3.965, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal TV Server\TvLibrary.Interfaces.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + </ItemGroup> +</Project> \ No newline at end of file Added: trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj.user =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj.user (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditor.csproj.user 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> \ No newline at end of file Added: trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditorInstaller.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditorInstaller.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/TVSAuditorInstaller.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,35 @@ +using System.ComponentModel; +using System.Configuration.Install; +using System.ServiceProcess; + +namespace TVSAuditor +{ + [RunInstaller(true)] + public class TVSAuditorInstaller : Installer + { + + public TVSAuditorInstaller() + { + ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller(); + ServiceInstaller serviceInstaller = new ServiceInstaller(); + + // Service Account Information + serviceProcessInstaller.Account = ServiceAccount.LocalSystem; + serviceProcessInstaller.Username = null; + serviceProcessInstaller.Password = null; + + // Service Information + serviceInstaller.DisplayName = TVSAuditor.SERVICE_NAME; + serviceInstaller.StartType = ServiceStartMode.Automatic; + serviceInstaller.Description = + "Audits the state of Mediaportal's TVService during runtime and schdules a restart if necessary"; + + // This must be identical to the MpshService.ServiceBase name + serviceInstaller.ServiceName = TVSAuditor.SERVICE_NAME; + + this.Installers.Add(serviceProcessInstaller); + this.Installers.Add(serviceInstaller); + } + } + +} Added: trunk/plugins/TVSAuditor/TVSAuditor/TVSinterface.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/TVSinterface.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/TVSinterface.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Text; +using System.Text.RegularExpressions; +using TvControl; +using TvLibrary.Channels; + +namespace TVSAuditor +{ + public class TVSinterface + { + + public static Regex NO_USERNAME_PATTERN = new Regex("NoUser"); + public static Regex EPG_USERNAME_PATTERN = new Regex("epg"); + public static Regex RECORDING_USERNAME_PATTERN = new Regex(@"scheduler\d+"); + + public enum CardStatus : int + { + TimeShifting = 1, + Recording = 2, + GrabbingEpg = 4 + } + + + private enum InternalCardStatus : int + { + TunerLocked = 1, + CardLocked = 2, + CardInUse = 3 + } + + + private User user; + private Dictionary<string, int> hideMap; + + + public TVSinterface() + { + user = new User(); + hideMap = new Dictionary<string, int>(); + RemoteControl.Clear(); + RemoteControl.HostName = "localhost"; + } + + + public void AddCardToHide(string name) + { + if (name == null) throw new ArgumentNullException("name can't be null"); + + int cardCount = CardCount(); + for (int i = 0; i < cardCount; ++i) + { + try + { + int cardId = RemoteControl.Instance.CardId(i); + string currentName = RemoteControl.Instance.CardName(cardId); + if (name == currentName) + hideMap.Add(name, i); + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Problem getting card name - " + ex.Message); + } + } + } + + + public void RemoveCardToHide(string name) + { + if (name == null) throw new ArgumentNullException("name can't be null"); + hideMap.Remove(name); + } + + + public string[] GetHideList() + { + string[] nameArray = new string[hideMap.Count]; + hideMap.Keys.CopyTo(nameArray,0); + + return nameArray; + } + + + public static bool IsConnected() + { + return RemoteControl.IsConnected; + } + + + public void Disconnect() + { + user = null; + RemoteControl.Clear(); + } + + + public void ShowAllCardsStatus() + { + int cardCount = CardCount(); + for (int i = 0; i < cardCount; ++i) + { + if (hideMap.ContainsValue(i)) continue; + ShowCardStatus(i); + } + } + + + public int CardCount() + { + try + { + return RemoteControl.Instance.Cards; + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Problem getting number of cards - " + ex.Message); + } + + return -1; + } + + + public void ShowCardStatus(int index) + { + try + { + int cardId = RemoteControl.Instance.CardId(index); + user = new User(); + user.CardId = cardId; + VirtualCard card = new VirtualCard(user, RemoteControl.HostName); + + string messageHeader = "Tvsi: card " + index; + StringBuilder sb = new StringBuilder(messageHeader); + sb.Append(" Type: " + card.Type); + sb.Append(", Name: " + card.Name); + sb.Append(", Device: " + card.Device); + sb.Append(", IsScanning: " + card.IsScanning); + sb.Append(", IsScrambled: " + card.IsScrambled); + sb.Append(", ChannelName: " + card.ChannelName); + sb.Append(", Channel: " + card.Channel); + sb.Append(", SignalQuality: " + card.SignalQuality); + sb.Append(", SignalLevel: " + card.SignalLevel); + sb.Append(", IsTunerLocked: " + card.IsTunerLocked); + Logger.Debug(sb.ToString()); + + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Problem showing card " + index + " stati - " + ex.Message); + } + } + + + private bool IsCard(int index, InternalCardStatus internalStatus, string username) + { + if (username == null) throw new ArgumentNullException("username can't be null"); + + bool retVal = false; + try + { + int cardId = RemoteControl.Instance.CardId(index); + user = new User(); + user.CardId = cardId; + user.Name = username; + string cardname = RemoteControl.Instance.CardName(cardId); + VirtualCard card = new VirtualCard(user, RemoteControl.HostName); + + switch (internalStatus) + { + case InternalCardStatus.TunerLocked: + retVal = RemoteControl.Instance.TunerLocked(cardId); + break; + case InternalCardStatus.CardLocked: + retVal = card.IsLocked(out user); + break; + case InternalCardStatus.CardInUse: + retVal = RemoteControl.Instance.IsCardInUse(cardId, out user); + break; + } + Logger.Debug("Tvsi: Status for card " + cardname + ", user " + username + ", action " + internalStatus.ToString("G") + " is: " + retVal); + + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Unable to determine card" + index + " usage - " + ex.Message); + } + + return retVal; + } + + + public bool IsAnyCardRecording() + { + try + { + return RemoteControl.Instance.IsAnyCardRecording(); + + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Unable to determine any recording card - " + ex.Message); + } + + return false; + } + + + public bool AreAllCardsIdle() + { + int cardCount = CardCount(); + for (int i = 0; i < cardCount; ++i) + { + if (hideMap.ContainsValue(i)) continue; + + string username = CardUser(i, InternalCardStatus.CardInUse); + if (!NO_USERNAME_PATTERN.IsMatch(username)) return false; + } + return true; + } + + + private string CardUser(int index, InternalCardStatus internalStatus) + { + string username = NO_USERNAME_PATTERN.ToString(); + bool inUse = false; + try + { + int cardId = RemoteControl.Instance.CardId(index); + user = new User(); + user.CardId = cardId; + string cardname = RemoteControl.Instance.CardName(cardId); + VirtualCard card = new VirtualCard(user, RemoteControl.HostName); + + switch (internalStatus) + { + case InternalCardStatus.TunerLocked: + inUse = RemoteControl.Instance.TunerLocked(cardId); + break; + case InternalCardStatus.CardLocked: + inUse = card.IsLocked(out user); + break; + case InternalCardStatus.CardInUse: + inUse = RemoteControl.Instance.IsCardInUse(cardId, out user); + break; + } + if (user != null) username = user.Name; + Logger.Debug("Tvsi: User for " + cardname + " with status " + internalStatus.ToString("G") + " is: " + username); + } + catch (Exception ex) + { + Logger.Warn("Tvsi: Unable to determine user for card" + index + " - " + ex.Message); + } + + return username; + } + + + public bool AreAnyCards(CardStatus status) + { + int cardCount = CardCount(); + for (int i = 0; i < cardCount; ++i) + { + if (hideMap.ContainsValue(i)) continue; + + string username = CardUser(i, InternalCardStatus.CardInUse); + switch (status) + { + case CardStatus.TimeShifting: + if (!NO_USERNAME_PATTERN.IsMatch(username) && + !EPG_USERNAME_PATTERN.IsMatch(username) && + !RECORDING_USERNAME_PATTERN.IsMatch(username)) + return true; + break; + case CardStatus.Recording: + if (RECORDING_USERNAME_PATTERN.IsMatch(username)) + return true; + break; + case CardStatus.GrabbingEpg: + if (EPG_USERNAME_PATTERN.IsMatch(username)) + return true; + break; + } + } + return false; + } + + } +} Added: trunk/plugins/TVSAuditor/TVSAuditor/Tools.cs =================================================================== --- trunk/plugins/TVSAuditor/TVSAuditor/Tools.cs (rev 0) +++ trunk/plugins/TVSAuditor/TVSAuditor/Tools.cs 2008-12-10 18:57:07 UTC (rev 2407) @@ -0,0 +1,663 @@ +using System; +using System.ServiceProcess; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Net.NetworkInformation; +using Microsoft.Win32; + +namespace TVSAuditor +{ + public static class Tools + { + + private const int SE_PRIVILEGE_ENABLED = 0x00000002; + private const int TOKEN_QUERY = 0x00000008; + private const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; + private const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; + public const int EWX_LOGOFF = 0x00000000; + public const int EWX_SHUTDOWN = 0x00000001; + public const int EWX_REBOOT = 0x00000002; + public const int EWX_FORCE = 0x00000004; + public const int EWX_POWEROFF = 0x00000008; + public const int EWX_FORCEIFHUNG = 0x00000010; + public const string RK_RUN = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; + + [Flags] + public enum EXECUTION_STATE : uint + { + ES_SYSTEM_REQUIRED = 0x00000001, + ES_DISPLAY_REQUIRED = 0x00000002, + ES_CONTINUOUS = 0x80000000, + ES_AWAYMODE_REQUIRED = 0x00000040 + } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + private struct TokPriv1Luid + { + public int Count; + public long Luid; + public int Attr; + } + + [DllImport("kernel32.dll", ExactSpelling = true)] + private static extern IntPtr GetCurrentProcess(); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); + + [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool ExitWindowsEx(int uFlags, int dwReason); + + [DllImport("Kernel32.DLL")] + private static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE state); + + [DllImport("user32")] + private static extern bool SetFocus(IntPtr hWnd); + + [DllImport("user32")] + private static extern bool SetForegroundWindow(IntPtr hWnd); + + [DllImport("user32")] + private static extern IntPtr GetForegroundWindow(); + + [DllImport("user32")] + private static extern bool BringWindowToTop(IntPtr hWnd); + + [DllImport("user32")] + private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); + + [DllImport("user32")] + private static extern bool AttachThreadInput(int nThreadId, int nThreadIdTo, bool bAttach); + + [DllImport("user32")] + private static extern int GetWindowThreadProcessId(IntPtr hWnd, int unused); + + [DllImport("user32")] + static extern bool IsWindowVisible(IntPtr hWnd); + + [DllImport("user32")] + static extern bool IsIconic(IntPtr hWnd); + + + public static bool ExitWindows(int flag) + { + bool ok = false; + + TokPriv1Luid tp; + tp.Count = 1; + tp.Luid = 0; + tp.Attr = SE_PRIVILEGE_ENABLED; + + try + { + IntPtr hproc = GetCurrentProcess(); + IntPtr htok = IntPtr.Zero; + ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); + ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid); + ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); + ok = ExitWindowsEx(flag, 0); + } + catch (Exception ex) + { + Logger.Warn("ExitWindows \"" + flag.ToString() + "\" - " + ex.Message); + } + return ok; + } + + + public static void KeepAlive() + { + SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_AWAYMODE_REQUIRED); + } + + + public static void TurnDisplayOn() + { + Logger.Info("Turn Display On - Trying to wake up the Display/TV"); + SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_DISPLAY_REQUIRED); + } + + + public static void Xsleep(int timeout) + { + if (timeout <= 0) return; + + DateTime currentMoment = DateTime.Now; + TimeSpan duration = new TimeSpan(0, 0, 0, timeout, 0); + DateTime end = currentMoment.Add(duration); + + while (end >= currentMoment) + { + System.Threading.Thread.Sleep(500); + currentMoment = DateTime.Now; + } + } + + + public static bool Ping(string host) + { + if (host == null) throw new ArgumentException("host can't be null"); + + Ping ping = new Ping(); + byte[] buffer = new byte[32]; + int timeout = 1000; + PingOptions pingOptions = new PingOptions(); + PingReply reply = ping.Send(host, timeout, buffer, pingOptions); + + + bool pingSuccess = false; + if (reply.Status == IPStatus.Success) + { + Logger.Info("Ping - Host \"" + host + "\" successfully reached within " + reply.RoundtripTime + "ms"); + pingSuccess = true; + //Console.WriteLine("Antwort in {0}ms erhalten", reply.RoundtripTime); + } + else if (reply.Status == IPStatus.TimedOut) + { + Logger.Info("Ping - Connection to host \"" + host + "\" timed out"); + pingSuccess = false; + } + else + { + Logger.Info("Ping - Unable to reach host \"" + host + "\", Message: " + reply.Status.ToString()); + pingSuccess = false; + } + + return pingSuccess; + } + + + public static string[] GetNetworkInterfaceNames() + { + NetworkInterface[] nifs = NetworkInterface.GetAllNetworkInterfaces(); + string[] nifNames = new string[nifs.Length]; + for (int i = 0; i < nifs.Length; i++) + { + nifNames[i] = nifs[i].Name; + } + return nifNames; + } + + + public static string GetNetworkInterfaceLoopbackName() + { + return NetworkInterface.GetAllNetworkInterfaces()[NetworkInterface.LoopbackInterfaceIndex].Name; + } + + + public static NetworkInterface GetNetworkInterface(string nifName) + { + NetworkInterface[] nifs = NetworkInterface.GetAllNetworkInterfaces(); + + NetworkInterface nif = null; + for (int i = 0; i < nifs.Length; i++) + { + if (nifs[i].Name.Equals(nifName)) + { + nif = nifs[i]; + break; + } + } + return nif; + } + + + public static bool CheckNetworkConnection(string nifName, int timeout) + { + if (nifName == null) throw new ArgumentException("nifName can't be null"); + if (timeout <= 0) return true; + + NetworkInterface nif = GetNetworkInterface(nifName); + if (nif == null) return false; + + DateTime currentMoment = DateTime.Now; + TimeSpan duration = new TimeSpan(0, 0, 0, timeout, 0); + DateTime end = currentMoment.Add(duration); + + bool gotConnection = false; + + while (end >= currentMoment) + { + // It seems that we need to retrieve the nif every time we check for its status... otherwise status will not be up to date + nif = GetNetworkInterface(nifName); + if (nif.OperationalStatus == OperationalStatus.Up) + { + gotConnection = true; + break; + } + System.Threading.Thread.Sleep(500); + currentMoment = DateTime.Now; + } + + if (gotConnection) Logger.Info("Check Network Connection - Interface " + nifName + " is UP"); + else Logger.Info("Check Network Connection - Interface " + nifName + " was not ready within " + timeout + "s"); + + return gotConnection; + } + + + public static bool IsProcessRunning(string processName) + { + ... [truncated message content] |
From: <j_b...@us...> - 2008-12-24 18:12:59
|
Revision: 2466 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2466&view=rev Author: j_burnette Date: 2008-12-24 18:12:50 +0000 (Wed, 24 Dec 2008) Log Message: ----------- Added Paths: ----------- trunk/plugins/mpUsenet/ trunk/plugins/mpUsenet/mpUsenet/ trunk/plugins/mpUsenet/mpUsenet/Clients/ trunk/plugins/mpUsenet/mpUsenet/Clients/AltBinz.cs trunk/plugins/mpUsenet/mpUsenet/Clients/IClient.cs trunk/plugins/mpUsenet/mpUsenet/Clients/SABnzbd.cs trunk/plugins/mpUsenet/mpUsenet/Properties/ trunk/plugins/mpUsenet/mpUsenet/Properties/AssemblyInfo.cs trunk/plugins/mpUsenet/mpUsenet/Sites/ trunk/plugins/mpUsenet/mpUsenet/Sites/Newzbin.cs trunk/plugins/mpUsenet/mpUsenet/Sites/NzbMatrix.cs trunk/plugins/mpUsenet/mpUsenet/bin/ trunk/plugins/mpUsenet/mpUsenet/bin/Debug/ trunk/plugins/mpUsenet/mpUsenet/bin/Debug/AxInterop.WMPLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Bass.Net.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/BassRegistration.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Core.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Dialogs.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/DirectShowLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/ICSharpCode.SharpZipLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Interop.WMPLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/MediaPortal.Support.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Utils.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/edtftpnet-1.2.2.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.dll trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.pdb trunk/plugins/mpUsenet/mpUsenet/bin/Debug/taglib-sharp.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/ trunk/plugins/mpUsenet/mpUsenet/bin/Release/AxInterop.WMPLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Bass.Net.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/BassRegistration.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/CSScriptLibrary.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Core.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Databases.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Dialogs.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/DirectShowLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/ICSharpCode.SharpZipLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Interop.WMPLib.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/MediaPortal.Support.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/Utils.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/edtftpnet-1.2.2.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.dll trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.pdb trunk/plugins/mpUsenet/mpUsenet/bin/Release/taglib-sharp.dll trunk/plugins/mpUsenet/mpUsenet/config.Designer.cs trunk/plugins/mpUsenet/mpUsenet/config.cs trunk/plugins/mpUsenet/mpUsenet/config.resx trunk/plugins/mpUsenet/mpUsenet/mpUsenet.csproj trunk/plugins/mpUsenet/mpUsenet/mpUsenetGUI.cs trunk/plugins/mpUsenet/mpUsenet/obj/ trunk/plugins/mpUsenet/mpUsenet/obj/Debug/ trunk/plugins/mpUsenet/mpUsenet/obj/Debug/Refactor/ trunk/plugins/mpUsenet/mpUsenet/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/mpUsenet/mpUsenet/obj/Debug/TempPE/ trunk/plugins/mpUsenet/mpUsenet/obj/Debug/mpUsenet.dll trunk/plugins/mpUsenet/mpUsenet/obj/Debug/mpUsenet.pdb trunk/plugins/mpUsenet/mpUsenet/obj/Release/ trunk/plugins/mpUsenet/mpUsenet/obj/Release/Refactor/ trunk/plugins/mpUsenet/mpUsenet/obj/Release/ResolveAssemblyReference.cache trunk/plugins/mpUsenet/mpUsenet/obj/Release/TempPE/ trunk/plugins/mpUsenet/mpUsenet/obj/Release/mpUsenet.config.resources trunk/plugins/mpUsenet/mpUsenet/obj/Release/mpUsenet.csproj.GenerateResource.Cache trunk/plugins/mpUsenet/mpUsenet/obj/Release/mpUsenet.dll trunk/plugins/mpUsenet/mpUsenet/obj/Release/mpUsenet.pdb trunk/plugins/mpUsenet/mpUsenet/obj/mpUsenet.csproj.FileListAbsolute.txt trunk/plugins/mpUsenet/mpUsenet/tvseriesTools.cs trunk/plugins/mpUsenet/mpUsenet.sln trunk/plugins/mpUsenet/mpUsenet.suo Added: trunk/plugins/mpUsenet/mpUsenet/Clients/AltBinz.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Clients/AltBinz.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Clients/AltBinz.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using System.IO; +using MediaPortal.ServiceImplementations; + +namespace mpUsenet.Clients +{ + class AltBinz:IClient + { + string _path; + int _maxSpeed; + + public AltBinz(string path, int maxSpeed) + { + _path = path; + _maxSpeed = maxSpeed; + } + + #region IClient Members + + public clientStatus getStatus() + { + clientStatus status = new clientStatus(); + try + { + if (!File.Exists(_path + "altbinz_status.xml")) + { + status.isAccessible = false; + return status; + } + + XmlDocument xml = new XmlDocument(); + xml.Load(XmlReader.Create(_path + "altbinz_status.xml")); + + status.queueRemaining = xml.SelectSingleNode("/altbinz/QueueSize").InnerText; + status.kbpersec = xml.SelectSingleNode("/altbinz/CurrentSpeed").InnerText.Replace("kb/s", ""); + status.queuetimeRemaining = xml.SelectSingleNode("/altbinz/ETA").InnerText; + status.targetDriveSpace = xml.SelectSingleNode("/altbinz/FreeSpace").InnerText; + status.isAccessible = true; + return status; + } + catch (FileNotFoundException) + { + Log.Error("mpUsenet - altbinz_status.xml not found. Expected file to be located at {0}. Ensure you have checked 'Enable status in XML file' in alt.binz Setup -> Miscellaneous #2 ", _path); + status.isAccessible = false; + return status; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error reading alt.binz status file."); + Log.Error(e.ToString()); + status.isAccessible = false; + return status; + } + + } + + public bool Pause() + { + return false; + } + + public bool Resume() + { + return false; + } + + public bool supportsPause + { + get { return false; } + } + + public bool supportsStatus + { + get { return true; } + } + + #endregion + } +} Added: trunk/plugins/mpUsenet/mpUsenet/Clients/IClient.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Clients/IClient.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Clients/IClient.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace mpUsenet.Clients +{ + interface IClient + { + clientStatus getStatus(); + bool Pause(); + bool Resume(); + bool supportsPause + { + get; + } + + } +} Added: trunk/plugins/mpUsenet/mpUsenet/Clients/SABnzbd.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Clients/SABnzbd.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Clients/SABnzbd.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,261 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using System.Xml; +using MediaPortal.ServiceImplementations; + +namespace mpUsenet.Clients +{ + class SABnzbd:IClient + { + string _host; + string _port; + int _maxSpeed; + string _username; + string _password; + + public bool supportsPause + { + get { return true; } + } + + + public SABnzbd(string host, string port, string username, string password, int maxSpeed) + { + _host = host; + _port = port; + _maxSpeed = maxSpeed; + _username = username; + _password = password; + } + + public clientStatus getStatus() + { + + UriBuilder uri = new UriBuilder(); + uri.Host = _host; + int intPort; + if (!int.TryParse(_port, out intPort)) + return new clientStatus(); + uri.Port = intPort; + uri.Path = "sabnzbd/api"; + uri.Query = "mode=qstatus&output=xml"; + XmlDocument statusXML = new XmlDocument(); + WebClient client = new WebClient(); + clientStatus _status = new clientStatus(); + string response; + try + { + // Log.Info("trying connection"); + response = client.DownloadString(uri.Uri); + } + catch + { + // Log.Info("no connection"); + _status.isAccessible = false; + return _status; + } + // Log.Info("connected"); + _status.isAccessible = true; + statusXML.LoadXml(response); + + if (statusXML.SelectSingleNode("/queue/paused").InnerText == "True") + _status.paused = true; + else _status.paused = false; + + _status.kbpersec = statusXML.SelectSingleNode("/queue/kbpersec").InnerText; + + if (_status.kbpersec.Contains(".")) + _status.kbpersec = _status.kbpersec.Remove(_status.kbpersec.IndexOf(".")); + _status.speedPercentage = (Math.Round(decimal.Parse(_status.kbpersec) / _maxSpeed * 100, 0)).ToString(); + + _status = getCurrJob(statusXML, _status); + + + _status.queueTotalSize = statusXML.SelectSingleNode("/queue/mb").InnerText; + if (_status.queueTotalSize.Contains(".")) + _status.queueTotalSize = _status.queueTotalSize.Remove(_status.queueTotalSize.IndexOf(".")); + _status.queueRemaining = statusXML.SelectSingleNode("/queue/mbleft").InnerText; + if (_status.queueRemaining.Contains(".")) + _status.queueRemaining = _status.queueRemaining.Remove(_status.queueRemaining.IndexOf(".")); + + + _status.tempDriveSpace = statusXML.SelectSingleNode("/queue/diskspace1").InnerText; + _status.tempDriveSpace = Math.Round(double.Parse(_status.tempDriveSpace), 0).ToString(); + _status.targetDriveSpace = statusXML.SelectSingleNode("/queue/diskspace2").InnerText; + _status.targetDriveSpace = Math.Round(double.Parse(_status.targetDriveSpace), 0).ToString(); + _status.queuetimeRemaining = statusXML.SelectSingleNode("/queue/timeleft").InnerText; + _status.overview = createOverview(_status); + + return _status; + + + } + + public bool Pause() + { + UriBuilder uri = new UriBuilder(); + uri.Host = _host; + int intPort; + if (!int.TryParse(_port, out intPort)) + return false; + uri.Port = intPort; + uri.Path = "sabnzbd/api"; + uri.Query = "mode=pause"; + // XmlDocument statusXML = new XmlDocument(); + WebClient client = new WebClient(); + string response; + try + { + // Log.Info("trying connection"); + response = client.DownloadString(uri.Uri); + } + catch + { + + return false; + } + return true; + } + + public bool Resume() + { + UriBuilder uri = new UriBuilder(); + uri.Host = _host; + int intPort; + if (!int.TryParse(_port, out intPort)) + return false; + uri.Port = intPort; + uri.Path = "sabnzbd/api"; + uri.Query = "mode=resume"; + WebClient client = new WebClient(); + string response; + try + { + response = client.DownloadString(uri.Uri); + } + catch + { + + return false; + } + return true; + + } + + clientStatus getCurrJob(XmlDocument statusXML,clientStatus _status) + { + // Log.Info("getting current jobs"); + try + { + if (statusXML.SelectSingleNode("/queue/jobs/job") != null) + { + XmlNode job = statusXML.SelectSingleNode("/queue/jobs/job"); + _status.jobFilename = job.SelectSingleNode("filename").InnerText; + _status.jobSizeRemaining = job.SelectSingleNode("mbleft").InnerText; + _status.jobTotalSize = job.SelectSingleNode("mb").InnerText; + if (_status.jobTotalSize == "0") + _status.jobPercentage = "0"; + else + _status.jobPercentage = (Math.Round((decimal.Parse(_status.jobTotalSize) - decimal.Parse(_status.jobSizeRemaining)) + / decimal.Parse(_status.jobTotalSize) * 100, 0)).ToString(); + if (_status.jobTotalSize.Contains(".")) + _status.jobTotalSize = _status.jobTotalSize.Remove(_status.jobTotalSize.IndexOf(".")); + if (_status.jobSizeRemaining.Contains(".")) + _status.jobSizeRemaining = _status.jobSizeRemaining.Remove(_status.jobSizeRemaining.IndexOf(".")); + + if (_status.jobPercentage != "0" && _status.kbpersec != "0") + { + string minutes = ((int.Parse(_status.jobSizeRemaining) * 1024) / int.Parse(_status.kbpersec) / 60).ToString(); + string seconds = ((int.Parse(_status.jobSizeRemaining) * 1024) / int.Parse(_status.kbpersec) % 60).ToString(); + if (seconds.Length == 1) seconds = "0" + seconds; + _status.jobtimeRemaining = minutes + ":" + seconds; + } + else + _status.jobtimeRemaining = "0:00"; + + // Log.Info("returning jobs"); + return _status; + } + + _status.jobFilename = "Nothing"; + _status.jobSizeRemaining = "0"; + _status.jobTotalSize = "0"; + _status.jobPercentage = "0"; + _status.jobtimeRemaining = "0:00"; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error parsing SABnzbd jobs."); + Log.Error(e.ToString()); + } + return _status; + } + + string createOverview(clientStatus _status) + { + try + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("Downloading: " + _status.jobFilename); + sb.AppendLine("Speed: " + _status.kbpersec); + sb.AppendLine("Amount Left: " + _status.jobSizeRemaining); + sb.AppendLine("ETA: " + _status.queuetimeRemaining); + + return sb.ToString(); + } + catch { } + return "no overview"; + } + + public bool addNewzbinID(string id) + { + + UriBuilder uri = new UriBuilder(); + uri.Host = _host; + int intPort; + if (!int.TryParse(_port, out intPort)) + return false; + uri.Port = intPort; + uri.Path = "sabnzbd/api"; + uri.Query = "mode=addid&name=" + id; + // XmlDocument statusXML = new XmlDocument(); + WebClient client = new WebClient(); + string response; + try + { + // Log.Info("trying connection"); + response = client.DownloadString(uri.Uri); + } + catch + { + + return false; + } + return true; + + } + + } + + class clientStatus + { + public bool isAccessible; + public bool paused; + public string overview; + public string kbpersec; + public string jobFilename; + public string jobSizeRemaining; + public string queuetimeRemaining; + public string jobtimeRemaining; + public string queueRemaining; + public string queueTotalSize; + public string tempDriveSpace; + public string targetDriveSpace; + public string speedPercentage; + public string jobPercentage; + public string jobTotalSize; + + } +} Added: trunk/plugins/mpUsenet/mpUsenet/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Properties/AssemblyInfo.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("mpUsenet")] +[assembly: AssemblyDescription("MediaPortal Plugin for NZB downloading")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("mpUsenet")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ac85245c-33bc-4157-a582-b356a0d88fa5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("0.1.0.0")] +[assembly: AssemblyFileVersion("0.1.0.0")] Added: trunk/plugins/mpUsenet/mpUsenet/Sites/Newzbin.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Sites/Newzbin.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Sites/Newzbin.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using System.Text.RegularExpressions; +using System.IO; +using MediaPortal.ServiceImplementations; + +namespace mpUsenet.Sites +{ + class Newzbin + { + string _NzbSessionID; + string _NzbSmoke; + + public Newzbin(string nzbsmoke, string nzbsessionid) + { + _NzbSessionID = nzbsessionid; + _NzbSmoke = nzbsmoke; + } + + bool refreshCookies() + { + try + { + MediaPortal.Profile.Settings settings = new MediaPortal.Profile.Settings(MediaPortal.Configuration.Config.GetFolder(MediaPortal.Configuration.Config.Dir.Plugins) + @"\Windows\mpUsenet.xml", false); + string user = settings.GetValue("Newzbin", "Username"); + string pass = settings.GetValue("Newzbin", "Password"); + + UriBuilder bldr = new UriBuilder("http://v3.newzbin.com"); + bldr.Path = "/account/login/"; + + HttpWebRequest cookieReq = (HttpWebRequest)HttpWebRequest.Create(bldr.Uri); + ASCIIEncoding encoding = new ASCIIEncoding(); + string postData = "ret_url=%2F&username=" + user + "&password=" + pass; + byte[] data = encoding.GetBytes(postData); + cookieReq.Method = "POST"; + cookieReq.ContentType = "application/x-www-form-urlencoded"; + cookieReq.ContentLength = data.Length; + cookieReq.AllowAutoRedirect = false; + Stream postStream = cookieReq.GetRequestStream(); + postStream.Write(data, 0, data.Length); + postStream.Close(); + + HttpWebResponse cookieRes = (HttpWebResponse)cookieReq.GetResponse(); + + string cookies = cookieRes.Headers[HttpResponseHeader.SetCookie]; + cookieRes.Close(); + cookies = cookies.Remove(0, cookies.IndexOf("=") + 1); + + string nzbsessionid = cookies; + nzbsessionid = nzbsessionid.Remove(nzbsessionid.IndexOf(";")); + + string nzbsmoke = cookies.Remove(0, cookies.IndexOf("e=") + 2); + nzbsmoke = nzbsmoke.Remove(nzbsmoke.IndexOf(";")); + + //Validate Cookies + + bldr.Path = "/account/login/cookie/"; + bldr.Query = "sid=" + nzbsessionid; + + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "NzbSessionID=" + nzbsessionid + "; NzbSmoke=" + nzbsmoke + "\r\n"); + + client.DownloadString(bldr.Uri); + cookies = client.ResponseHeaders[HttpResponseHeader.SetCookie]; + cookies = cookies.Remove(0, cookies.IndexOf("=") + 1); + + nzbsessionid = cookies; + nzbsessionid = nzbsessionid.Remove(nzbsessionid.IndexOf(";")); + _NzbSessionID = nzbsessionid; + + nzbsmoke = cookies.Remove(0, cookies.IndexOf("e=") + 2); + nzbsmoke = nzbsmoke.Remove(nzbsmoke.IndexOf(";")); + _NzbSmoke = nzbsmoke; + + settings.SetValue("Newzbin", "NzbSmoke", nzbsmoke); + settings.SetValue("Newzbin", "NzbSessionID", nzbsessionid); + settings.Dispose(); + + return true; + } + catch (Exception e) + { + Log.Error(e.ToString()); + return false; + } + + } + + public List<nzbItem> getItems(string cat, string page) + { + List<nzbItem> items = new List<nzbItem>(); + try + { + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "NzbSessionID=" + _NzbSessionID + "; NzbSmoke=" + _NzbSmoke + "\r\n"); + string rawHTML; + rawHTML = client.DownloadString("http://v3.newzbin.com/browse/category/p/" + cat + "/?page=" + page); + if (rawHTML.Contains("You need an account to proceed.")) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - Newzbin cookies need refreshed."); + if (refreshCookies()) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - Newzbin cookies refreshed. nzbsmoke={0} nzbsessionid={1}", _NzbSmoke, _NzbSessionID); + client.Headers.Set("Cookie", "NzbSessionID=" + _NzbSessionID + "; NzbSmoke=" + _NzbSmoke + "\r\n"); + rawHTML = client.DownloadString("http://v3.newzbin.com/browse/category/p/" + cat + "/?page=" + page); + } + else + { + MediaPortal.ServiceImplementations.Log.Error("mpUsenet - Unable to get Newzbin cookies. Check username/password."); + return items; + } + + } + items = parseHTML(rawHTML); + return items; + } + catch (WebException e) + { + Log.Error("mpUsenet - Error connecting to Newzbin."); + Log.Error(e.ToString()); + return items; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error parsing Newzbin feed."); + Log.Error(e.ToString()); + return items; + } + } + + public List<nzbItem> search(string searchString, string page) + { + List<nzbItem> items = new List<nzbItem>(); + try + { + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "NzbSessionID=" + _NzbSessionID + "; NzbSmoke=" + _NzbSmoke + "\r\n"); + string rawHTML; + rawHTML = client.DownloadString("http://v3.newzbin.com/search/query/?q=" + searchString + "&area=-1&fpn=p&searchaction=Go&areadone=-1&page=" + page); + if (rawHTML.Contains("You need an account to proceed.")) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - Newzbin cookies need refreshed."); + if (refreshCookies()) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - Newzbin cookies refreshed. nzbsmoke={0} nzbsessionid={1}", _NzbSmoke, _NzbSessionID); + client.Headers.Set("Cookie", "NzbSessionID=" + _NzbSessionID + "; NzbSmoke=" + _NzbSmoke + "\r\n"); + rawHTML = client.DownloadString("http://v3.newzbin.com/search/query/?q=" + searchString + "&area=-1&fpn=p&searchaction=Go&areadone=-1&page=" + page); + } + else + { + MediaPortal.ServiceImplementations.Log.Error("mpUsenet - Unable to get Newzbin cookies. Check username/password."); + return items; + } + + } + items = parseHTML(rawHTML); + return items; + } + catch (WebException e) + { + Log.Error("mpUsenet - Error connecting to Newzbin."); + Log.Error(e.ToString()); + return items; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error parsing Newzbin feed."); + Log.Error(e.ToString()); + return items; + } + } + + public bool downloadNZB(string id,string path,string filename) + { + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "NzbSessionID=" + _NzbSessionID + "; NzbSmoke=" + _NzbSmoke + "\r\n"); + + try + { + client.DownloadFile("http://v3.newzbin.com/browse/post/" + id + "/nzb", path + filename + ".nzb"); + } + catch (Exception e) + { + MediaPortal.ServiceImplementations.Log.Error(e.ToString()); + return false; + } + return true; + } + + List<nzbItem> parseHTML(string raw) + { + Regex postNameAndID = new Regex("/\\d{7}/\">.*<"); + Regex postID = new Regex("\\d{7}"); + Regex postName = new Regex(">.*<"); + + //this shows up when you're an editor and have recently created reports + if (raw.Contains("<h3>Previous Reports:</h3>")) + raw = raw.Remove(raw.IndexOf("<h3>Previous Reports:</h3>")); + + MatchCollection matches = postNameAndID.Matches(raw); + + List<nzbItem> items = new List<nzbItem>(); + + foreach (System.Text.RegularExpressions.Match match in matches) + { + + nzbItem item = new nzbItem(); + item.id = postID.Match(match.Value).Value; + item.name = postName.Match(match.Value).Value; + item.name = item.name.Remove(0, 1); + item.name = item.name.Remove(item.name.Length - 1); + item.name = item.name.Replace("&", "&"); + + items.Add(item); + } + if (items.Count > 0) + items = getAttribs(raw, items); + + return items; + } + + List<nzbItem>getAttribs(string raw, List<nzbItem> items) + { + raw = raw.Remove(0, raw.IndexOf("checkbox")); + + + Regex badMatches = new Regex("<td colspan=\"3\">\\s\\t{3}<span class=\"hover\">.*?</span>", RegexOptions.Singleline); + foreach (Match badmatch in badMatches.Matches(raw)) + raw = raw.Replace(badmatch.Value, ""); + Regex attribs = new Regex("<td colspan=\"3\">\\s*.*?</td>\\s*</tr>\\s\\t</tbody>", RegexOptions.Singleline); + + Regex html = new Regex("\\s*<[^<>]+>\\s*[:;]\\s*", RegexOptions.Singleline); + Regex html2 = new Regex("\\s*<[^<>]+>", RegexOptions.Singleline); + MatchCollection matches = attribs.Matches(raw); + + for (int i = 0; i < items.Count && i < matches.Count; i++) + items[i].description = matches[i].Value; + + for (int i = 0; i < items.Count; i++) + { + foreach (Match htmlmatch in html.Matches(items[i].description)) + items[i].description = items[i].description.Replace(htmlmatch.Value, " | "); + + foreach (Match html2match in html2.Matches(items[i].description)) + items[i].description = items[i].description.Replace(html2match.Value, " "); + items[i].description = items[i].description.Trim(); + } + + return items; + + } + + } +} Added: trunk/plugins/mpUsenet/mpUsenet/Sites/NzbMatrix.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/Sites/NzbMatrix.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/Sites/NzbMatrix.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; +using System.Net; +using System.IO; +using MediaPortal.ServiceImplementations; + +namespace mpUsenet.Sites +{ + class NzbMatrix + { + string _uid; + string _pass; + + public NzbMatrix(string uid, string pass) + { + _uid = uid; + _pass = pass; + } + + bool refreshCookies() + { + try + { + MediaPortal.Profile.Settings settings = new MediaPortal.Profile.Settings(MediaPortal.Configuration.Config.GetFolder(MediaPortal.Configuration.Config.Dir.Plugins) + @"\Windows\mpUsenet.xml", false); + string user = settings.GetValue("NZBMatrix", "Username"); + string password = settings.GetValue("NZBMatrix", "Password"); + + UriBuilder bldr = new UriBuilder("http://nzbmatrix.com"); + bldr.Path = "/account-login.php"; + + HttpWebRequest cookieReq = (HttpWebRequest)HttpWebRequest.Create(bldr.Uri); + ASCIIEncoding encoding = new ASCIIEncoding(); + string postData = "username=" + user + "&password=" + password; + byte[] data = encoding.GetBytes(postData); + cookieReq.Method = "POST"; + cookieReq.ContentType = "application/x-www-form-urlencoded"; + cookieReq.ContentLength = data.Length; + cookieReq.AllowAutoRedirect = false; + Stream postStream = cookieReq.GetRequestStream(); + postStream.Write(data, 0, data.Length); + postStream.Close(); + + HttpWebResponse cookieRes = (HttpWebResponse)cookieReq.GetResponse(); + + string cookies = cookieRes.Headers[HttpResponseHeader.SetCookie]; + cookieRes.Close(); + string uid = cookies.Remove(cookies.IndexOf(";")); + uid = uid.Replace("uid=", ""); + _uid = uid; + string pass = cookies.Remove(0, cookies.IndexOf("pass")); + pass = pass.Remove(pass.IndexOf(";")); + pass = pass.Replace("pass=", ""); + _pass = pass; + + settings.SetValue("NZBMatrix", "uid", _uid); + settings.SetValue("NZBMatrix", "pass", _pass); + settings.Dispose(); + + return true; + } + catch (Exception e) + { + Log.Error(e.ToString()); + return false; + } + + } + + public bool downloadNZB(string id,string path, string filename) + { + //http://v3.newzbin.com/browse/post/4059023/nzb + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "uid=" + _uid + "; pass=" + _pass); + + try + { + client.DownloadFile("http://nzbmatrix.com/nzb-download.php?id=" + id , path + filename + ".zip"); + } + catch (Exception e) + { + Log.Error(e.ToString()); + return false; + } + return true; + } + + public List<nzbItem> search(string searchString, string page) + { + List<nzbItem> items = new List<nzbItem>(); + try + { + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "uid=" + _uid + "; pass=" + _pass); + string rawHTML; + rawHTML = client.DownloadString("http://nzbmatrix.com/nzb-search.php?search=" + searchString + "&page=" + page); + if (rawHTML.Contains("You are not logged in.")) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - NZBMatrix cookies need refreshed."); + if (refreshCookies() && _uid != "" && _pass != "") + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - NZBMatrix cookies refreshed. uid={0} pass={1}", _uid, _pass); + client.Headers.Set("Cookie", "uid=" + _uid + "; pass=" + _pass); + rawHTML = client.DownloadString("http://nzbmatrix.com/nzb-search.php?search=" + searchString + "&page=" + page); + } + else + { + Log.Error("mpUsenet - Unable to get NZBMatrix cookies. Check username/password."); + return items; + } + + } + items = parseHTML(rawHTML); + return items; + } + catch (WebException e) + { + Log.Error("mpUsenet - Error connecting to NzbMatrix."); + Log.Error(e.ToString()); + return items; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error searching NZBMatrix."); + Log.Error(e.ToString()); + return items; + } + } + + + public List<nzbItem> getItems(string cat, string page) + { + List<nzbItem> items = new List<nzbItem>(); + try + { + WebClient client = new WebClient(); + client.Headers.Set("Cookie", "uid=" + _uid + "; pass=" + _pass); + string rawHTML; + rawHTML = client.DownloadString("http://nzbmatrix.com/nzb.php?category=" + cat + "&page=" + page); + if (rawHTML.Contains("You are not logged in.")) + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - NZBMatrix cookies need refreshed."); + if (refreshCookies() && _uid != "" && _pass != "") + { + MediaPortal.ServiceImplementations.Log.Info("mpUsenet - NZBMatrix cookies refreshed. uid={0} pass={1}", _uid, _pass); + client.Headers.Set("Cookie", "uid=" + _uid + "; pass=" + _pass); + rawHTML = client.DownloadString("http://nzbmatrix.com/nzb.php?category=" + cat + "&page=" + page); + } + else + { + MediaPortal.ServiceImplementations.Log.Error("mpUsenet - Unable to get NZBMatrix cookies. Check username/password."); + return items; + } + + } + items = parseHTML(rawHTML); + return items; + } + catch (WebException e) + { + Log.Error("mpUsenet - Error connecting to NzbMatrix."); + Log.Error(e.ToString()); + return items; + } + catch (Exception e) + { + Log.Error("mpUsenet - Error parsing NzbMatrix feed."); + Log.Error(e.ToString()); + return items; + } + } + + List<nzbItem> parseHTML(string raw) + { + raw = raw.Remove(0, raw.IndexOf("Show Columns")); + + Regex cats = new Regex("cat=\\d*.*?<"); + Regex ids = new Regex("download.php\\?id=\\d*\""); + Regex names = new Regex("<b><b>.*</b>"); + Regex dateSizes = new Regex("Added to Usenet: </B>.*?<BR><b> Size: </B>.*?<BR>"); + Regex html = new Regex("<[^<>]+>"); + + MatchCollection catMatches = cats.Matches(raw); + MatchCollection idsMatches = ids.Matches(raw); + MatchCollection nameMatches = names.Matches(raw); + MatchCollection dateSizeMatches = dateSizes.Matches(raw); + + List<nzbItem> items = new List<nzbItem>(); + + if (catMatches.Count == idsMatches.Count && nameMatches.Count==dateSizeMatches.Count) + { + for (int i = 0; i < catMatches.Count; i++) + { + nzbItem item = new nzbItem(); + + string cat = catMatches[i].Value; + cat = cat.Remove(0, cat.IndexOf(">") + 1); + cat = cat.Replace("<", ""); + + string id = idsMatches[i].Value; + id = id.Replace("download.php?id=", ""); + id = id.Replace("\"", ""); + + string name = nameMatches[i].Value; + name = name.Replace("<b><b>", ""); + name = name.Replace("</b></b>", ""); + + string dateSize = dateSizeMatches[i].Value; + foreach (Match htmlMatch in html.Matches(dateSize)) + dateSize = dateSize.Replace(htmlMatch.Value, ""); + dateSize = dateSize.Replace(" ", " | "); + + item.name = name; + item.description = cat + " | " + dateSize; + item.id = id; + items.Add(item); + } + + + } + + return items; + } + } +} Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/AxInterop.WMPLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/AxInterop.WMPLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Bass.Net.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Bass.Net.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/BassRegistration.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/BassRegistration.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Core.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Core.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Dialogs.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Dialogs.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/DirectShowLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/DirectShowLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/ICSharpCode.SharpZipLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/ICSharpCode.SharpZipLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Interop.WMPLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Interop.WMPLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/MediaPortal.Support.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/MediaPortal.Support.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Utils.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/Utils.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/edtftpnet-1.2.2.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/edtftpnet-1.2.2.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/mpUsenet.pdb ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/taglib-sharp.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Debug/taglib-sharp.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/AxInterop.WMPLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/AxInterop.WMPLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Bass.Net.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Bass.Net.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/BassRegistration.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/BassRegistration.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/CSScriptLibrary.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/CSScriptLibrary.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Core.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Core.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Databases.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Databases.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Dialogs.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Dialogs.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/DirectShowLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/DirectShowLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/ICSharpCode.SharpZipLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/ICSharpCode.SharpZipLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Interop.WMPLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Interop.WMPLib.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/MediaPortal.Support.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/MediaPortal.Support.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Utils.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/Utils.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/edtftpnet-1.2.2.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/edtftpnet-1.2.2.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/mpUsenet.pdb ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/bin/Release/taglib-sharp.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/mpUsenet/mpUsenet/bin/Release/taglib-sharp.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/mpUsenet/mpUsenet/config.Designer.cs =================================================================== --- trunk/plugins/mpUsenet/mpUsenet/config.Designer.cs (rev 0) +++ trunk/plugins/mpUsenet/mpUsenet/config.Designer.cs 2008-12-24 18:12:50 UTC (rev 2466) @@ -0,0 +1,472 @@ +namespace mpUsenet +{ + partial class config + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.nameBox = new System.Windows.Forms.TextBox(); + this.sabIPBox = new System.Windows.Forms.TextBox(); + this.SABPortBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.newzbinPassBox = new System.Windows.Forms.TextBox(); + this.newzbinUserBox = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.nzbmatrixPassBox = new System.Windows.Forms.TextBox(); + this.nzbmatrixUserBox = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.nzbBox = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.label13 = new System.Windows.Forms.Label(); + this.speedBox = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.sabPassBox = new System.Windows.Forms.TextBox(); + this.sabUserBox = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.abFolderBox = new System.Windows.Forms.TextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.clientBox = new System.Windows.Forms.ComboBox(); + this.label20 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(11, 24); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(87, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Displayed Name:"; + // + // nameBox + // + this.nameBox.Location = new System.Drawing.Point(102, 21); + this.nameBox.Name = "nameBox"; + this.nameBox.Size = new System.Drawing.Size(274, 20); + this.nameBox.TabIndex = 1; + // + // sabIPBox + // + this.sabIPBox.Location = new System.Drawing.Point(52, 184); + this.sabIPBox.Name = "sabIPBox"; + this.sabIPBox.Size = new System.Drawing.Size(100, 20); + this.sabIPBox.TabIndex = 2; + // + // SABPortBox + // + this.SABPortBox.Location = new System.Drawing.Point(203, 184); + this.SABPortBox.Name = "SABPortBox"; + this.SABPortBox.Size = new System.Drawing.Size(50, 20); + this.SABPortBox.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(26, 187); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(20, 13); + this.label2.TabIndex = 4; + this.label2.Text = "IP:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(168, 187); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(29, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Port:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(15, 156); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(71, 16); + this.label4.TabIndex = 6; + this.label4.Text = "SABnzbd"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(16, 316); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(66, 16); + this.label5.TabIndex = 11; + this.label5.Text = "Newzbin"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(177, 347); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(33, 13); + this.label6.TabIndex = 10; + this.label6.Text = "Pass:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(27, 347); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(32, 13); + this.label7.TabIndex = 9; + this.label7.Text = "User:"; + // + // newzbinPassBox + // + this.newzbinPassBox.Location = new System.Drawing.Point(216, 344); + this.newzbinPassBox.Name = "newzbinPassBox"; + this.newzbinPassBox.Size = new System.Drawing.Size(120, 20); + this.newzbinPassBox.TabIndex = 8; + // + // newzbinUserBox + // + this.newzbinUserBox.Location = new System.Drawing.Point(65, 344); + this.newzbinUserBox.Name = "newzbinUserBox"; + this.newzbinUserBox.Size = new System.Drawing.Size(100, 20); + this.newzbinUserBox.TabIndex = 7; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label8.Location = new System.Drawing.Point(16, 378); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(79, 16); + this.label8.TabIndex = 16; + this.label8.Text = "NZBMatrix"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(177, 412); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(33, 13); + this.label9.TabIndex = 20; + this.label9.Text = "Pass:"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(27, 412); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(32, 13); + this.label10.TabIndex = 19; + this.label10.Text = "User:"; + // + // nzbmatrixPassBox + // + this.nzbmatrixPassBox.Location = new System.Drawing.Point(216, 409); + this.nzbmatrixPassBox.Name = "nzbmatrixPassBox"; + this.nzbmatrixPassBox.Size = new System.Drawing.Size(120, 20); + this.nzbmatrixPassBox.TabIndex = 18; + // + // nzbmatrixUserBox + ... [truncated message content] |
From: <ta...@us...> - 2009-01-19 10:30:51
|
Revision: 2540 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2540&view=rev Author: tapin Date: 2009-01-19 10:30:46 +0000 (Mon, 19 Jan 2009) Log Message: ----------- initial commit release @ version 0.0.2 Added Paths: ----------- trunk/plugins/Flicked/ trunk/plugins/Flicked/readme.txt trunk/plugins/Flicked/release/ trunk/plugins/Flicked/release/FlickrNet.dll trunk/plugins/Flicked/release/plugins/ trunk/plugins/Flicked/release/plugins/windows/ trunk/plugins/Flicked/release/plugins/windows/Flicked.dll trunk/plugins/Flicked/release/skin/ trunk/plugins/Flicked/release/skin/Blue3/ trunk/plugins/Flicked/release/skin/Blue3/flicked.xml trunk/plugins/Flicked/source/ trunk/plugins/Flicked/source/Flicked/ trunk/plugins/Flicked/source/Flicked/Flicked.csproj trunk/plugins/Flicked/source/Flicked/Flicked.csproj.user trunk/plugins/Flicked/source/Flicked/FlickedGUI.cs trunk/plugins/Flicked/source/Flicked/FlickedGet.cs trunk/plugins/Flicked/source/Flicked/FlickedReader.cs trunk/plugins/Flicked/source/Flicked/FlickedSetup.Designer.cs trunk/plugins/Flicked/source/Flicked/FlickedSetup.cs trunk/plugins/Flicked/source/Flicked/FlickedSetup.resx trunk/plugins/Flicked/source/Flicked/Properties/ trunk/plugins/Flicked/source/Flicked/Properties/AssemblyInfo.cs trunk/plugins/Flicked/source/Flicked.sln trunk/plugins/Flicked/source/Flicked.suo Added: trunk/plugins/Flicked/readme.txt =================================================================== --- trunk/plugins/Flicked/readme.txt (rev 0) +++ trunk/plugins/Flicked/readme.txt 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,12 @@ +Flicked - A Flickr Plugin for Media Portal + +Author: Tapin +Current Release: 0.0.2 + +About: +The plugin is still in early development and not yet ready for production use. +This plugin uses the c# FlickrNet libary more info @ http://www.codeplex.com/FlickrNet + +Install: +1.Copy the contents of release to your media portal directory eg C:\Program Files\Team MediaPortal\MediaPortal +2.Before using this plugin you must configure it in the MP config prgram. \ No newline at end of file Added: trunk/plugins/Flicked/release/FlickrNet.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/Flicked/release/FlickrNet.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/Flicked/release/plugins/windows/Flicked.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/Flicked/release/plugins/windows/Flicked.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/Flicked/release/skin/Blue3/flicked.xml =================================================================== --- trunk/plugins/Flicked/release/skin/Blue3/flicked.xml (rev 0) +++ trunk/plugins/Flicked/release/skin/Blue3/flicked.xml 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,125 @@ +<window> + <id>91344</id> + <defaultcontrol>50</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <controls> + <control> + <type>actiongroup</type> + <description>action menu</description> + <defaultcontrol>2</defaultcontrol> + <onexit>50</onexit> + <buttonX>0</buttonX> + <buttonY>0</buttonY> + <buttonwidth>60</buttonwidth> + <buttonheight>576</buttonheight> + <textureFocus>Action_focus.png</textureFocus> + <textureNoFocus>Action_nofocus.png</textureNoFocus> + <width>320</width> + <height>720</height> + <dimColor>00ffffff</dimColor> + <control> + <type>image</type> + <posX>15</posX> + <posY>167</posY> + <width>263</width> + <height>263</height> + <texture>Backslide.png</texture> + <colorDiffuse>fffffffff</colorDiffuse> + <visible>!Control.HasFocus(50)</visible> + <animation effect="slide" time="450" start="-300,0" reversible="false">visible</animation> + <animation effect="slide" time="450" end="-300,0" reversible="false">hidden</animation> + </control> + <control> + <description>group element</description> + <type>group</type> + <animation effect="slide" time="450" start="-300,0" reversible="false">visible</animation> + <animation effect="slide" time="450" end="-300,0" reversible="false">hidden</animation> + <visible>!Control.HasFocus(50)</visible> + <control> + <description>group element</description> + <type>group</type> + <animation effect="slide" time="450" start="-300,0" reversible="false">visible</animation> + <animation effect="slide" time="450" end="-300,0" reversible="false">hidden</animation> + <posX>40</posX> + <posY>202</posY> + <layout>StackLayout</layout> + <visible>!Control.HasFocus(50)</visible> + <control> + <description>Photostream [RSS]</description> + <type>button</type> + <id>2</id> + <label>My Latest</label> + <onright>50</onright> + <onup>0</onup> + <ondown>0</ondown> + </control> + <control> + <description>Contacts [RSS]</description> + <type>button</type> + <id>3</id> + <label>Contacts Latest</label> + <onright>50</onright> + <ondown>0</ondown> + <onup>0</onup> + </control> + <control> + <description>Photostream [API]</description> + <type>button</type> + <id>4</id> + <label>My Photos</label> + <onright>50</onright> + <ondown>0</ondown> + <onup>0</onup> + </control> + </control> + </control> + </control> + + + + <control> + <description>BackGround</description> + <type>image</type> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <width>720</width> + <height>576</height> + <texture>background.png</texture> + </control> + + <control> + <description>an Image</description> + <type>image</type> + <id>1</id> + <posX>75</posX> + <posY>370</posY> + <texture></texture> + </control> + <control> + <description>debug box</description> + <type>textbox</type> + <id>304</id> + <posX>260</posX> + <posY>97</posY> + <width>410</width> + <height>300</height> + <spinWidth>16</spinWidth> + <spinHeight>16</spinHeight> + <spinPosX>610</spinPosX> + <spinPosY>530</spinPosY> + <spinColor>ffffffff</spinColor> + <textureUp>page_up_nofocus.png</textureUp> + <textureDown>page_down_nofocus.png</textureDown> + <textureUpFocus>page_up_focus.png</textureUpFocus> + <textureDownFocus>page_down_focus.png</textureDownFocus> + <image>icon-folder.png</image> + <font>font13</font> + <textcolor>ffffffff</textcolor> + <colordiffuse>ffffffff</colordiffuse> + </control> +<import>common.facade.pictures.xml</import> + + + </controls> +</window> \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/Flicked.csproj =================================================================== --- trunk/plugins/Flicked/source/Flicked/Flicked.csproj (rev 0) +++ trunk/plugins/Flicked/source/Flicked/Flicked.csproj 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.30729</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Flicked</RootNamespace> + <AssemblyName>Flicked</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="AxInterop.WMPLib, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal\AxInterop.WMPLib.dll</HintPath> + </Reference> + <Reference Include="Core, Version=0.9.3.890, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.9.3.896, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> + </Reference> + <Reference Include="FlickrNet, Version=2.1.5.19851, Culture=neutral, PublicKeyToken=2491df59efa5d132"> + <SpecificVersion>False</SpecificVersion> + <HintPath>deps\FlickrNet.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Core"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml.Linq"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data.DataSetExtensions"> + <RequiredTargetFramework>3.5</RequiredTargetFramework> + </Reference> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.6.31343, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal\Utils.dll</HintPath> + </Reference> + <Reference Include="WindowPlugins, Version=0.9.4.31390, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\..\..\..\Program Files\Team MediaPortal\MediaPortal\plugins\Windows\WindowPlugins.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="FlickedGet.cs" /> + <Compile Include="FlickedGUI.cs" /> + <Compile Include="FlickedReader.cs" /> + <Compile Include="FlickedSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="FlickedSetup.Designer.cs"> + <DependentUpon>FlickedSetup.cs</DependentUpon> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="FlickedSetup.resx"> + <DependentUpon>FlickedSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/Flicked.csproj.user =================================================================== --- trunk/plugins/Flicked/source/Flicked/Flicked.csproj.user (rev 0) +++ trunk/plugins/Flicked/source/Flicked/Flicked.csproj.user 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/FlickedGUI.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedGUI.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedGUI.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,364 @@ +using System; +using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Net; +using System.IO; +using System.Text; +using System.Threading; +using System.Collections; + +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using MediaPortal.Util; +using MediaPortal.Configuration; +using MediaPortal.GUI.Pictures; + +using FlickrNet; + +namespace Flicked +{ + public class FlickedGUI : GUIWindow, ISetupForm + { + + public FlickedGUI() + { + + } + + [SkinControlAttribute(2)] + protected GUIButtonControl buttonOne = null; + [SkinControlAttribute(3)] + protected GUIButtonControl buttonTwo = null; + [SkinControlAttribute(4)] + protected GUIButtonControl buttonGetUserPhotosAPI = null; + [SkinControlAttribute(304)] + protected GUITextControl txtNotify = null; + [SkinControlAttribute(50)] + public GUIFacadeControl facadeImage = null; + + + private string strDebugText = string.Empty; + volatile bool _workerCompleted = true; + + + + private Flickr apiService = null; + //flickr setup items + private FoundUser fUser = null; + private Person fProfile = null; + + #region ISetupForm Members + + + // Returns the name of the plugin which is shown in the plugin menu + public string PluginName() + { + return "Flicked"; + } + + // Returns the description of the plugin is shown in the plugin menu + public string Description() + { + return "Flickr Utlity Plugin"; + } + + // Returns the author of the plugin which is shown in the plugin menu + public string Author() + { + return "Tapin"; + } + + // show the setup dialog + public void ShowPlugin() + { + //MessageBox.Show("Nothing to configure, this is just an example"); + FlickedSetup fs = new FlickedSetup(); + fs.ShowDialog(); + } + + // Indicates whether plugin can be enabled/disabled + public bool CanEnable() + { + return true; + } + + // Get Windows-ID + public int GetWindowId() + { + // WindowID of windowplugin belonging to this setup + // enter your own unique code + return 91344; + } + + // Indicates if plugin is enabled by default; + public bool DefaultEnabled() + { + return true; + } + + // indicates if a plugin has it's own setup screen + public bool HasSetup() + { + return true; + } + + /// <summary> + /// If the plugin should have it's own button on the main menu of MediaPortal then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs it's own button on home + /// false : plugin does not need it's own button on home</returns> + + public bool GetHome(out string strButtonText, out string strButtonImage, + out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Empty; + return true; + } + + + + + // With GetID it will be an window-plugin / otherwise a process-plugin + // Enter the id number here again + public override int GetID + { + get + { + return 91344; + } + + set + { + } + } + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\flicked.xml"); + } + #endregion + + protected override void OnPageLoad() + { + Log.Info("Flicked: started"); + Log.Debug("Loading Api Service"); + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + try + { + //try to load api service + this.apiService = new Flickr(xmlwriter.GetValueAsString("flicked", "fkey", ""), xmlwriter.GetValueAsString("flicked", "fsec", ""),xmlwriter.GetValueAsString("flicked", "fapp", "")); + Log.Debug("Loaded Api Service"); + Log.Debug("Getting Frob.."); + this.fUser = apiService.TestLogin(); + Person fProfile = apiService.PeopleGetInfo(this.fUser.UserId); + Log.Debug("User Auth OK"); + } + catch (Exception exp) + { + Log.Info("Error During init: " + exp.Message); + dlgError("Plugin Init failed", "Please check the plugin setup", exp.Message); + } + + } + facadeImage.View = GUIFacadeControl.ViewMode.SmallIcons; + + } + private void dlgError(String title,String msg, String error) + { + GUIDialogOK dlg = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK); + dlg.SetHeading(title); + dlg.SetLine(1, msg); + dlg.SetLine(3, "ERROR: " + error); + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + + + protected override void OnClicked(int controlId, GUIControl control,MediaPortal.GUI.Library.Action.ActionType actionType) + { + if (control == buttonOne) + { + OnButtonOne(); + } + else if (control == buttonTwo) + { + OnButtonTwo(); + } + else if (control == buttonGetUserPhotosAPI) + { + OnButtonGetUserPhotosAPI(); + } + else if (control == facadeImage) + { + //surley a better way to do it than this think up a better way at some point + if (actionType.ToString().Equals("ACTION_SELECT_ITEM")) + { + OnFacadeImage(); + } + } + else + { + //for debugging use this helpfull thing :) + GUIDialogOK dlg = (GUIDialogOK)GUIWindowManager.GetWindow( + (int)GUIWindow.Window.WINDOW_DIALOG_OK); + dlg.SetHeading("Caught click"); + dlg.SetLine(1, "id:" + controlId.ToString()); + dlg.SetLine(2, "control:" + control.GetID.ToString()); + dlg.SetLine(3, "action:" + actionType.ToString()); + dlg.DoModal(GUIWindowManager.ActiveWindow); + } + base.OnClicked(controlId, control, actionType); + } + private void OnFacadeImage() + { + BackgroundWorker worker = new BackgroundWorker(); + worker.DoWork += new DoWorkEventHandler(DownloadImage); + worker.RunWorkerAsync(""); + while (_workerCompleted == false) + GUIWindowManager.Process(); + } + #region buttons + private void OnButtonGetUserPhotosAPI() + { + Log.Debug("API CALL: get users photos by api"); + BackgroundWorker worker = new BackgroundWorker(); + //txtNotify.Label = "WUT!"; + worker.DoWork += new DoWorkEventHandler(DownloadWorker); + worker.RunWorkerAsync("USER_API_PHOTOS"); + while (_workerCompleted == false) + GUIWindowManager.Process(); + + } + private void OnButtonOne() + { + + BackgroundWorker worker = new BackgroundWorker(); + worker.DoWork += new DoWorkEventHandler(DownloadWorker); + worker.RunWorkerAsync("USER_LATEST"); + while (_workerCompleted == false) + GUIWindowManager.Process(); + } + private void OnButtonTwo() + { + + BackgroundWorker worker = new BackgroundWorker(); + worker.DoWork += new DoWorkEventHandler(DownloadWorker); + worker.RunWorkerAsync("CONTACT_LATEST"); + while (_workerCompleted == false) + GUIWindowManager.Process(); + } + #endregion + #region internals + void DownloadImage(object sender, DoWorkEventArgs e) + { + Thread.CurrentThread.Name = "FlickedRequest"; + _workerCompleted = false; + + using (WaitCursor cursor = new WaitCursor()) + lock (this) + { + //this will take awhile + GUIListItem item = facadeImage.SelectedListItem; + FlickedGet fetcher = new FlickedGet(item.Path); + Log.Debug("Display: " + fetcher.localFile); + //make display after so we can actualy see the loading icon thing + GUISlideShow SlideShow = (GUISlideShow)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_SLIDESHOW); + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_SLIDESHOW); + SlideShow.Add(fetcher.localFile); + SlideShow.Select(fetcher.localFile); + } + _workerCompleted = true; + } + void DownloadWorker(object sender, DoWorkEventArgs e) + { + Thread.CurrentThread.Name = "FlickedRequest"; + _workerCompleted = false; + + using (WaitCursor cursor = new WaitCursor()) + lock (this) + { + try + { + //clear the display + facadeImage.Clear(); + //get user & init reader + if (e.Argument.Equals("CONTACT_LATEST") || e.Argument.Equals("USER_LATEST")) + { + FlickedReader flickReader = new FlickedReader(this.fUser.UserId); + Log.Debug("UID: " + flickReader.debuguser); + //read photo stream + Log.Debug("Operation:" + e.Argument); + if (e.Argument.Equals("CONTACT_LATEST")) + { + flickReader.ReadContactsPhotostream(); + } + else + { + flickReader.ReadMyPhotostream(); + } + //init collection + Collection<PhotoFeed.Photos> list = flickReader.PhotoList; + //draw collection title list + //DEBUGGING + //String strConcatOut = String.Empty; + Log.Debug("Items:" + list.Count); + for (int i = 0; i < list.Count; i++) + { + //DEBUGING + //strConcatOut += list[i].Title + "(" + list[i].imageUrl + "),"; + + GUIListItem item = new GUIListItem(); + item.Label = list[i].Title; + FlickedGet fetcher = new FlickedGet(list[i].thumbUrl); + item.ThumbnailImage = fetcher.localFile; + item.Label2 = list[i].author; + item.Path = list[i].imageUrl; + facadeImage.Add(item); + } + //DEBUGING + //txtNotify.Label = strConcatOut; + } + else if (e.Argument.Equals("USER_API_PHOTOS")) + { + + PhotoSearchOptions searchOptions = new PhotoSearchOptions(fUser.UserId); + //do a search and put it in set + Photos photoSet = apiService.PhotosSearch(searchOptions); + //extract from set and local cache the images + foreach (Photo photo in photoSet.PhotoCollection) + { + GUIListItem item = new GUIListItem(); + FlickedGet fetcher = new FlickedGet(photo.ThumbnailUrl); + item.ThumbnailImage = fetcher.localFile; + item.Label2 = photo.OwnerName; + item.Path = photo.LargeUrl; + facadeImage.Add(item); + } + } + + + } + catch (Exception ex) + { + //most error handling is done internaly but this might give us clues about any strange things + Log.Info("Exploded; check error for clues!"); + Log.Info(ex.ToString()); + } + + } + _workerCompleted = true; + } + #endregion + + } +} \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/FlickedGet.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedGet.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedGet.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Windows.Forms; +using System.Net; +using System.IO; +using System.Threading; +using System.Collections; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Utils; +using MediaPortal.Configuration; + +namespace Flicked +{ + /// <summary> + /// convert and image url into a usable cached image on the filesystem + /// </summary> + public class FlickedGet + { + private string _url = string.Empty; + private string _imagename = string.Empty; + private string _thumbspath = Config.GetSubFolder(Config.Dir.Thumbs, @"flicked\"); + + public string thumbspath + { + get + { + return _thumbspath; + } + } + public string localFile + { + get + { + return thumbspath + imagename; + } + } + + public string url + { + get + { + return this._url; + } + } + public string imagename + { + get + { + return this._imagename; + } + } + public FlickedGet(string sourceURL) + { + Log.Debug("starting image fetch"); + /*based of wikipedia image class*/ + _url = sourceURL; + Log.Debug("url:"+_url); + //assume the url is going to be valid + _imagename = _url.Substring(_url.LastIndexOf("/") + 1); + Log.Debug("file:" + _imagename); + //Check if we already have the file. + //Create the photo subdir in thumbs when it not exists. + if (!System.IO.Directory.Exists(thumbspath)) + { + System.IO.Directory.CreateDirectory(thumbspath); + } + + if (!System.IO.File.Exists(thumbspath + _imagename)) + { + + Log.Debug("Downloading: " + _url); + + // Here we get the image from the web and save it to disk + try + { + WebClient client = new WebClient(); + client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); + client.DownloadFile(_url, thumbspath + _imagename); + Log.Debug("Saved: " + thumbspath + _imagename); + } + catch (Exception e) + { + Log.Debug("Exception during downloading"); + Log.Debug(e.ToString()); + } + } + else + { + Log.Debug("Using Cache"); + } + Log.Debug("fetch complete"); + } + + + } +} Added: trunk/plugins/Flicked/source/Flicked/FlickedReader.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedReader.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedReader.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,145 @@ +using System; +using System.Xml; +using System.Xml.XPath; +using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Net; +using System.IO; +using System.Text; +using System.Threading; +using System.Collections; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Configuration; + +namespace Flicked +{ + class FlickedReader + { + private string _strUserID = "43327308@N00"; + + private string _strFlickrUserPhotos = "http://api.flickr.com/services/feeds/photos_public.gne?lang=en-us&format=rss_200&id="; + private string _strFlickerContactPhotos = "http://api.flickr.com/services/feeds/photos_friends.gne?friends=0&display_all=1&lang=en-us&format=rss_200&user_id="; + private Collection<PhotoFeed.Photos> _photoList = new Collection<PhotoFeed.Photos>(); + + //for debugging remove at a later date + public string debuguser + { + get + { + return _strUserID; + } + } + public FlickedReader(string userid) + { + this._strUserID = userid; + } + public void ReadMyPhotostream(){ + MakeRequest(_strFlickrUserPhotos + _strUserID); + } + public void ReadContactsPhotostream() + { + MakeRequest(_strFlickerContactPhotos + _strUserID); + } + + public Collection<PhotoFeed.Photos> PhotoList + { + get { return _photoList; } + } + + /// <summary> + /// given a url to a photo RSS feed method will attempt to extract a list of photos + /// </summary> + /// <param name="uri"></param> + private void MakeRequest(string uri) + { + //string strDataOut = String.Empty; + System.Uri url = new System.Uri(uri); + Log.Debug("Starting rss read."); + //do a read + try + { + using (XmlReader reader = XmlReader.Create(uri)) + { + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.Load(reader); + Log.Debug("Grabbed Feed"); + _photoList.Clear(); + XmlNodeList nodes = xmlDoc.SelectNodes("rss/channel/item"); + Log.Debug("Selected nodes"); + foreach (XmlNode node in nodes) + { + Log.Debug("Processing node"); + //make some xpath namespace resolvers so media: type tags dont cause + //the parser to explode + XPathNavigator nav = node.CreateNavigator(); + IXmlNamespaceResolver nsResolver = nav.Clone().SelectSingleNode("//*[namespace::media]"); + + PhotoFeed.Photos item = new PhotoFeed.Photos(); + //parse off some items + XPathNavigator selectNode = nav.SelectSingleNode("media:title", nsResolver); + item.Title = selectNode.InnerXml; + Log.Debug("passed stage1"); + selectNode = nav.SelectSingleNode("media:credit", nsResolver); + item.author = selectNode.InnerXml; + Log.Debug("passed stage2"); + selectNode = nav.SelectSingleNode("media:content", nsResolver); + item.imageUrl = selectNode.GetAttribute("url", ""); + Log.Debug("passed stage3"); + selectNode = nav.SelectSingleNode("media:thumbnail", nsResolver); + item.thumbUrl = selectNode.GetAttribute("url", ""); + Log.Debug("passed stage4"); + + _photoList.Add(item); + } + } + Log.Info("Finished Parse Run"); + } + catch (Exception e) + { + Log.Debug("Exception during downloading:"); + Log.Debug(e.ToString()); + } + Log.Debug("Finished Leaving Parser"); + } + + + } + + public class PhotoFeed + { + /// <summary> + /// A structure to hold the RSS Feed items + /// </summary> + [Serializable] + public struct Photos + { + + /// <summary> + /// The title + /// </summary> + public string Title; + + /// <summary> + /// Any description associated with the photo + /// </summary> + public string description; + + /// <summary> + /// URI for the image + /// </summary> + public string imageUrl; + /// <summary> + /// URI for the tumbnail image + /// </summary> + public string thumbUrl; + + /// <summary> + /// Name of the person who took the photo + /// </summary> + public string author; + } + } +} Added: trunk/plugins/Flicked/source/Flicked/FlickedSetup.Designer.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedSetup.Designer.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedSetup.Designer.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,132 @@ +namespace Flicked +{ + partial class FlickedSetup + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.label5 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(15, 121); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(103, 35); + this.button1.TabIndex = 2; + this.button1.Text = "Auth"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(15, 55); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(176, 20); + this.textBox2.TabIndex = 4; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 37); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(28, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Key:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 79); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(41, 13); + this.label4.TabIndex = 6; + this.label4.Text = "Secret:"; + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(15, 95); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(176, 20); + this.textBox3.TabIndex = 7; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Location = new System.Drawing.Point(12, 9); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(93, 13); + this.linkLabel1.TabIndex = 8; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "Get Flickr API Key"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(12, 162); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(124, 13); + this.label5.TabIndex = 9; + this.label5.Text = "Ready to authenticate... "; + // + // FlickedSetup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(218, 201); + this.Controls.Add(this.label5); + this.Controls.Add(this.linkLabel1); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.button1); + this.Name = "FlickedSetup"; + this.Text = "FlickedSetup"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Label label5; + + } +} \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/FlickedSetup.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedSetup.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedSetup.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using MediaPortal.Configuration; +using MediaPortal.Util; + +using FlickrNet; + +using System.Xml; +using System.Xml.XPath; +using System.Collections.ObjectModel; + +using System.Net; +using System.IO; + +using System.Threading; +using System.Collections; +using MediaPortal.GUI.Library; + +namespace Flicked +{ + + public partial class FlickedSetup : MediaPortal.UserInterface.Controls.MPConfigForm + { + private string tempFrob; + private bool waitResponse = false; + private Flickr apiService = null; + private string flickrUrl = string.Empty; + + public FlickedSetup() + { + InitializeComponent(); + this.Text = "Flicked Setup"; + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "Mediaportal.xml"))) + { + textBox2.Text = xmlwriter.GetValueAsString("flicked", "fkey", ""); + textBox3.Text = xmlwriter.GetValueAsString("flicked", "fsec", ""); + } + } + + private void button1_Click(object sender, EventArgs e) + { + if (waitResponse) + { + button1.Text = "Re-Auth"; + + try + { + Auth auth = apiService.AuthGetToken(tempFrob); + SaveSettings(auth); + label5.Text = "Auth OK!!!"; + } + catch + { + label5.Text = "Auth check failed"; + textBox2.Enabled = true; + textBox3.Enabled = true; + } + + } + else + { + try + { + apiService = new Flickr(textBox2.Text, textBox3.Text); + // Get Frob + tempFrob = apiService.AuthGetFrob(); + // Calculate the URL at Flickr to redirect the user to + flickrUrl = apiService.AuthCalcUrl(tempFrob, AuthLevel.Read); + } + catch(Exception exp) + { + label5.Text = exp.Message; + } + waitResponse = true; + textBox2.Enabled = false; + textBox3.Enabled = false; + button1.Text = "Complete"; + label5.Text = "Auth via flickr website hit complete when done"; + System.Diagnostics.Process.Start(flickrUrl); + } + //label2.Text = textBox1.Text; + //this.Close(); + } + void SaveSettings(Auth auth) + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "Mediaportal.xml"))) + { + xmlwriter.SetValue("flicked", "fkey", textBox2.Text); + xmlwriter.SetValue("flicked", "fsec", textBox3.Text); + xmlwriter.SetValue("flicked", "fapp", auth.Token); + } + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + System.Diagnostics.Process.Start("http://www.flickr.com/services/api/keys/"); + } + } +} Added: trunk/plugins/Flicked/source/Flicked/FlickedSetup.resx =================================================================== --- trunk/plugins/Flicked/source/Flicked/FlickedSetup.resx (rev 0) +++ trunk/plugins/Flicked/source/Flicked/FlickedSetup.resx 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: trunk/plugins/Flicked/source/Flicked/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/Flicked/source/Flicked/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/Flicked/source/Flicked/Properties/AssemblyInfo.cs 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Flicked")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Company")] +[assembly: AssemblyProduct("Flicked")] +[assembly: AssemblyCopyright("Copyright © Company 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("bccbe51d-e544-4ce8-974a-a951f5b7d75e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/Flicked/source/Flicked.sln =================================================================== --- trunk/plugins/Flicked/source/Flicked.sln (rev 0) +++ trunk/plugins/Flicked/source/Flicked.sln 2009-01-19 10:30:46 UTC (rev 2540) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C# Express 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flicked", "Flicked\Flicked.csproj", "{1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B1E7923-E40A-4536-88BA-81DFDCD8CAF1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/Flicked/source/Flicked.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/Flicked/source/Flicked.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kro...@us...> - 2009-02-11 19:43:41
|
Revision: 2640 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2640&view=rev Author: kroko_koenig Date: 2009-02-11 19:43:26 +0000 (Wed, 11 Feb 2009) Log Message: ----------- Added Paths: ----------- trunk/plugins/MyFrustration/ trunk/plugins/MyFrustration/Frustration.mpi trunk/plugins/MyFrustration/Frustration.xml trunk/plugins/MyFrustration/Frustration.xmp trunk/plugins/MyFrustration/MyFrustration/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/MyFrustration.cs trunk/plugins/MyFrustration/MyFrustration/MyFrustration/MyFrustration.csproj trunk/plugins/MyFrustration/MyFrustration/MyFrustration/MyFrustration.csproj.user trunk/plugins/MyFrustration/MyFrustration/MyFrustration/Properties/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/Properties/AssemblyInfo.cs trunk/plugins/MyFrustration/MyFrustration/MyFrustration/bin/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/bin/Debug/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/cFieldsEngine.cs trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/Debug/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/Debug/MyFrustration.dll trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/Debug/MyFrustration.pdb trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/Debug/Refactor/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/Debug/TempPE/ trunk/plugins/MyFrustration/MyFrustration/MyFrustration/obj/MyFrustration.csproj.FileListAbsolute.txt trunk/plugins/MyFrustration/MyFrustration/MyFrustration.sln trunk/plugins/MyFrustration/MyFrustration/MyFrustration.suo trunk/plugins/MyFrustration/Release/ trunk/plugins/MyFrustration/Release/Plugins/ trunk/plugins/MyFrustration/Release/Plugins/MyFrustration.dll trunk/plugins/MyFrustration/Release/Skin/ trunk/plugins/MyFrustration/Release/Skin/Blue3/ trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/ trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/ trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_bl.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_bl1.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_bl2.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_bl3.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_bl4.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_gn.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_l_bl.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_l_gn.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_l_rd.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_l_ye.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_rd.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_wh.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/pos_ye.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w1.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w2.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w3.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w4.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w5.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/Frustration/w6.png trunk/plugins/MyFrustration/Release/Skin/Blue3/Media/hover_my frustration.png trunk/plugins/MyFrustration/Release/Skin/Blue3/MyFrustration.xml trunk/plugins/MyFrustration/Release/Skin/Blue3/Sounds/ trunk/plugins/MyFrustration/Release/Skin/Blue3/Sounds/new.wav trunk/plugins/MyFrustration/Release/Skin/Blue3/Sounds/punch.wav trunk/plugins/MyFrustration/Release/Skin/Blue3/Sounds/tick.wav trunk/plugins/MyFrustration/Release/Skin/Blue3wide/ trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/ trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/ trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_bl.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_bl1.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_bl2.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_bl3.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_bl4.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_gn.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_l_bl.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_l_gn.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_l_rd.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_l_ye.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_rd.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_wh.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/pos_ye.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w1.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w2.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w3.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w4.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w5.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/Frustration/w6.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Media/hover_my frustration.png trunk/plugins/MyFrustration/Release/Skin/Blue3wide/MyFrustration.xml trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Sounds/ trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Sounds/new.wav trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Sounds/punch.wav trunk/plugins/MyFrustration/Release/Skin/Blue3wide/Sounds/tick.wav trunk/plugins/MyFrustration/frust.jpg trunk/plugins/MyFrustration/frust_sm.jpg Added: trunk/plugins/MyFrustration/Frustration.mpi =================================================================== (Binary files differ) Property changes on: trunk/plugins/MyFrustration/Frustration.mpi ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MyFrustration/Frustration.xml =================================================================== --- trunk/plugins/MyFrustration/Frustration.xml (rev 0) +++ trunk/plugins/MyFrustration/Frustration.xml 2009-02-11 19:43:26 UTC (rev 2640) @@ -0,0 +1,27 @@ +<MPinstalerS> + <ver>1.00.000</ver> + <ExtensionList> + <Extension> + <FileName>Frustration.mpi</FileName> + <Name>My Frustration / Mensch ärgere dich nicht</Name> + <URL>http://www.team-mediaportal.com</URL> + <Version>0.1</Version> + <Author>Mark Koenig (kroko) 2009</Author> + <Description>My frustration is a very popular game.</Description> + <Group>Games</Group> @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wei...@us...> - 2009-03-03 12:14:30
|
Revision: 2690 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2690&view=rev Author: weissollo Date: 2009-03-03 12:14:25 +0000 (Tue, 03 Mar 2009) Log Message: ----------- Added Paths: ----------- trunk/plugins/Test/ trunk/plugins/Test/First Try/ trunk/plugins/Test/First Try/MPPlugin/ trunk/plugins/Test/First Try/MPPlugin/Class1.cs trunk/plugins/Test/First Try/MPPlugin/ClassDiagram1.cd trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj.user trunk/plugins/Test/First Try/MPPlugin/Properties/ trunk/plugins/Test/First Try/MPPlugin/Properties/AssemblyInfo.cs trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.Designer.cs trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.settings trunk/plugins/Test/First Try/MPPlugin/Web References/ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Fussballdaten1.datasource trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Group1.datasource trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/League1.datasource trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Matchdata1.datasource trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Reference.cs trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Reference.map trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Sports1.datasource trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Sportsdata.wsdl trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Team1.datasource trunk/plugins/Test/First Try/MPPlugin/app.config trunk/plugins/Test/First Try/MPPlugin.sln trunk/plugins/Test/First Try/MPPlugin.suo Added: trunk/plugins/Test/First Try/MPPlugin/Class1.cs =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Class1.cs (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Class1.cs 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,490 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using System.Collections; + + +namespace MPPlugin +{ + public class Class1 : GUIWindow, ISetupForm + { + + + //First number is the line + //1: Date + //2: Time + //3: Name Team + //5: Score Team + + + [SkinControlAttribute(11)] + protected + GUILabelControl lbl11 = null; + [SkinControlAttribute(12)] + protected + GUILabelControl lbl12 = null; + [SkinControlAttribute(131)] + protected + GUILabelControl lbl131 = null; + [SkinControlAttribute(132)] + protected + GUILabelControl lbl132 = null; + [SkinControlAttribute(151)] + protected + GUILabelControl lbl151 = null; + [SkinControlAttribute(152)] + protected + GUILabelControl lbl152 = null; + [SkinControlAttribute(21)] + protected + GUILabelControl lbl21 = null; + [SkinControlAttribute(22)] + protected + GUILabelControl lbl22 = null; + [SkinControlAttribute(231)] + protected + GUILabelControl lbl231 = null; + [SkinControlAttribute(232)] + protected + GUILabelControl lbl232 = null; + [SkinControlAttribute(251)] + protected + GUILabelControl lbl251 = null; + [SkinControlAttribute(252)] + protected + GUILabelControl lbl252 = null; + + [SkinControlAttribute(31)] + protected + GUILabelControl lbl31 = null; + [SkinControlAttribute(32)] + protected + GUILabelControl lbl32 = null; + [SkinControlAttribute(331)] + protected + GUILabelControl lbl331 = null; + [SkinControlAttribute(332)] + protected + GUILabelControl lbl332 = null; + [SkinControlAttribute(351)] + protected + GUILabelControl lbl351 = null; + [SkinControlAttribute(352)] + protected + GUILabelControl lbl352 = null; + + [SkinControlAttribute(41)] + protected + GUILabelControl lbl41 = null; + [SkinControlAttribute(42)] + protected + GUILabelControl lbl42 = null; + [SkinControlAttribute(431)] + protected + GUILabelControl lbl431 = null; + [SkinControlAttribute(432)] + protected + GUILabelControl lbl432 = null; + [SkinControlAttribute(451)] + protected + GUILabelControl lbl451 = null; + [SkinControlAttribute(452)] + protected + GUILabelControl lbl452 = null; + + [SkinControlAttribute(51)] + protected + GUILabelControl lbl51 = null; + [SkinControlAttribute(52)] + protected + GUILabelControl lbl52 = null; + [SkinControlAttribute(531)] + protected + GUILabelControl lbl531 = null; + [SkinControlAttribute(532)] + protected + GUILabelControl lbl532 = null; + [SkinControlAttribute(551)] + protected + GUILabelControl lbl551 = null; + [SkinControlAttribute(552)] + protected + GUILabelControl lbl552 = null; + + [SkinControlAttribute(61)] + protected + GUILabelControl lbl61 = null; + [SkinControlAttribute(62)] + protected + GUILabelControl lbl62 = null; + [SkinControlAttribute(631)] + protected + GUILabelControl lbl631 = null; + [SkinControlAttribute(632)] + protected + GUILabelControl lbl632 = null; + [SkinControlAttribute(651)] + protected + GUILabelControl lbl651 = null; + [SkinControlAttribute(652)] + protected + GUILabelControl lbl652 = null; + + [SkinControlAttribute(71)] + protected + GUILabelControl lbl71 = null; + [SkinControlAttribute(72)] + protected + GUILabelControl lbl72 = null; + [SkinControlAttribute(731)] + protected + GUILabelControl lbl731 = null; + [SkinControlAttribute(732)] + protected + GUILabelControl lbl732 = null; + [SkinControlAttribute(751)] + protected + GUILabelControl lbl751 = null; + [SkinControlAttribute(752)] + protected + GUILabelControl lbl752 = null; + + [SkinControlAttribute(81)] + protected + GUILabelControl lbl81 = null; + [SkinControlAttribute(82)] + protected + GUILabelControl lbl82 = null; + [SkinControlAttribute(831)] + protected + GUILabelControl lbl831 = null; + [SkinControlAttribute(832)] + protected + GUILabelControl lbl832 = null; + [SkinControlAttribute(851)] + protected + GUILabelControl lbl851 = null; + [SkinControlAttribute(852)] + protected + GUILabelControl lbl852 = null; + + [SkinControlAttribute(91)] + protected + GUILabelControl lbl91 = null; + [SkinControlAttribute(92)] + protected + GUILabelControl lbl92 = null; + [SkinControlAttribute(931)] + protected + GUILabelControl lbl931 = null; + [SkinControlAttribute(932)] + protected + GUILabelControl lbl932 = null; + [SkinControlAttribute(951)] + protected + GUILabelControl lbl951 = null; + [SkinControlAttribute(952)] + protected + GUILabelControl lbl952 = null; + + + + OpenLiga.Sportsdata service = new OpenLiga.Sportsdata(); + ArrayList MyLabel = new ArrayList(); + + + public override bool Init() + { + return Load(GUIGraphicsContext.Skin + @"\MPPlugin.xml"); + } + + public Class1() + { + + } + + #region ISetupForm Members + + // Returns the name of the plugin which is shown in the plugin menu + public string PluginName() + { + return "MPPlugin"; + } + + // Returns the description of the plugin is shown in the plugin menu + public string Description() + { + return "My first Plugin"; + } + + // Returns the author of the plugin which is shown in the plugin menu + public string Author() + { + return "weissollo"; + } + + // show the setup dialog + public void ShowPlugin() + { + MessageBox.Show("Nothing to configure, this is just an example"); + } + + // Indicates whether plugin can be enabled/disabled + public bool CanEnable() + { + return true; + } + + // Get Windows-ID + public int GetWindowId() + { + // WindowID of windowplugin belonging to this setup + // enter your own unique code + return 82084; + } + + // Indicates if plugin is enabled by default; + public bool DefaultEnabled() + { + return true; + } + + // indicates if a plugin has it's own setup screen + public bool HasSetup() + { + return true; + } + + /// <summary> + /// If the plugin should have it's own button on the main menu of MediaPortal then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs it's own on home + /// false : plugin does not need it's own buttonbutton on home</returns> + + public bool GetHome(out string strButtonText, out string strButtonImage, + out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Empty; + return true; + } + + // With GetID it will be an window-plugin / otherwise a process-plugin + // Enter the id number here again + public override int GetID + { + get + { + return 82084; + } + + set + { + + } + } + + + #endregion + + #region Select Group league Saison + + string GroupOrder; + public void Select_GroupOrder() + { + VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + if (null == keyboard) + return; + + keyboard.Reset(); + keyboard.DoModal(GetID); + if (keyboard.IsConfirmed) + { + GroupOrder = keyboard.Text; + } + } + + string league; + public void Select_league() + { + VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + if (null == keyboard) + return; + + keyboard.Reset(); + keyboard.DoModal(GetID); + if (keyboard.IsConfirmed) + { + league = keyboard.Text; + } + } + + string saison; + public void Select_saison() + { + VirtualKeyboard keyboard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + if (null == keyboard) + return; + + keyboard.Reset(); + keyboard.DoModal(GetID); + if (keyboard.IsConfirmed) + { + saison = keyboard.Text; + } + } + + + + + + + + #endregion + + + + protected override void OnPageLoad() + { + Select_GroupOrder(); + Select_league(); + Select_saison(); + GetData(); + } + + //First number is the line + //1: Date + //2: Time + //3: Name Team + //5: Score Team + + + + public void GetData() + { + + + + #region Schreibe Daten in Array + String[] Date = new String[10]; + String[] Time = new String[10]; + String[] NameTeam1 = new String[10]; + String[] NameTeam2 = new String[10]; + String[] ScoreTeam1 = new String[10]; + String[] ScoreTeam2 = new String[10]; + int i = 1; + + + + foreach (OpenLiga.Matchdata Matchdata in + service.GetMatchdataByGroupLeagueSaison + (Convert.ToInt32(GroupOrder), league, saison)) + { + + Date[i] = Convert.ToString(Matchdata.matchDateTime.Date.DayOfWeek + ", " + + Matchdata.matchDateTime.Date.Day + "." + + Matchdata.matchDateTime.Date.Month + "." + + Matchdata.matchDateTime.Date.Year); + NameTeam1[i] = Convert.ToString(Matchdata.nameTeam1); + NameTeam2[i] = Convert.ToString(Matchdata.nameTeam2); + ScoreTeam1[i] = Convert.ToString(Matchdata.pointsTeam1); + ScoreTeam2[i] = Convert.ToString(Matchdata.pointsTeam2); + i = i + 1; + } + + + #endregion + + + #region Schreibe nach Mediaportal + + + + lbl11.Label = Date[1]; + lbl12.Label = Time[1]; + lbl131.Label = NameTeam1[1]; + lbl132.Label = NameTeam2[1]; + lbl151.Label = ScoreTeam1[1]; + lbl152.Label = ScoreTeam2[1]; + + lbl21.Label = Date[2]; + lbl22.Label = Time[2]; + lbl231.Label = NameTeam1[2]; + lbl232.Label = NameTeam2[2]; + lbl251.Label = ScoreTeam1[2]; + lbl252.Label = ScoreTeam2[2]; + + lbl31.Label = Date[3]; + lbl32.Label = Time[3]; + lbl331.Label = NameTeam1[3]; + lbl332.Label = NameTeam2[3]; + lbl351.Label = ScoreTeam1[3]; + lbl352.Label = ScoreTeam2[3]; + + lbl41.Label = Date[4]; + lbl42.Label = Time[4]; + lbl431.Label = NameTeam1[4]; + lbl432.Label = NameTeam2[4]; + lbl451.Label = ScoreTeam1[4]; + lbl452.Label = ScoreTeam2[4]; + + lbl51.Label = Date[5]; + lbl52.Label = Time[5]; + lbl531.Label = NameTeam1[5]; + lbl532.Label = NameTeam2[5]; + lbl551.Label = ScoreTeam1[5]; + lbl552.Label = ScoreTeam2[5]; + + lbl61.Label = Date[6]; + lbl62.Label = Time[6]; + lbl631.Label = NameTeam1[6]; + lbl632.Label = NameTeam2[6]; + lbl651.Label = ScoreTeam1[6]; + lbl652.Label = ScoreTeam2[6]; + + lbl71.Label = Date[7]; + lbl72.Label = Time[7]; + lbl731.Label = NameTeam1[7]; + lbl732.Label = NameTeam2[7]; + lbl751.Label = ScoreTeam1[7]; + lbl752.Label = ScoreTeam2[7]; + + lbl81.Label = Date[8]; + lbl82.Label = Time[8]; + lbl831.Label = NameTeam1[8]; + lbl832.Label = NameTeam2[8]; + lbl851.Label = ScoreTeam1[8]; + lbl852.Label = ScoreTeam2[8]; + + lbl91.Label = Date[9]; + lbl92.Label = Time[9]; + lbl931.Label = NameTeam1[9]; + lbl932.Label = NameTeam2[9]; + lbl951.Label = ScoreTeam1[9]; + lbl952.Label = ScoreTeam2[9]; + + + + + + + + #endregion + + + + + } + } +} Added: trunk/plugins/Test/First Try/MPPlugin/ClassDiagram1.cd =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/ClassDiagram1.cd (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/ClassDiagram1.cd 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1" GroupingSetting="Alphabetical" MembersFormat="FullSignature"> + <Class Name="MPPlugin.Class1"> + <Position X="1.75" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>QD8AABAAMNgvAAH/wAAAgIJfYAAEAAAAAECCBAAABMA=</HashCode> + <FileName>Class1.cs</FileName> + </TypeIdentifier> + <Lollipop Position="0.2" /> + </Class> + <Class Name="MPPlugin.Properties.Settings" Collapsed="true"> + <Position X="4.25" Y="1.75" Width="1.75" /> + <TypeIdentifier> + <HashCode>AAAAAAAAAAAAAAAAIAAAIAAAAAABAAAAAAAAAAAAAAA=</HashCode> + </TypeIdentifier> + </Class> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.30729</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{ED04CD5D-D1CF-46C1-AFB5-B7F329256A00}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MPPlugin</RootNamespace> + <AssemblyName>MPPlugin</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=0.9.4.31350, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Program Files (x86)\Team MediaPortal\MediaPortal\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.9.4.31361, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Program Files (x86)\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.EnterpriseServices" /> + <Reference Include="System.Web.Services" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Class1.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + <DependentUpon>Settings.settings</DependentUpon> + </Compile> + <Compile Include="Web References\OpenLiga\Reference.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Reference.map</DependentUpon> + </Compile> + </ItemGroup> + <ItemGroup> + <WebReferences Include="Web References\" /> + </ItemGroup> + <ItemGroup> + <WebReferenceUrl Include="http://www.openligadb.de/Webservices/Sportsdata.asmx%3fWSDL"> + <UrlBehavior>Dynamic</UrlBehavior> + <RelPath>Web References\OpenLiga\</RelPath> + <UpdateFromURL>http://www.openligadb.de/Webservices/Sportsdata.asmx%3fWSDL</UpdateFromURL> + <ServiceLocationURL> + </ServiceLocationURL> + <CachedDynamicPropName> + </CachedDynamicPropName> + <CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName> + <CachedSettingsPropName>MPPlugin_de_openligadb_www_Sportsdata</CachedSettingsPropName> + </WebReferenceUrl> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + <None Include="ClassDiagram1.cd" /> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + <None Include="Web References\OpenLiga\Fussballdaten1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + <None Include="Web References\OpenLiga\Group1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + <None Include="Web References\OpenLiga\League1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + <None Include="Web References\OpenLiga\Matchdata1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + <None Include="Web References\OpenLiga\Reference.map"> + <Generator>MSDiscoCodeGenerator</Generator> + <LastGenOutput>Reference.cs</LastGenOutput> + </None> + <None Include="Web References\OpenLiga\Sports1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + <None Include="Web References\OpenLiga\Sportsdata.wsdl" /> + <None Include="Web References\OpenLiga\Team1.datasource"> + <DependentUpon>Reference.map</DependentUpon> + </None> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj.user =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj.user (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/MPPlugin.csproj.user 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,20 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <StartWorkingDirectory> + </StartWorkingDirectory> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <StartAction>Project</StartAction> + <StartProgram>C:\Program Files (x86)\Team MediaPortal\MediaPortal\MediaPortal.exe</StartProgram> + <EnableUnmanagedDebugging>true</EnableUnmanagedDebugging> + <StartURL>C:\Program Files (x86)\Team MediaPortal\MediaPortal\</StartURL> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <StartWorkingDirectory> + </StartWorkingDirectory> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <StartAction>Project</StartAction> + <StartProgram>C:\Program Files (x86)\Team MediaPortal\MediaPortal\MediaPortal.exe</StartProgram> + <EnableUnmanagedDebugging>true</EnableUnmanagedDebugging> + <StartURL>C:\Program Files (x86)\Team MediaPortal\MediaPortal\</StartURL> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Properties/AssemblyInfo.cs 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("MPPlugin")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("MPPlugin")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("c8c020fb-830e-4c6d-a7de-edf54e607606")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Added: trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.Designer.cs =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.Designer.cs (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.Designer.cs 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:2.0.50727.1434 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace MPPlugin.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://www.openligadb.de/Webservices/Sportsdata.asmx")] + public string MPPlugin_de_openligadb_www_Sportsdata { + get { + return ((string)(this["MPPlugin_de_openligadb_www_Sportsdata"])); + } + } + } +} Added: trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.settings =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.settings (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Properties/Settings.settings 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,9 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MPPlugin.Properties" GeneratedClassName="Settings"> + <Profiles /> + <Settings> + <Setting Name="MPPlugin_de_openligadb_www_Sportsdata" Type="(Web Service URL)" Scope="Application"> + <Value Profile="(Default)">http://www.openligadb.de/Webservices/Sportsdata.asmx</Value> + </Setting> + </Settings> +</SettingsFile> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Fussballdaten1.datasource =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Fussballdaten1.datasource (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Fussballdaten1.datasource 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + This file is automatically generated by Visual Studio .Net. It is + used to store generic object data source configuration information. + Renaming the file extension or editing the content of this file may + cause the file to be unrecognizable by the program. +--> +<GenericObjectDataSource DisplayName="Fussballdaten" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>MPPlugin.OpenLiga.Fussballdaten, Web References.OpenLiga.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> +</GenericObjectDataSource> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Group1.datasource =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Group1.datasource (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Group1.datasource 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + This file is automatically generated by Visual Studio .Net. It is + used to store generic object data source configuration information. + Renaming the file extension or editing the content of this file may + cause the file to be unrecognizable by the program. +--> +<GenericObjectDataSource DisplayName="Group" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>MPPlugin.OpenLiga.Group, Web References.OpenLiga.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> +</GenericObjectDataSource> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/League1.datasource =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/League1.datasource (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/League1.datasource 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + This file is automatically generated by Visual Studio .Net. It is + used to store generic object data source configuration information. + Renaming the file extension or editing the content of this file may + cause the file to be unrecognizable by the program. +--> +<GenericObjectDataSource DisplayName="League" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>MPPlugin.OpenLiga.League, Web References.OpenLiga.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> +</GenericObjectDataSource> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Matchdata1.datasource =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Matchdata1.datasource (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Matchdata1.datasource 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + This file is automatically generated by Visual Studio .Net. It is + used to store generic object data source configuration information. + Renaming the file extension or editing the content of this file may + cause the file to be unrecognizable by the program. +--> +<GenericObjectDataSource DisplayName="Matchdata" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource"> + <TypeInfo>MPPlugin.OpenLiga.Matchdata, Web References.OpenLiga.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo> +</GenericObjectDataSource> \ No newline at end of file Added: trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Reference.cs =================================================================== --- trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Reference.cs (rev 0) +++ trunk/plugins/Test/First Try/MPPlugin/Web References/OpenLiga/Reference.cs 2009-03-03 12:14:25 UTC (rev 2690) @@ -0,0 +1,1614 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:2.0.50727.3053 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// </auto-generated> +//------------------------------------------------------------------------------ + +// +// Der Quellcode wurde automatisch mit Microsoft.VSDesigner generiert. Version 2.0.50727.3053. +// +#pragma warning disable 1591 + +namespace MPPlugin.OpenLiga { + using System.Diagnostics; + using System.Web.Services; + using System.ComponentModel; + using System.Web.Services.Protocols; + using System; + using System.Xml.Serialization; + + + /// <remarks/> + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.3053")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Web.Services.WebServiceBindingAttribute(Name="SportsdataSoap", Namespace="http://msiggi.de/Sportsdata/Webservices")] + public partial class Sportsdata : System.Web.Services.Protocols.SoapHttpClientProtocol { + + private System.Threading.SendOrPostCallback GetAvailLeaguesOperationCompleted; + + private System.Threading.SendOrPostCallback GetNextMatchOperationCompleted; + + private System.Threading.SendOrPostCallback GetLastMatchOperationCompleted; + + private System.Threading.SendOrPostCallback GetCurrentGroupOrderIDOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchdataByGroupLeagueSaisonOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchdataByLeagueDateTimeOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchdataByTeamsOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchdataByLeagueSaisonOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchdataByGroupLeagueSaisonJSONOperationCompleted; + + private System.Threading.SendOrPostCallback GetFusballdatenOperationCompleted; + + private System.Threading.SendOrPostCallback GetMatchByMatchIDOperationCompleted; + + private System.Threading.SendOrPostCallback GetTeamsByLeagueSaisonOperationCompleted; + + private System.Threading.SendOrPostCallback GetAvailGroupsOperationCompleted; + + private System.Threading.SendOrPostCallback GetAvailSportsOperationCompleted; + + private System.Threading.SendOrPostCallback GetAvailLeaguesBySportsOperationCompleted; + + private bool useDefaultCredentialsSetExplicitly; + + /// <remarks/> + public Sportsdata() { + this.Url = global::MPPlugin.Properties.Settings.Default.MPPlugin_de_openligadb_www_Sportsdata; + if ((this.IsLocalFileSystemWebService(this.Url) == true)) { + this.UseDefaultCredentials = true; + this.useDefaultCredentialsSetExplicitly = false; + } + else { + this.useDefaultCredentialsSetExplicitly = true; + } + } + + public new string Url { + get { + return base.Url; + } + set { + if ((((this.IsLocalFileSystemWebService(base.Url) == true) + && (this.useDefaultCredentialsSetExplicitly == false)) + && (this.IsLocalFileSystemWebService(value) == false))) { + base.UseDefaultCredentials = false; + } + base.Url = value; + } + } + + public new bool UseDefaultCredentials { + get { + return base.UseDefaultCredentials; + } + set { + base.UseDefaultCredentials = value; + this.useDefaultCredentialsSetExplicitly = true; + } + } + + /// <remarks/> + public event GetAvailLeaguesCompletedEventHandler GetAvailLeaguesCompleted; + + /// <remarks/> + public event GetNextMatchCompletedEventHandler GetNextMatchCompleted; + + /// <remarks/> + public event GetLastMatchCompletedEventHandler GetLastMatchCompleted; + + /// <remarks/> + public event GetCurrentGroupOrderIDCompletedEventHandler GetCurrentGroupOrderIDCompleted; + + /// <remarks/> + public event GetMatchdataByGroupLeagueSaisonCompletedEventHandler GetMatchdataByGroupLeagueSaisonCompleted; + + /// <remarks/> + public event GetMatchdataByLeagueDateTimeCompletedEventHandler GetMatchdataByLeagueDateTimeCompleted; + + /// <remarks/> + public event GetMatchdataByTeamsCompletedEventHandler GetMatchdataByTeamsCompleted; + + /// <remarks/> + public event GetMatchdataByLeagueSaisonCompletedEventHandler GetMatchdataByLeagueSaisonCompleted; + + /// <remarks/> + public event GetMatchdataByGroupLeagueSaisonJSONCompletedEventHandler GetMatchdataByGroupLeagueSaisonJSONCompleted; + + /// <remarks/> + public event GetFusballdatenCompletedEventHandler GetFusballdatenCompleted; + + /// <remarks/> + public event GetMatchByMatchIDCompletedEventHandler GetMatchByMatchIDCompleted; + + /// <remarks/> + public event GetTeamsByLeagueSaisonCompletedEventHandler GetTeamsByLeagueSaisonCompleted; + + /// <remarks/> + public event GetAvailGroupsCompletedEventHandler GetAvailGroupsCompleted; + + /// <remarks/> + public event GetAvailSportsCompletedEventHandler GetAvailSportsCompleted; + + /// <remarks/> + public event GetAvailLeaguesBySportsCompletedEventHandler GetAvailLeaguesBySportsCompleted; + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetAvailLeagues", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public League[] GetAvailLeagues() { + object[] results = this.Invoke("GetAvailLeagues", new object[0]); + return ((League[])(results[0])); + } + + /// <remarks/> + public void GetAvailLeaguesAsync() { + this.GetAvailLeaguesAsync(null); + } + + /// <remarks/> + public void GetAvailLeaguesAsync(object userState) { + if ((this.GetAvailLeaguesOperationCompleted == null)) { + this.GetAvailLeaguesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAvailLeaguesOperationCompleted); + } + this.InvokeAsync("GetAvailLeagues", new object[0], this.GetAvailLeaguesOperationCompleted, userState); + } + + private void OnGetAvailLeaguesOperationCompleted(object arg) { + if ((this.GetAvailLeaguesCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetAvailLeaguesCompleted(this, new GetAvailLeaguesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetNextMatch", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public Matchdata GetNextMatch(string leagueShortcut) { + object[] results = this.Invoke("GetNextMatch", new object[] { + leagueShortcut}); + return ((Matchdata)(results[0])); + } + + /// <remarks/> + public void GetNextMatchAsync(string leagueShortcut) { + this.GetNextMatchAsync(leagueShortcut, null); + } + + /// <remarks/> + public void GetNextMatchAsync(string leagueShortcut, object userState) { + if ((this.GetNextMatchOperationCompleted == null)) { + this.GetNextMatchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetNextMatchOperationCompleted); + } + this.InvokeAsync("GetNextMatch", new object[] { + leagueShortcut}, this.GetNextMatchOperationCompleted, userState); + } + + private void OnGetNextMatchOperationCompleted(object arg) { + if ((this.GetNextMatchCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetNextMatchCompleted(this, new GetNextMatchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetLastMatch", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public Matchdata GetLastMatch(string leagueShortcut) { + object[] results = this.Invoke("GetLastMatch", new object[] { + leagueShortcut}); + return ((Matchdata)(results[0])); + } + + /// <remarks/> + public void GetLastMatchAsync(string leagueShortcut) { + this.GetLastMatchAsync(leagueShortcut, null); + } + + /// <remarks/> + public void GetLastMatchAsync(string leagueShortcut, object userState) { + if ((this.GetLastMatchOperationCompleted == null)) { + this.GetLastMatchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetLastMatchOperationCompleted); + } + this.InvokeAsync("GetLastMatch", new object[] { + leagueShortcut}, this.GetLastMatchOperationCompleted, userState); + } + + private void OnGetLastMatchOperationCompleted(object arg) { + if ((this.GetLastMatchCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetLastMatchCompleted(this, new GetLastMatchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetCurrentGroupOrderID", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int GetCurrentGroupOrderID(string leagueShortcut) { + object[] results = this.Invoke("GetCurrentGroupOrderID", new object[] { + leagueShortcut}); + return ((int)(results[0])); + } + + /// <remarks/> + public void GetCurrentGroupOrderIDAsync(string leagueShortcut) { + this.GetCurrentGroupOrderIDAsync(leagueShortcut, null); + } + + /// <remarks/> + public void GetCurrentGroupOrderIDAsync(string leagueShortcut, object userState) { + if ((this.GetCurrentGroupOrderIDOperationCompleted == null)) { + this.GetCurrentGroupOrderIDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCurrentGroupOrderIDOperationCompleted); + } + this.InvokeAsync("GetCurrentGroupOrderID", new object[] { + leagueShortcut}, this.GetCurrentGroupOrderIDOperationCompleted, userState); + } + + private void OnGetCurrentGroupOrderIDOperationCompleted(object arg) { + if ((this.GetCurrentGroupOrderIDCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetCurrentGroupOrderIDCompleted(this, new GetCurrentGroupOrderIDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetMatchdataByGroupLeagueSaison", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public Matchdata[] GetMatchdataByGroupLeagueSaison(int groupOrderID, string leagueShortcut, string leagueSaison) { + object[] results = this.Invoke("GetMatchdataByGroupLeagueSaison", new object[] { + groupOrderID, + leagueShortcut, + leagueSaison}); + return ((Matchdata[])(results[0])); + } + + /// <remarks/> + public void GetMatchdataByGroupLeagueSaisonAsync(int groupOrderID, string leagueShortcut, string leagueSaison) { + this.GetMatchdataByGroupLeagueSaisonAsync(groupOrderID, leagueShortcut, leagueSaison, null); + } + + /// <remarks/> + public void GetMatchdataByGroupLeagueSaisonAsync(int groupOrderID, string leagueShortcut, string leagueSaison, object userState) { + if ((this.GetMatchdataByGroupLeagueSaisonOperationCompleted == null)) { + this.GetMatchdataByGroupLeagueSaisonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMatchdataByGroupLeagueSaisonOperationCompleted); + } + this.InvokeAsync("GetMatchdataByGroupLeagueSaison", new object[] { + groupOrderID, + leagueShortcut, + leagueSaison}, this.GetMatchdataByGroupLeagueSaisonOperationCompleted, userState); + } + + private void OnGetMatchdataByGroupLeagueSaisonOperationCompleted(object arg) { + if ((this.GetMatchdataByGroupLeagueSaisonCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetMatchdataByGroupLeagueSaisonCompleted(this, new GetMatchdataByGroupLeagueSaisonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetMatchdataByLeagueDateTime", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public Matchdata[] GetMatchdataByLeagueDateTime(System.DateTime fromDateTime, System.DateTime toDateTime, string leagueShortcut) { + object[] results = this.Invoke("GetMatchdataByLeagueDateTime", new object[] { + fromDateTime, + toDateTime, + leagueShortcut}); + return ((Matchdata[])(results[0])); + } + + /// <remarks/> + public void GetMatchdataByLeagueDateTimeAsync(System.DateTime fromDateTime, System.DateTime toDateTime, string leagueShortcut) { + this.GetMatchdataByLeagueDateTimeAsync(fromDateTime, toDateTime, leagueShortcut, null); + } + + /// <remarks/> + public void GetMatchdataByLeagueDateTimeAsync(System.DateTime fromDateTime, System.DateTime toDateTime, string leagueShortcut, object userState) { + if ((this.GetMatchdataByLeagueDateTimeOperationCompleted == null)) { + this.GetMatchdataByLeagueDateTimeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMatchdataByLeagueDateTimeOperationCompleted); + } + this.InvokeAsync("GetMatchdataByLeagueDateTime", new object[] { + fromDateTime, + toDateTime, + leagueShortcut}, this.GetMatchdataByLeagueDateTimeOperationCompleted, userState); + } + + private void OnGetMatchdataByLeagueDateTimeOperationCompleted(object arg) { + if ((this.GetMatchdataByLeagueDateTimeCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetMatchdataByLeagueDateTimeCompleted(this, new GetMatchdataByLeagueDateTimeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetMatchdataByTeams", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public Matchdata[] GetMatchdataByTeams(int teamID1, int teamID2) { + object[] results = this.Invoke("GetMatchdataByTeams", new object[] { + teamID1, + teamID2}); + return ((Matchdata[])(results[0])); + } + + /// <remarks/> + public void GetMatchdataByTeamsAsync(int teamID1, int teamID2) { + this.GetMatchdataByTeamsAsync(teamID1, teamID2, null); + } + + /// <remarks/> + public void GetMatchdataByTeamsAsync(int teamID1, int teamID2, object userState) { + if ((this.GetMatchdataByTeamsOperationCompleted == null)) { + this.GetMatchdataByTeamsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMatchdataByTeamsOperationCompleted); + } + this.InvokeAsync("GetMatchdataByTeams", new object[] { + teamID1, + teamID2}, this.GetMatchdataByTeamsOperationCompleted, userState); + } + + private void OnGetMatchdataByTeamsOperationCompleted(object arg) { + if ((this.GetMatchdataByTeamsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetMatchdataByTeamsCompleted(this, new GetMatchdataByTeamsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetMatchdataByLeagueSaison", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public Matchdata[] GetMatchdataByLeagueSaison(string leagueShortcut, string leagueSaison) { + object[] results = this.Invoke("GetMatchdataByLeagueSaison", new object[] { + leagueShortcut, + leagueSaison}); + return ((Matchdata[])(results[0])); + } + + /// <remarks/> + public void GetMatchdataByLeagueSaisonAsync(string leagueShortcut, string leagueSaison) { + this.GetMatchdataByLeagueSaisonAsync(leagueShortcut, leagueSaison, null); + } + + /// <remarks/> + public void GetMatchdataByLeagueSaisonAsync(string leagueShortcut, string leagueSaison, object userState) { + if ((this.GetMatchdataByLeagueSaisonOperationCompleted == null)) { + this.GetMatchdataByLeagueSaisonOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMatchdataByLeagueSaisonOperationCompleted); + } + this.InvokeAsync("GetMatchdataByLeagueSaison", new object[] { + leagueShortcut, + leagueSaison}, this.GetMatchdataByLeagueSaisonOperationCompleted, userState); + } + + private void OnGetMatchdataByLeagueSaisonOperationCompleted(object arg) { + if ((this.GetMatchdataByLeagueSaisonCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetMatchdataByLeagueSaisonCompleted(this, new GetMatchdataByLeagueSaisonCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetMatchdataByGroupLeagueSaisonJSON", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public string GetMatchdataByGroupLeagueSaisonJSON(int groupOrderID, string leagueShortcut, string leagueSaison) { + object[] results = this.Invoke("GetMatchdataByGroupLeagueSaisonJSON", new object[] { + groupOrderID, + leagueShortcut, + leagueSaison}); + return ((string)(results[0])); + } + + /// <remarks/> + public void GetMatchdataByGroupLeagueSaisonJSONAsync(int groupOrderID, string leagueShortcut, string leagueSaison) { + this.GetMatchdataByGroupLeagueSaisonJSONAsync(groupOrderID, leagueShortcut, leagueSaison, null); + } + + /// <remarks/> + public void GetMatchdataByGroupLeagueSaisonJSONAsync(int groupOrderID, string leagueShortcut, string leagueSaison, object userState) { + if ((this.GetMatchdataByGroupLeagueSaisonJSONOperationCompleted == null)) { + this.GetMatchdataByGroupLeagueSaisonJSONOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMatchdataByGroupLeagueSaisonJSONOperationCompleted); + } + this.InvokeAsync("GetMatchdataByGroupLeagueSaisonJSON", new object[] { + groupOrderID, + leagueShortcut, + leagueSaison}, this.GetMatchdataByGroupLeagueSaisonJSONOperationCompleted, userState); + } + + private void OnGetMatchdataByGroupLeagueSaisonJSONOperationCompleted(object arg) { + if ((this.GetMatchdataByGroupLeagueSaisonJSONCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetMatchdataByGroupLeagueSaisonJSONCompleted(this, new GetMatchdataByGroupLeagueSaisonJSONCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// <remarks/> + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://msiggi.de/Sportsdata/Webservices/GetFusballdaten", RequestNamespace="http://msiggi.de/Sportsdata/Webservices", ResponseNamespace="http://msiggi.de/Sportsdata/Webservices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + [return: System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] + public Fussballdaten[] GetFusballdaten(int Spieltag, string Liga, int Saison, string Userkennung) { + object[] results = this.Invoke("GetFusballdaten", new object[] { + Spieltag, + Liga, + Saison, + Userkennung}); + return ((Fussballdaten[])(results[0])); + } + + /// <remarks/> + public void GetFusballdatenAsync(int Spieltag, string Liga, int Saison, string Userkennung) { + this.GetFusballdatenAsync(Spieltag, Liga, Saison, Userkennung, null); + } + + /// <remarks/> + public void GetFusballdatenAsync(int Spieltag, string Liga, int Saison, string Userkennung, object userStat... [truncated message content] |
From: <fr...@us...> - 2009-03-17 18:30:23
|
Revision: 2725 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2725&view=rev Author: framug Date: 2009-03-17 18:30:15 +0000 (Tue, 17 Mar 2009) Log Message: ----------- Add new folder, for later... Added Paths: ----------- trunk/plugins/MPorsBcws/ trunk/plugins/MPorsBcws/Read-Me.txt Added: trunk/plugins/MPorsBcws/Read-Me.txt =================================================================== --- trunk/plugins/MPorsBcws/Read-Me.txt (rev 0) +++ trunk/plugins/MPorsBcws/Read-Me.txt 2009-03-17 18:30:15 UTC (rev 2725) @@ -0,0 +1,5 @@ +This folder will contains all MP 1.0.1 modified DLL for own use and, may be useful for others users. + +Will be available some times after MP 1.0.1 will be out. + +Framug 2009. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |