From: <che...@us...> - 2007-05-27 02:03:05
|
Revision: 462 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=462&view=rev Author: chef_koch Date: 2007-05-26 19:02:33 -0700 (Sat, 26 May 2007) Log Message: ----------- ignoring *.suo and *.user files on svn commit Modified Paths: -------------- trunk/plugins/FritzBox/FritzBox.cs trunk/plugins/FritzBox/FritzBox.csproj trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.csproj trunk/plugins/mpinstaler/MPInstaler/MPInstaler.csproj Property Changed: ---------------- trunk/plugins/ trunk/plugins/AutoStart/ trunk/plugins/AutoStart/Properties/ trunk/plugins/AutoStart/Resources/ trunk/plugins/AutoStart/bin/ trunk/plugins/AutoStart/bin/Debug/ trunk/plugins/AutoStart/bin/Release/ trunk/plugins/AutoStart/obj/ trunk/plugins/AutoStart/obj/Debug/ trunk/plugins/AutoStart/obj/Debug/TempPE/ trunk/plugins/AutoStart/obj/Release/ trunk/plugins/AutoStart/obj/Release/Refactor/ trunk/plugins/AutoStart/obj/Release/TempPE/ trunk/plugins/DirectTv/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/References/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/SerialInterface/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Debug/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Release/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/TempPE/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/TempPE/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/References/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/SerialInterface/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Debug/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Release/ trunk/plugins/Documentation plugin/ trunk/plugins/Documentation plugin/Properties/ trunk/plugins/Documentation plugin/skin/ trunk/plugins/ETVNet/ trunk/plugins/ETVNet/ETVNet/ trunk/plugins/ETVNet/ETVNet/Properties/ trunk/plugins/ETVNet/ETVNet/skinfiles/ trunk/plugins/ETVNet/ETVNet/skinfiles/wide/ trunk/plugins/FritzBox/ trunk/plugins/FritzBox/Properties/ trunk/plugins/FritzBox/gfx/ trunk/plugins/FritzBox/gfx/Thumbs/ trunk/plugins/FritzBox/gfx/Thumbs/YAC/ trunk/plugins/IPTV@UT/ trunk/plugins/IPTV@UT/IPTV@UT/ trunk/plugins/IPTV@UT/IPTV@UT/Properties/ trunk/plugins/IPTV@UT/[ Default Skin ]/ trunk/plugins/IPTV@UT/[ Wide Skin ]/ trunk/plugins/IPTVPlugin/ trunk/plugins/IPTVPlugin/XMLs/ trunk/plugins/IPTVPlugin/XMLs/Skins/ trunk/plugins/IPTVPlugin/XMLs/Skins/mce/ trunk/plugins/IPTVPlugin/XMLs/StateDetails/ trunk/plugins/IR Server Suite/ trunk/plugins/IR Server Suite/Applications/ trunk/plugins/IR Server Suite/Applications/Debug Client/ trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/ trunk/plugins/IR Server Suite/Applications/IR Server/ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/ trunk/plugins/IR Server Suite/Applications/Translator/ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ trunk/plugins/IR Server Suite/Applications/Translator/Properties/ trunk/plugins/IR Server Suite/Applications/Tray Launcher/ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/ trunk/plugins/IR Server Suite/Applications/Virtual Remote/ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/ trunk/plugins/IR Server Suite/Common/ trunk/plugins/IR Server Suite/Common/IrssUtils/ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/ trunk/plugins/IR Server Suite/Common/MPUtils/ trunk/plugins/IR Server Suite/Common/MPUtils/Forms/ trunk/plugins/IR Server Suite/Common/MPUtils/Properties/ trunk/plugins/IR Server Suite/IPC/ trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/ trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/Properties/ trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/ trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/Properties/ trunk/plugins/IR Server Suite/IPC/Named Pipes/ trunk/plugins/IR Server Suite/IPC/Named Pipes/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/ trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Graphics/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/Media/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Properties/ trunk/plugins/IgorPlugUSB/ trunk/plugins/MCEReplacement/ trunk/plugins/MCEReplacement/Forms/ trunk/plugins/MCEReplacement/InputMapper/ trunk/plugins/MCEReplacementTray/ trunk/plugins/MCEReplacementTray/Properties/ trunk/plugins/MessagePlugin/ trunk/plugins/MultiShortcut/ trunk/plugins/MultiShortcut/DLLFix/ trunk/plugins/MultiShortcut/DLLFix/Properties/ trunk/plugins/MultiShortcut/MultiShortcut/ trunk/plugins/MultiShortcut/MultiShortcut/Properties/ trunk/plugins/MultiShortcut/TestServer/ trunk/plugins/MultiShortcut/TestServer/Properties/ trunk/plugins/My Connect4/ trunk/plugins/My Connect4/Skin/ trunk/plugins/My Connect4/Skin/BlueTwo/ trunk/plugins/My Connect4/Skin/SimpleMP/ trunk/plugins/My Connect4/Skin/_default/ trunk/plugins/My Connect4/Skin/_default/Media/ trunk/plugins/My Connect4/Skin/_default/Sounds/ trunk/plugins/My Connect4/Source/ trunk/plugins/My Connect4/Source/MyConnect4/ trunk/plugins/My Connect4/Source/MyConnect4/Properties/ trunk/plugins/My Connect4/language/ trunk/plugins/My Connect4/language/MyConnect4/ trunk/plugins/My Hexxagon/ trunk/plugins/My Hexxagon/Skin/ trunk/plugins/My Hexxagon/Skin/BlueTwo/ trunk/plugins/My Hexxagon/Skin/SimpleMP/ trunk/plugins/My Hexxagon/Skin/_default/ trunk/plugins/My Hexxagon/Skin/_default/Media/ trunk/plugins/My Hexxagon/Skin/_default/Media/Hexxagon/ trunk/plugins/My Hexxagon/Skin/_default/Sounds/ trunk/plugins/My Hexxagon/Source/ trunk/plugins/My Hexxagon/Source/MyHexxagon/ trunk/plugins/My Hexxagon/Source/MyHexxagon/Properties/ trunk/plugins/My Hexxagon/language/ trunk/plugins/My Hexxagon/language/MyHexxagon/ trunk/plugins/My MPlayer/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/Properties/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/SampleConfiguration/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/Properties/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SampleConfiguration/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/BlueTwo 16x9/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/BlueTwo 4x3/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/PM III/ trunk/plugins/My Minesweeper/ trunk/plugins/My Minesweeper/Release/ trunk/plugins/My Minesweeper/Release/Skin/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/Minesweeper/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/Minesweeper/Board/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Sounds/ trunk/plugins/My Minesweeper/Source/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/Properties/ trunk/plugins/My Refresh/ trunk/plugins/My Streamradio/ trunk/plugins/My Streamradio/Release/ trunk/plugins/My Streamradio/Release/Radio/ trunk/plugins/My Streamradio/Release/Skin/ trunk/plugins/My Streamradio/Release/Thumbs/ trunk/plugins/My Streamradio/Release/Thumbs/Radio/ trunk/plugins/My Streamradio/Source/ trunk/plugins/My Streamradio/Source/MyStreamRadio/ trunk/plugins/My Streamradio/Source/MyStreamRadio/Properties/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/Debug/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/Debug/TempPE/ trunk/plugins/MyClickmania/ trunk/plugins/MyDVDs/ trunk/plugins/MyDVDs/Properties/ trunk/plugins/MyDVDs/language/ trunk/plugins/MyDVDs/language/English/ trunk/plugins/MyDVDs/skin/ trunk/plugins/MyDVDs/skin/BlueTwo/ trunk/plugins/MyDVDs/skin/BlueTwo/Media/ trunk/plugins/MyDbox/ trunk/plugins/MyDbox/Release/ trunk/plugins/MyDbox/Release/Plugins/ trunk/plugins/MyDbox/Release/Plugins/ExternalPlayers/ trunk/plugins/MyDbox/Release/Plugins/Windows/ trunk/plugins/MyDbox/Release/Skin/ trunk/plugins/MyDbox/Release/Skin/Blue Two/ trunk/plugins/MyDbox/Source/ trunk/plugins/MyDbox/Source/MyDbox/ trunk/plugins/MyDbox/Source/MyDbox/Properties/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/Properties/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/Debug/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/Release/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Debug/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Debug/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Release/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Release/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/bin/ trunk/plugins/MyDbox/Source/MyDbox/bin/Debug/ trunk/plugins/MyDbox/Source/MyDbox/bin/Release/ trunk/plugins/MyDbox/Source/MyDbox/obj/ trunk/plugins/MyDbox/Source/MyDbox/obj/Debug/ trunk/plugins/MyDbox/Source/MyDbox/obj/Debug/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/obj/Release/ trunk/plugins/MyDbox/Source/MyDbox/obj/Release/TempPE/ trunk/plugins/MyEmulators/ trunk/plugins/MyEmulators/myEmulators/ trunk/plugins/MyEmulators/myEmulators/Properties/ trunk/plugins/MyEmulators/skin/ trunk/plugins/MyEmulators/skin/BlueTwo/ trunk/plugins/MyEmulators/skin/BlueTwo wide/ trunk/plugins/MyExplorer/ trunk/plugins/MyExplorer/Properties/ trunk/plugins/MyExplorer/skin/ trunk/plugins/MyExplorer/skin/BlueTwo/ trunk/plugins/MyExplorer/skin/BlueTwo wide/ trunk/plugins/MyFilms/ trunk/plugins/MyFilms/Properties/ trunk/plugins/MyFilms/skin/ trunk/plugins/MyFilms/skin/BlackMyst/ trunk/plugins/MyFilms/skin/BlackMyst/Media/ trunk/plugins/MyFilms/skin/BlueTwo/ trunk/plugins/MyFilms/skin/BlueTwo/Media/ trunk/plugins/MyFilms/skin/BlueTwo wide/ trunk/plugins/MyFilms/skin/BlueTwo wide/Media/ trunk/plugins/MyFilms/skin/Project Mayhem 3/ trunk/plugins/MyFilms/skin/Project Mayhem 3/Media/ trunk/plugins/MyLyrics/ trunk/plugins/MyLyrics/LyricsEngine/ trunk/plugins/MyLyrics/LyricsEngine/LRC/ trunk/plugins/MyLyrics/LyricsEngine/LyricsDatabase/ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/ trunk/plugins/MyLyrics/LyricsEngine/Properties/ trunk/plugins/MyLyrics/LyricsEngine/Web References/ trunk/plugins/MyLyrics/LyricsEngine/Web References/Google/ trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/ trunk/plugins/MyLyrics/My Lyrics/ trunk/plugins/MyLyrics/My Lyrics/Convert/ trunk/plugins/MyLyrics/My Lyrics/Properties/ trunk/plugins/MyLyrics/MyLyric Windows Application/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Log/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Lyrics/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Properties/ trunk/plugins/MyLyrics/Skin/ trunk/plugins/MyLyrics/Skin/BlueTwo/ trunk/plugins/MyLyrics/Skin/BlueTwo/Media/ trunk/plugins/MyLyrics/Skin/BlueTwo wide/ trunk/plugins/MyLyrics/Skin/BlueTwo wide/Media/ trunk/plugins/MyMessaging/ trunk/plugins/MyMessaging/Databases/ trunk/plugins/MyMessaging/Databases/Messaging/ trunk/plugins/MyMessaging/Databases/Messaging/SqlLite/ trunk/plugins/MyMessaging/GUIMessage/ trunk/plugins/MyMessaging/GUIMessage/Core/ trunk/plugins/MyMessaging/GUIMessage/GUI/ trunk/plugins/MyMessaging/GUIMessage/Net/ trunk/plugins/MyMessaging/GUIMessage/Net/AUTH/ trunk/plugins/MyMessaging/GUIMessage/Net/Mime/ trunk/plugins/MyMessaging/GUIMessage/Net/Obsolete/ trunk/plugins/MyMessaging/GUIMessage/Net/POP3/ trunk/plugins/MyMessaging/GUIMessage/Net/ServersCore/ trunk/plugins/MyMessaging/WindowPlugins/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Core/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/GUI/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/AUTH/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/Mime/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/Obsolete/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/POP3/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/ServersCore/ trunk/plugins/MyRecipes/ trunk/plugins/MyRecipes/Properties/ trunk/plugins/MyRecipes/skin/ trunk/plugins/MyRecipes/skin/BlueTwo/ trunk/plugins/MyRecipes/skin/BlueTwo wide/ trunk/plugins/MyShowTimes/ trunk/plugins/MyShowTimes/ShowTimesGUI/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/Blue Two/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/MePo Wide/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes/Properties/ trunk/plugins/MySimon/ trunk/plugins/MySimon/Skin/ trunk/plugins/MySimon/Skin/BlueTwo/ trunk/plugins/MySimon/Skin/SimpleMP/ trunk/plugins/MySimon/Skin/_default/ trunk/plugins/MySimon/Skin/_default/Media/ trunk/plugins/MySimon/Skin/_default/Sounds/ trunk/plugins/MySimon/Source/ trunk/plugins/MySimon/Source/SimonSay/ trunk/plugins/MySimon/Source/SimonSay/Properties/ trunk/plugins/MySimon/language/ trunk/plugins/MySimon/language/MySimon/ trunk/plugins/MyStatus/ trunk/plugins/MyStatus/Properties/ trunk/plugins/MyStatus/skin/ trunk/plugins/MyStatus/skin/BlueTwo/ trunk/plugins/MyStatus/skin/BlueTwo wide/ trunk/plugins/MyTorrents/ trunk/plugins/MyTorrents/AzureusWrapper/ trunk/plugins/MyTorrents/AzureusWrapper/Properties/ trunk/plugins/MyTorrents/My Azureus/ trunk/plugins/MyTorrents/My Azureus/GUIAzureus/ trunk/plugins/MyTorrents/My Azureus/Properties/ trunk/plugins/MyTorrents/My Azureus/Skin/ trunk/plugins/MyTorrents/My PodCasts/ trunk/plugins/MyTorrents/My PodCasts/Feeds/ trunk/plugins/MyTorrents/My PodCasts/GUIPodCasts/ trunk/plugins/MyTorrents/My PodCasts/GUIPodCasts/Feeds/ trunk/plugins/MyTorrents/My PodCasts/Properties/ trunk/plugins/MyTorrents/My PodCasts/Skin/ trunk/plugins/MyTorrents/My Torrents/ trunk/plugins/MyTorrents/My Torrents/Feeds/ trunk/plugins/MyTorrents/My Torrents/GUITorrents/ trunk/plugins/MyTorrents/My Torrents/Properties/ trunk/plugins/MyTorrents/My Torrents/Skin/ trunk/plugins/MyTorrents/My uTorrent/ trunk/plugins/MyTorrents/My uTorrent/GUIuTorrent/ trunk/plugins/MyTorrents/My uTorrent/Properties/ trunk/plugins/MyTorrents/My uTorrent/Skin/ trunk/plugins/MyTorrents/My uTorrent/Skin/media/ trunk/plugins/MyTorrents/c3o.Plugins/ trunk/plugins/MyTorrents/c3o.Plugins/Properties/ trunk/plugins/MyTorrents/c3o.Plugins/Shared/ trunk/plugins/MyTorrents/c3o.Plugins/Skin/ trunk/plugins/MyTorrents/c3o.Plugins/Web/ trunk/plugins/OnlinePhotos/ trunk/plugins/OnlinePhotos/bin/ trunk/plugins/OnlinePhotos/bin/Debug/ trunk/plugins/OnlinePhotos/bin/Release/ trunk/plugins/OnlinePhotos/google-sharp/ trunk/plugins/OnlinePhotos/google-sharp/Mono.Google/ trunk/plugins/OnlinePhotos/google-sharp/Mono.Google.Picasa/ trunk/plugins/OnlinePhotos/obj/ trunk/plugins/OnlinePhotos/obj/Debug/ trunk/plugins/OnlinePhotos/obj/Release/ trunk/plugins/OnlineVideos/ trunk/plugins/OnlineVideos/Skin/ trunk/plugins/OnlineVideos/Skin/BlueTwo/ trunk/plugins/OnlineVideos/Source/ trunk/plugins/OnlineVideos/Source/FLV Player/ trunk/plugins/OnlineVideos/Source/OnlineVideos/ trunk/plugins/OnlineVideos/Source/OnlineVideos/ItunesUtils/ trunk/plugins/OnlineVideos/Source/OnlineVideos/Properties/ trunk/plugins/OnlineVideos/Source/OnlineVideos/bin/ trunk/plugins/OnlineVideos/Source/OnlineVideos/bin/Debug/ trunk/plugins/OnlineVideos/Source/OnlineVideos/obj/ trunk/plugins/OnlineVideos/Source/OnlineVideos/obj/Debug/ trunk/plugins/PowerControl/ trunk/plugins/PowerControl/PowerControl/ trunk/plugins/PowerControl/PowerControl/Properties/ trunk/plugins/TV3ExtChannelChanger/ trunk/plugins/TV3ExtChannelChanger/Forms/ trunk/plugins/TV3MceBlaster/ trunk/plugins/TV3MceBlaster/Forms/ trunk/plugins/TV3UuirtBlaster/ trunk/plugins/TV3UuirtBlaster/Forms/ trunk/plugins/TVServerStatus/ trunk/plugins/TVServerStatus/Graphics/ trunk/plugins/TVServerStatus/Properties/ trunk/plugins/UitzendingGemist/ trunk/plugins/UitzendingGemist/UitGemist/ trunk/plugins/UitzendingGemist/UitGemist/Properties/ trunk/plugins/UitzendingGemist/images/ trunk/plugins/UitzendingGemist/skin/ trunk/plugins/UitzendingGemist/skin/[Default Skin]/ trunk/plugins/UitzendingGemist/skin/[Default Skin]/Media/ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/Media/ trunk/plugins/UitzendingGemist/skin/[Wide skin]/ trunk/plugins/UitzendingGemist/skin/[Wide skin]/Media/ trunk/plugins/VideoLAN/ trunk/plugins/VideoLAN/Properties/ trunk/plugins/VideoLAN/bin/ trunk/plugins/WWMP/ trunk/plugins/WWMP/Skins/ trunk/plugins/WWMP/Skins/mce/ trunk/plugins/WWMP/XML/ trunk/plugins/WebBrowser/ trunk/plugins/WebBrowser/Properties/ trunk/plugins/X10Plugin/ trunk/plugins/XBCDRC/ trunk/plugins/file explorer/ trunk/plugins/file explorer/Release/ trunk/plugins/file explorer/Release/Plugins/ trunk/plugins/file explorer/Release/Plugins/Windows/ trunk/plugins/file explorer/Release/Plugins/Windows/FileExplorer/ trunk/plugins/file explorer/Release/Skin/ trunk/plugins/file explorer/Release/Skin/BlueTwo/ trunk/plugins/file explorer/Release/Skin/MCE/ trunk/plugins/file explorer/Release/Skin/Project X/ trunk/plugins/file explorer/Source/ trunk/plugins/file explorer/Source/Compression/ trunk/plugins/file explorer/Source/Dialogs/ trunk/plugins/file explorer/Source/Preview/ trunk/plugins/file explorer/doc/ trunk/plugins/mpinstaler/ trunk/plugins/mpinstaler/MPInstaler/ trunk/plugins/mpinstaler/MPInstaler/Properties/ trunk/plugins/mpinstaler/MPInstaler/bin/ trunk/plugins/mpinstaler/MPInstaler/bin/Debug/ trunk/plugins/mpinstaler/MPInstaler/wizard/ trunk/plugins/mypoker/ trunk/plugins/mypoker/Properties/ trunk/plugins/mypoker/skin/ trunk/plugins/mypoker/skin/MCE/ trunk/plugins/mypoker/skin/MCE/media/ trunk/plugins/mypoker/skin/MCE/media/poker/ trunk/plugins/mypoker/skin/MCE/media/poker/old/ Property changes on: trunk/plugins ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/Resources ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/bin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/bin/Debug ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/bin/Release ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj/Debug ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj/Debug/TempPE ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj/Release ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj/Release/Refactor ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/AutoStart/obj/Release/TempPE ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/References ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/SerialInterface ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Debug ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Release ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/TempPE ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/TempPE ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/References ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/SerialInterface ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Debug ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Release ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/Documentation plugin ___________________________________________________________________ Name: svn:ignore - *.bak + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/Documentation plugin/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/Documentation plugin/skin ___________________________________________________________________ Name: svn:ignore - *.bak + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/ETVNet ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/ETVNet/ETVNet ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/ETVNet/ETVNet/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/ETVNet/ETVNet/skinfiles ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/ETVNet/ETVNet/skinfiles/wide ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/FritzBox ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Modified: trunk/plugins/FritzBox/FritzBox.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox.cs 2007-05-27 01:41:25 UTC (rev 461) +++ trunk/plugins/FritzBox/FritzBox.cs 2007-05-27 02:02:33 UTC (rev 462) @@ -24,15 +24,18 @@ #endregion using System; -using System.Windows.Forms; -using System.Net.Sockets; using System.Collections; +using System.Diagnostics; using System.IO; +using System.Net.Sockets; +using System.Reflection; using System.Runtime.InteropServices; using System.Threading; +using System.Windows.Forms; using System.Xml; -using System.Reflection; +using MediaPortal.Ripper; + using MediaPortal.Util; using MediaPortal.GUI.Library; using MediaPortal.Configuration; @@ -40,6 +43,7 @@ using MediaPortal.Player; using System.Collections.Generic; + namespace FritzBox { /* @@ -69,6 +73,9 @@ private bool _stopMedia = true; // stop media when an event happend private bool _resumeMedia = true; // resume media when notify is closed + private bool _showNotify = true; + private List<string> notifyQueue = new List<string>(); + #endregion #region public Variables @@ -257,8 +264,16 @@ // the file is reached. while ((line = sr.ReadLine()) != null) { + if ( (count == 0) && line.Contains("sep=;") ) + continue; + if ( (count == 0) && line.Contains("Telefonnummer")) + continue; + string[] ar = line.Split(char.Parse(";")); + ar[0] = ar[0].TrimStart('!'); + ar[1] = ar[1].TrimStart('!'); + Caller caller = new Caller(); caller.ID = ar[2]; @@ -267,7 +282,6 @@ caller.Show = true; if (CallerExists(caller)) continue; - if (caller.ID == "Telefonnummer") continue; phonebook.Add(caller); count++; @@ -315,6 +329,13 @@ #region FritzBoxActions private void OnFritzBoxEvent(string dataStream) { + if (!_showNotify) + { + Log.Info("External process is running. Notify is queued and will be shown later."); + notifyQueue.Add(dataStream); + return; + } + string[] strList; // splitted data // data-stream can be in following format: @@ -560,8 +581,30 @@ } } + + public void OnStartExternal(Process proc, bool waitForExit) + { + if (waitForExit) + { + _showNotify = false; + } + else + { + _showNotify = true; + } + } + public void OnStopExternal(Process proc, bool waitForExit) + { + _showNotify = true; + + //for (int i = 0; i < notifyQueue.Count; i++) + // OnFritzBoxEvent(notifyQueue[i]); + + notifyQueue.Clear(); + } + #endregion - + #region <Interface> Implementations #region IPlugin Interface @@ -578,6 +621,9 @@ FritzBoxWatch.Start(); FritzBoxWatch.FritzBoxAction += new FritzBoxWatch.EventHandler(OnFritzBoxEvent); + + Utils.OnStartExternal += new Utils.UtilEventHandler(OnStartExternal); + Utils.OnStopExternal += new Utils.UtilEventHandler(OnStopExternal); } /// <summary> Modified: trunk/plugins/FritzBox/FritzBox.csproj =================================================================== --- trunk/plugins/FritzBox/FritzBox.csproj 2007-05-27 01:41:25 UTC (rev 461) +++ trunk/plugins/FritzBox/FritzBox.csproj 2007-05-27 02:02:33 UTC (rev 462) @@ -78,6 +78,10 @@ <Project>{6DA0E4DF-6230-4642-98B5-E690BB6942BB}</Project> <Name>Utils</Name> </ProjectReference> + <ProjectReference Include="..\..\mediaportal\WindowPlugins\WindowPlugins.csproj"> + <Project>{B282C55B-A37B-4CEC-A4FC-00791069BF00}</Project> + <Name>WindowPlugins</Name> + </ProjectReference> </ItemGroup> <ItemGroup> <EmbeddedResource Include="FritzBoxSetupFrom.resx"> Property changes on: trunk/plugins/FritzBox/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/FritzBox/gfx ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/FritzBox/gfx/Thumbs ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/FritzBox/gfx/Thumbs/YAC ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTV@UT ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTV@UT/IPTV@UT ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTV@UT/IPTV@UT/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTV@UT/[ Default Skin ] ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTV@UT/[ Wide Skin ] ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTVPlugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTVPlugin/XMLs ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTVPlugin/XMLs/Skins ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTVPlugin/XMLs/Skins/mce ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IPTVPlugin/XMLs/StateDetails ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Debug Client ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Debug Client/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/IR Server ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/IR Server/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Translator ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Tray Launcher ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/Named Pipes ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IPC/Named Pipes/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Graphics ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/Media ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/IgorPlugUSB ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MCEReplacement ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MCEReplacement/Forms ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MCEReplacement/InputMapper ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MCEReplacementTray ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MCEReplacementTray/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MessagePlugin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/DLLFix ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/DLLFix/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/MultiShortcut ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/MultiShortcut/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/TestServer ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/MultiShortcut/TestServer/Properties ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/My Connect4 ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/My Connect4/Skin ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/My Connect4/Skin/BlueTwo ___________________________________________________________________ Name: svn:ignore + My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user Property changes on: trunk/plugins/My Connect4/Skin/SimpleMP ___________________________________________________________________ ... [truncated message content] |
From: <che...@us...> - 2007-05-27 02:11:55
|
Revision: 463 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=463&view=rev Author: chef_koch Date: 2007-05-26 19:11:48 -0700 (Sat, 26 May 2007) Log Message: ----------- removed obsolete files Removed Paths: ------------- trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/DirecTV.suo trunk/plugins/ETVNet/ETVNet/ETVNet.csproj.user trunk/plugins/IPTV@UT/IP...@UT...o trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/MyMinesweeper.csproj.user trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper.suo trunk/plugins/My Streamradio/Source/MyStreamRadio/MyStreamRadio.csproj.user trunk/plugins/My Streamradio/Source/MyStreamRadio.suo trunk/plugins/MyClickmania/GUIClickMania.csproj.user trunk/plugins/MyDbox/Source/MyDbox/MyDbox.csproj.user trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/VLanControl.suo trunk/plugins/MyDbox/Source/MyDbox.suo trunk/plugins/MyLyrics/Lyrics.suo trunk/plugins/MyLyrics/LyricsEngine/LyricsEngine.csproj.user trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj.user trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/MyLyric Windows Application.csproj.user trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application.suo trunk/plugins/MyLyrics/MyLyrics.suo trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.csproj.user trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.suo trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes.suo trunk/plugins/MyTorrents/AzureusWrapper/AzureusWrapper.csproj.user trunk/plugins/MyTorrents/My Azureus/My Azureus.csproj.user trunk/plugins/MyTorrents/My PodCasts/My PodCasts.csproj.user trunk/plugins/MyTorrents/My Torrents/My Torrents.csproj.user trunk/plugins/MyTorrents/My uTorrent/My uTorrent.csproj.user trunk/plugins/MyTorrents/MyTorrents.suo trunk/plugins/MyTorrents/c3o.Plugins/c3o.Plugins.csproj.user trunk/plugins/MyTorrents/c3o.Plugins/c3o.plugins.suo trunk/plugins/MyTorrents/c3o.plugins.suo trunk/plugins/OnlinePhotos/OnlinePhotos.suo trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.csproj.user trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.suo trunk/plugins/OnlineVideos/Source/OnlineVideos/OnlineVideos.csproj.user trunk/plugins/OnlineVideos/Source/OnlineVideos.suo trunk/plugins/PowerControl/PowerControl.suo trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj.user trunk/plugins/UitzendingGemist/UitGemist.suo trunk/plugins/VideoLAN/VideoLAN.suo trunk/plugins/WebBrowser/GUIWebBrowser.suo trunk/plugins/X10Plugin/X10Plugin.csproj.user trunk/plugins/mpinstaler/MPInstaler/MPInstaler.csproj.user trunk/plugins/mypoker/mypoker.csproj.user Deleted: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/DirecTV.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/ETVNet/ETVNet/ETVNet.csproj.user =================================================================== --- trunk/plugins/ETVNet/ETVNet/ETVNet.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/ETVNet/ETVNet/ETVNet.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,9 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ProjectFiles</ProjectView> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <StartAction>Program</StartAction> - <StartProgram>C:\projects\mediaportal\xbmc\bin\Release\MediaPortal.exe</StartProgram> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/IPTV@UT/IP...@UT...o =================================================================== (Binary files differ) Deleted: trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/MyMinesweeper.csproj.user =================================================================== --- trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/MyMinesweeper.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/MyMinesweeper.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,9 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <StartAction>Program</StartAction> - <StartProgram>C:\Prog\MediaPortal\xbmc\bin\Debug\MediaPortal.exe</StartProgram> - </PropertyGroup> - <PropertyGroup> - <ReferencePath>C:\Prog\MediaPortal\xbmc\bin\Debug\;C:\Prog\MediaPortal\xbmc\bin\Debug\plugins\</ReferencePath> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/My Streamradio/Source/MyStreamRadio/MyStreamRadio.csproj.user =================================================================== --- trunk/plugins/My Streamradio/Source/MyStreamRadio/MyStreamRadio.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/My Streamradio/Source/MyStreamRadio/MyStreamRadio.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,9 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <StartAction>Program</StartAction> - <StartProgram>C:\Prog\MediaPortal\xbmc\bin\Debug\MediaPortal.exe</StartProgram> - </PropertyGroup> - <PropertyGroup> - <ReferencePath>C:\Prog\MediaPortal\xbmc\bin\Debug\;C:\Prog\MediaPortal\xbmc\bin\Debug\plugins\</ReferencePath> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/My Streamradio/Source/MyStreamRadio.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyClickmania/GUIClickMania.csproj.user =================================================================== --- trunk/plugins/MyClickmania/GUIClickMania.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyClickmania/GUIClickMania.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,57 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <LastOpenVersion>7.10.3077</LastOpenVersion> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ReferencePath>D:\SourceCode\mediaportal\xbmc\bin\Release\plugins\windows\;D:\SourceCode\mediaportal\xbmc\bin\Release\</ReferencePath> - <CopyProjectDestinationFolder> - </CopyProjectDestinationFolder> - <CopyProjectUncPath> - </CopyProjectUncPath> - <CopyProjectOption>0</CopyProjectOption> - <ProjectView>ProjectFiles</ProjectView> - <ProjectTrust>0</ProjectTrust> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>false</StartWithIE> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>true</StartWithIE> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyDbox/Source/MyDbox/MyDbox.csproj.user =================================================================== --- trunk/plugins/MyDbox/Source/MyDbox/MyDbox.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyDbox/Source/MyDbox/MyDbox.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ProjectFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/VLanControl.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyDbox/Source/MyDbox.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyLyrics/Lyrics.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyLyrics/LyricsEngine/LyricsEngine.csproj.user =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsEngine.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsEngine.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ProjectFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj.user =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,18 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ReferencePath>C:\Program Files\Team MediaPortal\</ReferencePath> - <PublishUrlHistory>publish\</PublishUrlHistory> - <InstallUrlHistory> - </InstallUrlHistory> - <SupportUrlHistory> - </SupportUrlHistory> - <UpdateUrlHistory> - </UpdateUrlHistory> - <BootstrapperUrlHistory> - </BootstrapperUrlHistory> - <ApplicationRevision>0</ApplicationRevision> - <FallbackCulture>en-US</FallbackCulture> - <VerifyUploadedFiles>false</VerifyUploadedFiles> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/MyLyric Windows Application.csproj.user =================================================================== --- trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/MyLyric Windows Application.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/MyLyric Windows Application.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,16 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <PublishUrlHistory>publish\</PublishUrlHistory> - <InstallUrlHistory> - </InstallUrlHistory> - <SupportUrlHistory> - </SupportUrlHistory> - <UpdateUrlHistory> - </UpdateUrlHistory> - <BootstrapperUrlHistory> - </BootstrapperUrlHistory> - <ApplicationRevision>0</ApplicationRevision> - <FallbackCulture>en-US</FallbackCulture> - <VerifyUploadedFiles>false</VerifyUploadedFiles> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyLyrics/MyLyrics.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.csproj.user =================================================================== --- trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,57 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <LastOpenVersion>7.10.3077</LastOpenVersion> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ReferencePath>C:\erwin\mediaportal\xbmc\bin\Release\;C:\erwin\mediaportal\xbmc\bin\Release\plugins\windows\</ReferencePath> - <CopyProjectDestinationFolder> - </CopyProjectDestinationFolder> - <CopyProjectUncPath> - </CopyProjectUncPath> - <CopyProjectOption>0</CopyProjectOption> - <ProjectView>ProjectFiles</ProjectView> - <ProjectTrust>0</ProjectTrust> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>false</StartWithIE> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>true</StartWithIE> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyShowTimes/ShowTimesGUI/ShowTimesGUI.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyTorrents/AzureusWrapper/AzureusWrapper.csproj.user =================================================================== --- trunk/plugins/MyTorrents/AzureusWrapper/AzureusWrapper.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/AzureusWrapper/AzureusWrapper.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/My Azureus/My Azureus.csproj.user =================================================================== --- trunk/plugins/MyTorrents/My Azureus/My Azureus.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/My Azureus/My Azureus.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/My PodCasts/My PodCasts.csproj.user =================================================================== --- trunk/plugins/MyTorrents/My PodCasts/My PodCasts.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/My PodCasts/My PodCasts.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/My Torrents/My Torrents.csproj.user =================================================================== --- trunk/plugins/MyTorrents/My Torrents/My Torrents.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/My Torrents/My Torrents.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/My uTorrent/My uTorrent.csproj.user =================================================================== --- trunk/plugins/MyTorrents/My uTorrent/My uTorrent.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/My uTorrent/My uTorrent.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/MyTorrents.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyTorrents/c3o.Plugins/c3o.Plugins.csproj.user =================================================================== --- trunk/plugins/MyTorrents/c3o.Plugins/c3o.Plugins.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/MyTorrents/c3o.Plugins/c3o.Plugins.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,5 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectView>ShowAllFiles</ProjectView> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/MyTorrents/c3o.Plugins/c3o.plugins.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/MyTorrents/c3o.plugins.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/OnlinePhotos/OnlinePhotos.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.csproj.user =================================================================== --- trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,58 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <LastOpenVersion>7.10.3077</LastOpenVersion> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ReferencePath> - </ReferencePath> - <CopyProjectDestinationFolder> - </CopyProjectDestinationFolder> - <CopyProjectUncPath> - </CopyProjectUncPath> - <CopyProjectOption>0</CopyProjectOption> - <ProjectView>ShowAllFiles</ProjectView> - <ProjectTrust>0</ProjectTrust> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>true</StartWithIE> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>true</StartWithIE> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/OnlineVideos/Source/FLV Player/FlashVideoPlayer.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/OnlineVideos/Source/OnlineVideos/OnlineVideos.csproj.user =================================================================== --- trunk/plugins/OnlineVideos/Source/OnlineVideos/OnlineVideos.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/OnlineVideos/Source/OnlineVideos/OnlineVideos.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,6 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <StartAction>Program</StartAction> - <StartProgram>C:\Dev\MediaPortal2\xbmc\bin\Debug\MediaPortal.exe</StartProgram> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/OnlineVideos/Source/OnlineVideos.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/PowerControl/PowerControl.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj.user =================================================================== --- trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/UitzendingGemist/UitGemist/UitGemist.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,6 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <StartAction>Program</StartAction> - <StartProgram>C:\Program Files\Team MediaPortal\MediaPortal\MediaPortal.exe</StartProgram> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/UitzendingGemist/UitGemist.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/VideoLAN/VideoLAN.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/WebBrowser/GUIWebBrowser.suo =================================================================== (Binary files differ) Deleted: trunk/plugins/X10Plugin/X10Plugin.csproj.user =================================================================== --- trunk/plugins/X10Plugin/X10Plugin.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/X10Plugin/X10Plugin.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,48 +0,0 @@ -<VisualStudioProject> - <CSHARP LastOpenVersion = "7.10.3077" > - <Build> - <Settings ReferencePath = "C:\Download\mediaportal\Core\obj\Release\;C:\Download\X10Plugin\;C:\Download\040414\;D:\My Documents\Visual Studio Projects\Media Portal\X10Plugin\" > - <Config - Name = "Debug" - EnableASPDebugging = "false" - EnableASPXDebugging = "false" - EnableUnmanagedDebugging = "false" - EnableSQLServerDebugging = "false" - RemoteDebugEnabled = "false" - RemoteDebugMachine = "" - StartAction = "Project" - StartArguments = "" - StartPage = "" - StartProgram = "" - StartURL = "" - StartWorkingDirectory = "" - StartWithIE = "true" - /> - <Config - Name = "Release" - EnableASPDebugging = "false" - EnableASPXDebugging = "false" - EnableUnmanagedDebugging = "false" - EnableSQLServerDebugging = "false" - RemoteDebugEnabled = "false" - RemoteDebugMachine = "" - StartAction = "Project" - StartArguments = "" - StartPage = "" - StartProgram = "" - StartURL = "" - StartWorkingDirectory = "" - StartWithIE = "true" - /> - </Settings> - </Build> - <OtherProjectSettings - CopyProjectDestinationFolder = "" - CopyProjectUncPath = "" - CopyProjectOption = "0" - ProjectView = "ProjectFiles" - ProjectTrust = "0" - /> - </CSHARP> -</VisualStudioProject> - Deleted: trunk/plugins/mpinstaler/MPInstaler/MPInstaler.csproj.user =================================================================== --- trunk/plugins/mpinstaler/MPInstaler/MPInstaler.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/mpinstaler/MPInstaler/MPInstaler.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,20 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <PublishUrlHistory>publish\</PublishUrlHistory> - <InstallUrlHistory> - </InstallUrlHistory> - <SupportUrlHistory> - </SupportUrlHistory> - <UpdateUrlHistory> - </UpdateUrlHistory> - <BootstrapperUrlHistory> - </BootstrapperUrlHistory> - <ApplicationRevision>1</ApplicationRevision> - <FallbackCulture>en-US</FallbackCulture> - <VerifyUploadedFiles>false</VerifyUploadedFiles> - <EnableSecurityDebugging>false</EnableSecurityDebugging> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <EnableUnmanagedDebugging>true</EnableUnmanagedDebugging> - </PropertyGroup> -</Project> \ No newline at end of file Deleted: trunk/plugins/mypoker/mypoker.csproj.user =================================================================== --- trunk/plugins/mypoker/mypoker.csproj.user 2007-05-27 02:02:33 UTC (rev 462) +++ trunk/plugins/mypoker/mypoker.csproj.user 2007-05-27 02:11:48 UTC (rev 463) @@ -1,57 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <LastOpenVersion>7.10.3077</LastOpenVersion> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ReferencePath>C:\erwin\mediaportal\xbmc\bin\Release\;C:\erwin\mediaportal\xbmc\bin\Release\plugins\windows\</ReferencePath> - <CopyProjectDestinationFolder> - </CopyProjectDestinationFolder> - <CopyProjectUncPath> - </CopyProjectUncPath> - <CopyProjectOption>0</CopyProjectOption> - <ProjectView>ProjectFiles</ProjectView> - <ProjectTrust>0</ProjectTrust> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>false</StartWithIE> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <EnableASPDebugging>false</EnableASPDebugging> - <EnableASPXDebugging>false</EnableASPXDebugging> - <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> - <EnableSQLServerDebugging>false</EnableSQLServerDebugging> - <RemoteDebugEnabled>false</RemoteDebugEnabled> - <RemoteDebugMachine> - </RemoteDebugMachine> - <StartAction>Project</StartAction> - <StartArguments> - </StartArguments> - <StartPage> - </StartPage> - <StartProgram> - </StartProgram> - <StartURL> - </StartURL> - <StartWorkingDirectory> - </StartWorkingDirectory> - <StartWithIE>true</StartWithIE> - </PropertyGroup> -</Project> \ 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...> - 2007-05-27 02:26:26
|
Revision: 464 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=464&view=rev Author: chef_koch Date: 2007-05-26 19:26:19 -0700 (Sat, 26 May 2007) Log Message: ----------- Property Changed: ---------------- trunk/plugins/ trunk/plugins/AutoStart/ trunk/plugins/AutoStart/Properties/ trunk/plugins/AutoStart/Resources/ trunk/plugins/AutoStart/bin/ trunk/plugins/AutoStart/bin/Debug/ trunk/plugins/AutoStart/bin/Release/ trunk/plugins/AutoStart/obj/ trunk/plugins/AutoStart/obj/Debug/ trunk/plugins/AutoStart/obj/Debug/TempPE/ trunk/plugins/AutoStart/obj/Release/ trunk/plugins/AutoStart/obj/Release/Refactor/ trunk/plugins/AutoStart/obj/Release/TempPE/ trunk/plugins/DirectTv/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/References/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/SerialInterface/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Debug/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Release/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/TempPE/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/ trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/TempPE/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/References/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/SerialInterface/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Debug/ trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Release/ trunk/plugins/Documentation plugin/ trunk/plugins/Documentation plugin/Properties/ trunk/plugins/Documentation plugin/skin/ trunk/plugins/ETVNet/ trunk/plugins/ETVNet/ETVNet/ trunk/plugins/ETVNet/ETVNet/Properties/ trunk/plugins/ETVNet/ETVNet/skinfiles/ trunk/plugins/ETVNet/ETVNet/skinfiles/wide/ trunk/plugins/FritzBox/ trunk/plugins/FritzBox/Properties/ trunk/plugins/FritzBox/gfx/ trunk/plugins/FritzBox/gfx/Thumbs/ trunk/plugins/FritzBox/gfx/Thumbs/YAC/ trunk/plugins/IPTV@UT/ trunk/plugins/IPTV@UT/IPTV@UT/ trunk/plugins/IPTV@UT/IPTV@UT/Properties/ trunk/plugins/IPTV@UT/[ Default Skin ]/ trunk/plugins/IPTV@UT/[ Wide Skin ]/ trunk/plugins/IPTVPlugin/ trunk/plugins/IPTVPlugin/XMLs/ trunk/plugins/IPTVPlugin/XMLs/Skins/ trunk/plugins/IPTVPlugin/XMLs/Skins/mce/ trunk/plugins/IPTVPlugin/XMLs/StateDetails/ trunk/plugins/IR Server Suite/ trunk/plugins/IR Server Suite/Applications/ trunk/plugins/IR Server Suite/Applications/Debug Client/ trunk/plugins/IR Server Suite/Applications/Debug Client/Properties/ trunk/plugins/IR Server Suite/Applications/IR Server/ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/ trunk/plugins/IR Server Suite/Applications/Translator/ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ trunk/plugins/IR Server Suite/Applications/Translator/Properties/ trunk/plugins/IR Server Suite/Applications/Tray Launcher/ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties/ trunk/plugins/IR Server Suite/Applications/Virtual Remote/ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties/ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties/ trunk/plugins/IR Server Suite/Common/ trunk/plugins/IR Server Suite/Common/IrssUtils/ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/ trunk/plugins/IR Server Suite/Common/MPUtils/ trunk/plugins/IR Server Suite/Common/MPUtils/Forms/ trunk/plugins/IR Server Suite/Common/MPUtils/Properties/ trunk/plugins/IR Server Suite/IPC/ trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/ trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/Properties/ trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/ trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/Properties/ trunk/plugins/IR Server Suite/IPC/Named Pipes/ trunk/plugins/IR Server Suite/IPC/Named Pipes/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/ trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Graphics/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/Media/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Properties/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Properties/ trunk/plugins/IgorPlugUSB/ trunk/plugins/MCEReplacement/ trunk/plugins/MCEReplacement/Forms/ trunk/plugins/MCEReplacement/InputMapper/ trunk/plugins/MCEReplacementTray/ trunk/plugins/MCEReplacementTray/Properties/ trunk/plugins/MessagePlugin/ trunk/plugins/MultiShortcut/ trunk/plugins/MultiShortcut/DLLFix/ trunk/plugins/MultiShortcut/DLLFix/Properties/ trunk/plugins/MultiShortcut/MultiShortcut/ trunk/plugins/MultiShortcut/MultiShortcut/Properties/ trunk/plugins/MultiShortcut/TestServer/ trunk/plugins/MultiShortcut/TestServer/Properties/ trunk/plugins/My Connect4/ trunk/plugins/My Connect4/Skin/ trunk/plugins/My Connect4/Skin/BlueTwo/ trunk/plugins/My Connect4/Skin/SimpleMP/ trunk/plugins/My Connect4/Skin/_default/ trunk/plugins/My Connect4/Skin/_default/Media/ trunk/plugins/My Connect4/Skin/_default/Sounds/ trunk/plugins/My Connect4/Source/ trunk/plugins/My Connect4/Source/MyConnect4/ trunk/plugins/My Connect4/Source/MyConnect4/Properties/ trunk/plugins/My Connect4/language/ trunk/plugins/My Connect4/language/MyConnect4/ trunk/plugins/My Hexxagon/ trunk/plugins/My Hexxagon/Skin/ trunk/plugins/My Hexxagon/Skin/BlueTwo/ trunk/plugins/My Hexxagon/Skin/SimpleMP/ trunk/plugins/My Hexxagon/Skin/_default/ trunk/plugins/My Hexxagon/Skin/_default/Media/ trunk/plugins/My Hexxagon/Skin/_default/Media/Hexxagon/ trunk/plugins/My Hexxagon/Skin/_default/Sounds/ trunk/plugins/My Hexxagon/Source/ trunk/plugins/My Hexxagon/Source/MyHexxagon/ trunk/plugins/My Hexxagon/Source/MyHexxagon/Properties/ trunk/plugins/My Hexxagon/language/ trunk/plugins/My Hexxagon/language/MyHexxagon/ trunk/plugins/My MPlayer/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/Properties/ trunk/plugins/My MPlayer/MPlayer_ExtPlayer/SampleConfiguration/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/Properties/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SampleConfiguration/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/BlueTwo 16x9/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/BlueTwo 4x3/ trunk/plugins/My MPlayer/MPlayer_GUIPlugin/SkinFiles/PM III/ trunk/plugins/My Minesweeper/ trunk/plugins/My Minesweeper/Release/ trunk/plugins/My Minesweeper/Release/Skin/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/Minesweeper/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Media/Minesweeper/Board/ trunk/plugins/My Minesweeper/Release/Skin/SimpleMP/Sounds/ trunk/plugins/My Minesweeper/Source/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/ trunk/plugins/My Minesweeper/Source/MyMinesweeper/MyMinesweeper/Properties/ trunk/plugins/My Refresh/ trunk/plugins/My Streamradio/ trunk/plugins/My Streamradio/Release/ trunk/plugins/My Streamradio/Release/Radio/ trunk/plugins/My Streamradio/Release/Skin/ trunk/plugins/My Streamradio/Release/Thumbs/ trunk/plugins/My Streamradio/Release/Thumbs/Radio/ trunk/plugins/My Streamradio/Source/ trunk/plugins/My Streamradio/Source/MyStreamRadio/ trunk/plugins/My Streamradio/Source/MyStreamRadio/Properties/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/Debug/ trunk/plugins/My Streamradio/Source/MyStreamRadio/obj/Debug/TempPE/ trunk/plugins/MyClickmania/ trunk/plugins/MyDVDs/ trunk/plugins/MyDVDs/Properties/ trunk/plugins/MyDVDs/language/ trunk/plugins/MyDVDs/language/English/ trunk/plugins/MyDVDs/skin/ trunk/plugins/MyDVDs/skin/BlueTwo/ trunk/plugins/MyDVDs/skin/BlueTwo/Media/ trunk/plugins/MyDbox/ trunk/plugins/MyDbox/Release/ trunk/plugins/MyDbox/Release/Plugins/ trunk/plugins/MyDbox/Release/Plugins/ExternalPlayers/ trunk/plugins/MyDbox/Release/Plugins/Windows/ trunk/plugins/MyDbox/Release/Skin/ trunk/plugins/MyDbox/Release/Skin/Blue Two/ trunk/plugins/MyDbox/Source/ trunk/plugins/MyDbox/Source/MyDbox/ trunk/plugins/MyDbox/Source/MyDbox/Properties/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/Properties/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/Debug/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/bin/Release/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Debug/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Debug/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Release/ trunk/plugins/MyDbox/Source/MyDbox/VideoLAN/VlcControl/obj/Release/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/bin/ trunk/plugins/MyDbox/Source/MyDbox/bin/Debug/ trunk/plugins/MyDbox/Source/MyDbox/bin/Release/ trunk/plugins/MyDbox/Source/MyDbox/obj/ trunk/plugins/MyDbox/Source/MyDbox/obj/Debug/ trunk/plugins/MyDbox/Source/MyDbox/obj/Debug/TempPE/ trunk/plugins/MyDbox/Source/MyDbox/obj/Release/ trunk/plugins/MyDbox/Source/MyDbox/obj/Release/TempPE/ trunk/plugins/MyEmulators/ trunk/plugins/MyEmulators/myEmulators/ trunk/plugins/MyEmulators/myEmulators/Properties/ trunk/plugins/MyEmulators/skin/ trunk/plugins/MyEmulators/skin/BlueTwo/ trunk/plugins/MyEmulators/skin/BlueTwo wide/ trunk/plugins/MyExplorer/ trunk/plugins/MyExplorer/Properties/ trunk/plugins/MyExplorer/skin/ trunk/plugins/MyExplorer/skin/BlueTwo/ trunk/plugins/MyExplorer/skin/BlueTwo wide/ trunk/plugins/MyFilms/ trunk/plugins/MyFilms/Properties/ trunk/plugins/MyFilms/skin/ trunk/plugins/MyFilms/skin/BlackMyst/ trunk/plugins/MyFilms/skin/BlackMyst/Media/ trunk/plugins/MyFilms/skin/BlueTwo/ trunk/plugins/MyFilms/skin/BlueTwo/Media/ trunk/plugins/MyFilms/skin/BlueTwo wide/ trunk/plugins/MyFilms/skin/BlueTwo wide/Media/ trunk/plugins/MyFilms/skin/Project Mayhem 3/ trunk/plugins/MyFilms/skin/Project Mayhem 3/Media/ trunk/plugins/MyLyrics/ trunk/plugins/MyLyrics/LyricsEngine/ trunk/plugins/MyLyrics/LyricsEngine/LRC/ trunk/plugins/MyLyrics/LyricsEngine/LyricsDatabase/ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/ trunk/plugins/MyLyrics/LyricsEngine/Properties/ trunk/plugins/MyLyrics/LyricsEngine/Web References/ trunk/plugins/MyLyrics/LyricsEngine/Web References/Google/ trunk/plugins/MyLyrics/LyricsEngine/Web References/org.lyricwiki/ trunk/plugins/MyLyrics/My Lyrics/ trunk/plugins/MyLyrics/My Lyrics/Convert/ trunk/plugins/MyLyrics/My Lyrics/Properties/ trunk/plugins/MyLyrics/MyLyric Windows Application/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Log/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Lyrics/ trunk/plugins/MyLyrics/MyLyric Windows Application/MyLyric Windows Application/Properties/ trunk/plugins/MyLyrics/Skin/ trunk/plugins/MyLyrics/Skin/BlueTwo/ trunk/plugins/MyLyrics/Skin/BlueTwo/Media/ trunk/plugins/MyLyrics/Skin/BlueTwo wide/ trunk/plugins/MyLyrics/Skin/BlueTwo wide/Media/ trunk/plugins/MyMessaging/ trunk/plugins/MyMessaging/Databases/ trunk/plugins/MyMessaging/Databases/Messaging/ trunk/plugins/MyMessaging/Databases/Messaging/SqlLite/ trunk/plugins/MyMessaging/GUIMessage/ trunk/plugins/MyMessaging/GUIMessage/Core/ trunk/plugins/MyMessaging/GUIMessage/GUI/ trunk/plugins/MyMessaging/GUIMessage/Net/ trunk/plugins/MyMessaging/GUIMessage/Net/AUTH/ trunk/plugins/MyMessaging/GUIMessage/Net/Mime/ trunk/plugins/MyMessaging/GUIMessage/Net/Obsolete/ trunk/plugins/MyMessaging/GUIMessage/Net/POP3/ trunk/plugins/MyMessaging/GUIMessage/Net/ServersCore/ trunk/plugins/MyMessaging/WindowPlugins/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Core/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/GUI/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/AUTH/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/Mime/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/Obsolete/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/POP3/ trunk/plugins/MyMessaging/WindowPlugins/GUIMessage/Net/ServersCore/ trunk/plugins/MyRecipes/ trunk/plugins/MyRecipes/Properties/ trunk/plugins/MyRecipes/skin/ trunk/plugins/MyRecipes/skin/BlueTwo/ trunk/plugins/MyRecipes/skin/BlueTwo wide/ trunk/plugins/MyShowTimes/ trunk/plugins/MyShowTimes/ShowTimesGUI/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/Blue Two/ trunk/plugins/MyShowTimes/ShowTimesGUI/skin/MePo Wide/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes/ trunk/plugins/MyShowTimes/ShowTimesGrabber/ShowTimes/Properties/ trunk/plugins/MySimon/ trunk/plugins/MySimon/Skin/ trunk/plugins/MySimon/Skin/BlueTwo/ trunk/plugins/MySimon/Skin/SimpleMP/ trunk/plugins/MySimon/Skin/_default/ trunk/plugins/MySimon/Skin/_default/Media/ trunk/plugins/MySimon/Skin/_default/Sounds/ trunk/plugins/MySimon/Source/ trunk/plugins/MySimon/Source/SimonSay/ trunk/plugins/MySimon/Source/SimonSay/Properties/ trunk/plugins/MySimon/language/ trunk/plugins/MySimon/language/MySimon/ trunk/plugins/MyStatus/ trunk/plugins/MyStatus/Properties/ trunk/plugins/MyStatus/skin/ trunk/plugins/MyStatus/skin/BlueTwo/ trunk/plugins/MyStatus/skin/BlueTwo wide/ trunk/plugins/MyTorrents/ trunk/plugins/MyTorrents/AzureusWrapper/ trunk/plugins/MyTorrents/AzureusWrapper/Properties/ trunk/plugins/MyTorrents/My Azureus/ trunk/plugins/MyTorrents/My Azureus/GUIAzureus/ trunk/plugins/MyTorrents/My Azureus/Properties/ trunk/plugins/MyTorrents/My Azureus/Skin/ trunk/plugins/MyTorrents/My PodCasts/ trunk/plugins/MyTorrents/My PodCasts/Feeds/ trunk/plugins/MyTorrents/My PodCasts/GUIPodCasts/ trunk/plugins/MyTorrents/My PodCasts/GUIPodCasts/Feeds/ trunk/plugins/MyTorrents/My PodCasts/Properties/ trunk/plugins/MyTorrents/My PodCasts/Skin/ trunk/plugins/MyTorrents/My Torrents/ trunk/plugins/MyTorrents/My Torrents/Feeds/ trunk/plugins/MyTorrents/My Torrents/GUITorrents/ trunk/plugins/MyTorrents/My Torrents/Properties/ trunk/plugins/MyTorrents/My Torrents/Skin/ trunk/plugins/MyTorrents/My uTorrent/ trunk/plugins/MyTorrents/My uTorrent/GUIuTorrent/ trunk/plugins/MyTorrents/My uTorrent/Properties/ trunk/plugins/MyTorrents/My uTorrent/Skin/ trunk/plugins/MyTorrents/My uTorrent/Skin/media/ trunk/plugins/MyTorrents/c3o.Plugins/ trunk/plugins/MyTorrents/c3o.Plugins/Properties/ trunk/plugins/MyTorrents/c3o.Plugins/Shared/ trunk/plugins/MyTorrents/c3o.Plugins/Skin/ trunk/plugins/MyTorrents/c3o.Plugins/Web/ trunk/plugins/OnlinePhotos/ trunk/plugins/OnlinePhotos/bin/ trunk/plugins/OnlinePhotos/bin/Debug/ trunk/plugins/OnlinePhotos/bin/Release/ trunk/plugins/OnlinePhotos/google-sharp/ trunk/plugins/OnlinePhotos/google-sharp/Mono.Google/ trunk/plugins/OnlinePhotos/google-sharp/Mono.Google.Picasa/ trunk/plugins/OnlinePhotos/obj/ trunk/plugins/OnlinePhotos/obj/Debug/ trunk/plugins/OnlinePhotos/obj/Release/ trunk/plugins/OnlineVideos/ trunk/plugins/OnlineVideos/Skin/ trunk/plugins/OnlineVideos/Skin/BlueTwo/ trunk/plugins/OnlineVideos/Source/ trunk/plugins/OnlineVideos/Source/FLV Player/ trunk/plugins/OnlineVideos/Source/OnlineVideos/ trunk/plugins/OnlineVideos/Source/OnlineVideos/ItunesUtils/ trunk/plugins/OnlineVideos/Source/OnlineVideos/Properties/ trunk/plugins/OnlineVideos/Source/OnlineVideos/bin/ trunk/plugins/OnlineVideos/Source/OnlineVideos/bin/Debug/ trunk/plugins/OnlineVideos/Source/OnlineVideos/obj/ trunk/plugins/OnlineVideos/Source/OnlineVideos/obj/Debug/ trunk/plugins/PowerControl/ trunk/plugins/PowerControl/PowerControl/ trunk/plugins/PowerControl/PowerControl/Properties/ trunk/plugins/TV3ExtChannelChanger/ trunk/plugins/TV3ExtChannelChanger/Forms/ trunk/plugins/TV3MceBlaster/ trunk/plugins/TV3MceBlaster/Forms/ trunk/plugins/TV3UuirtBlaster/ trunk/plugins/TV3UuirtBlaster/Forms/ trunk/plugins/TVServerStatus/ trunk/plugins/TVServerStatus/Graphics/ trunk/plugins/TVServerStatus/Properties/ trunk/plugins/UitzendingGemist/ trunk/plugins/UitzendingGemist/UitGemist/ trunk/plugins/UitzendingGemist/UitGemist/Properties/ trunk/plugins/UitzendingGemist/images/ trunk/plugins/UitzendingGemist/skin/ trunk/plugins/UitzendingGemist/skin/[Default Skin]/ trunk/plugins/UitzendingGemist/skin/[Default Skin]/Media/ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/ trunk/plugins/UitzendingGemist/skin/[Project Mayhem]/Media/ trunk/plugins/UitzendingGemist/skin/[Wide skin]/ trunk/plugins/UitzendingGemist/skin/[Wide skin]/Media/ trunk/plugins/VideoLAN/ trunk/plugins/VideoLAN/Properties/ trunk/plugins/VideoLAN/bin/ trunk/plugins/WWMP/ trunk/plugins/WWMP/Skins/ trunk/plugins/WWMP/Skins/mce/ trunk/plugins/WWMP/XML/ trunk/plugins/WebBrowser/ trunk/plugins/WebBrowser/Properties/ trunk/plugins/X10Plugin/ trunk/plugins/XBCDRC/ trunk/plugins/file explorer/ trunk/plugins/file explorer/Release/ trunk/plugins/file explorer/Release/Plugins/ trunk/plugins/file explorer/Release/Plugins/Windows/ trunk/plugins/file explorer/Release/Plugins/Windows/FileExplorer/ trunk/plugins/file explorer/Release/Skin/ trunk/plugins/file explorer/Release/Skin/BlueTwo/ trunk/plugins/file explorer/Release/Skin/MCE/ trunk/plugins/file explorer/Release/Skin/Project X/ trunk/plugins/file explorer/Source/ trunk/plugins/file explorer/Source/Compression/ trunk/plugins/file explorer/Source/Dialogs/ trunk/plugins/file explorer/Source/Preview/ trunk/plugins/file explorer/doc/ trunk/plugins/mpinstaler/ trunk/plugins/mpinstaler/MPInstaler/ trunk/plugins/mpinstaler/MPInstaler/Properties/ trunk/plugins/mpinstaler/MPInstaler/bin/ trunk/plugins/mpinstaler/MPInstaler/bin/Debug/ trunk/plugins/mpinstaler/MPInstaler/wizard/ trunk/plugins/mypoker/ trunk/plugins/mypoker/Properties/ trunk/plugins/mypoker/skin/ trunk/plugins/mypoker/skin/MCE/ trunk/plugins/mypoker/skin/MCE/media/ trunk/plugins/mypoker/skin/MCE/media/poker/ trunk/plugins/mypoker/skin/MCE/media/poker/old/ Property changes on: trunk/plugins ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/Resources ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/bin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/bin/Debug ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/bin/Release ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj/Debug ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj/Debug/TempPE ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj/Release ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj/Release/Refactor ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/AutoStart/obj/Release/TempPE ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/References ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/SerialInterface ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Debug ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/bin/Release ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Debug/TempPE ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 2 DirecTV Plugin/TunerPlugin/obj/Release/TempPE ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/References ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/SerialInterface ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Debug ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/DirectTv/TVE 3 DirecTV Plugin/TunerPlugin/bin/Release ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/Documentation plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/Documentation plugin/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/Documentation plugin/skin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/ETVNet ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/ETVNet/ETVNet ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/ETVNet/ETVNet/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/ETVNet/ETVNet/skinfiles ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/ETVNet/ETVNet/skinfiles/wide ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/FritzBox ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/FritzBox/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/FritzBox/gfx ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/FritzBox/gfx/Thumbs ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/FritzBox/gfx/Thumbs/YAC ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTV@UT ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTV@UT/IPTV@UT ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTV@UT/IPTV@UT/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTV@UT/[ Default Skin ] ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTV@UT/[ Wide Skin ] ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTVPlugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTVPlugin/XMLs ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTVPlugin/XMLs/Skins ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTVPlugin/XMLs/Skins/mce ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IPTVPlugin/XMLs/StateDetails ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Debug Client ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Debug Client/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/IR Server ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/IR Server/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Translator ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Tray Launcher ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/IrssUtils/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/Common/MPUtils/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.InterProcessComm/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/AppModule.NamedPipes/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/Named Pipes ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IPC/Named Pipes/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Dummy Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug USB Receiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/MCE Replacement Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Graphics ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Skin/Media ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/IgorPlugUSB ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MCEReplacement ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MCEReplacement/Forms ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MCEReplacement/InputMapper ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MCEReplacementTray ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MCEReplacementTray/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MessagePlugin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/DLLFix ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/DLLFix/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/MultiShortcut ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/MultiShortcut/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/TestServer ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/MultiShortcut/TestServer/Properties ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/My Connect4 ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/My Connect4/Skin ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/My Connect4/Skin/BlueTwo ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes on: trunk/plugins/My Connect4/Skin/SimpleMP ___________________________________________________________________ Name: svn:ignore - My Plugins.FxCop My Plugins.sln My Plugins.suo *.suo *.user + *.suo *.user thumbs.db Property changes... [truncated message content] |
From: <che...@us...> - 2007-05-27 09:03:25
|
Revision: 472 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=472&view=rev Author: chef_koch Date: 2007-05-27 02:03:13 -0700 (Sun, 27 May 2007) Log Message: ----------- moved language and skin files to release folder Added Paths: ----------- trunk/plugins/My Hexxagon/Release/language/MyHexxagon/ trunk/plugins/My Hexxagon/Release/plugins/Windows/ trunk/plugins/My Hexxagon/Release/skin/BlueTwo/ trunk/plugins/My Hexxagon/Release/skin/SimpleMP/ trunk/plugins/My Hexxagon/Release/skin/_default/ trunk/plugins/MySimon/Release/language/MySimon/ trunk/plugins/MySimon/Release/plugins/Windows/ trunk/plugins/MySimon/Release/skin/BlueTwo/ trunk/plugins/MySimon/Release/skin/SimpleMP/ trunk/plugins/MySimon/Release/skin/_default/ Removed Paths: ------------- trunk/plugins/My Hexxagon/Skin/BlueTwo/ trunk/plugins/My Hexxagon/Skin/SimpleMP/ trunk/plugins/My Hexxagon/Skin/_default/ trunk/plugins/My Hexxagon/language/MyHexxagon/ trunk/plugins/MySimon/Skin/BlueTwo/ trunk/plugins/MySimon/Skin/SimpleMP/ trunk/plugins/MySimon/Skin/_default/ trunk/plugins/MySimon/language/MySimon/ Copied: trunk/plugins/My Hexxagon/Release/language/MyHexxagon (from rev 464, trunk/plugins/My Hexxagon/language/MyHexxagon) Copied: trunk/plugins/My Hexxagon/Release/skin/BlueTwo (from rev 464, trunk/plugins/My Hexxagon/Skin/BlueTwo) Copied: trunk/plugins/My Hexxagon/Release/skin/SimpleMP (from rev 464, trunk/plugins/My Hexxagon/Skin/SimpleMP) Copied: trunk/plugins/My Hexxagon/Release/skin/_default (from rev 464, trunk/plugins/My Hexxagon/Skin/_default) Copied: trunk/plugins/MySimon/Release/language/MySimon (from rev 464, trunk/plugins/MySimon/language/MySimon) Copied: trunk/plugins/MySimon/Release/skin/BlueTwo (from rev 464, trunk/plugins/MySimon/Skin/BlueTwo) Copied: trunk/plugins/MySimon/Release/skin/SimpleMP (from rev 464, trunk/plugins/MySimon/Skin/SimpleMP) Copied: trunk/plugins/MySimon/Release/skin/_default (from rev 464, trunk/plugins/MySimon/Skin/_default) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2007-05-27 09:07:04
|
Revision: 473 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=473&view=rev Author: chef_koch Date: 2007-05-27 02:07:01 -0700 (Sun, 27 May 2007) Log Message: ----------- Removed Paths: ------------- trunk/plugins/My Hexxagon/Skin/ trunk/plugins/My Hexxagon/language/ trunk/plugins/MySimon/Skin/ trunk/plugins/MySimon/language/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2007-05-27 10:20:23
|
Revision: 474 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=474&view=rev Author: chef_koch Date: 2007-05-27 03:20:21 -0700 (Sun, 27 May 2007) Log Message: ----------- added postbuild, this copies targetfile to %programfiles%\Team MP\MP\plugins\windows\* and to Release\plugins\windows\* Modified Paths: -------------- trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.csproj trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.csproj trunk/plugins/MySimon/Source/SimonSay/MySimon.csproj Added Paths: ----------- trunk/plugins/My Connect4/Source/postbuild.bat trunk/plugins/My Hexxagon/Source/postbuild.bat trunk/plugins/MySimon/Source/postbuild.bat Modified: trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.csproj =================================================================== --- trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.csproj 2007-05-27 09:07:01 UTC (rev 473) +++ trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.csproj 2007-05-27 10:20:21 UTC (rev 474) @@ -68,4 +68,8 @@ <Target Name="AfterBuild"> </Target> --> + <PropertyGroup> + <PostBuildEvent>cd "$(SolutionDir)" +call postbuild.bat "$(TargetPath)" "$(TargetFileName)"</PostBuildEvent> + </PropertyGroup> </Project> \ No newline at end of file Added: trunk/plugins/My Connect4/Source/postbuild.bat =================================================================== --- trunk/plugins/My Connect4/Source/postbuild.bat (rev 0) +++ trunk/plugins/My Connect4/Source/postbuild.bat 2007-05-27 10:20:21 UTC (rev 474) @@ -0,0 +1,8 @@ +set TargetPath=%1 +set TargetFile=%2 + +rem echo %TargetPath% > log.txt +rem echo %TargetFile% >> log.txt + +copy %TargetPath% "%ProgramFiles%\Team MediaPortal\MediaPortal\plugins\Windows\*" +copy %TargetPath% "..\Release\plugins\Windows\*" \ No newline at end of file Modified: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.csproj =================================================================== --- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.csproj 2007-05-27 09:07:01 UTC (rev 473) +++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.csproj 2007-05-27 10:20:21 UTC (rev 474) @@ -22,7 +22,7 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>false</Optimize> - <OutputPath>..\..\..\..\..\Programme\Team MediaPortal\MediaPortal\Plugins\Windows\</OutputPath> + <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> @@ -67,4 +67,8 @@ <Target Name="AfterBuild"> </Target> --> + <PropertyGroup> + <PostBuildEvent>cd "$(SolutionDir)" +call postbuild.bat "$(TargetPath)" "$(TargetFileName)"</PostBuildEvent> + </PropertyGroup> </Project> \ No newline at end of file Added: trunk/plugins/My Hexxagon/Source/postbuild.bat =================================================================== --- trunk/plugins/My Hexxagon/Source/postbuild.bat (rev 0) +++ trunk/plugins/My Hexxagon/Source/postbuild.bat 2007-05-27 10:20:21 UTC (rev 474) @@ -0,0 +1,8 @@ +set TargetPath=%1 +set TargetFile=%2 + +rem echo %TargetPath% > log.txt +rem echo %TargetFile% >> log.txt + +copy %TargetPath% "%ProgramFiles%\Team MediaPortal\MediaPortal\plugins\Windows\*" +copy %TargetPath% "..\Release\plugins\Windows\*" \ No newline at end of file Modified: trunk/plugins/MySimon/Source/SimonSay/MySimon.csproj =================================================================== --- trunk/plugins/MySimon/Source/SimonSay/MySimon.csproj 2007-05-27 09:07:01 UTC (rev 473) +++ trunk/plugins/MySimon/Source/SimonSay/MySimon.csproj 2007-05-27 10:20:21 UTC (rev 474) @@ -65,4 +65,8 @@ <Target Name="AfterBuild"> </Target> --> + <PropertyGroup> + <PostBuildEvent>cd "$(SolutionDir)" +call postbuild.bat "$(TargetPath)" "$(TargetFileName)"</PostBuildEvent> + </PropertyGroup> </Project> \ No newline at end of file Added: trunk/plugins/MySimon/Source/postbuild.bat =================================================================== --- trunk/plugins/MySimon/Source/postbuild.bat (rev 0) +++ trunk/plugins/MySimon/Source/postbuild.bat 2007-05-27 10:20:21 UTC (rev 474) @@ -0,0 +1,8 @@ +set TargetPath=%1 +set TargetFile=%2 + +rem echo %TargetPath% > log.txt +rem echo %TargetFile% >> log.txt + +copy %TargetPath% "%ProgramFiles%\Team MediaPortal\MediaPortal\plugins\Windows\*" +copy %TargetPath% "..\Release\plugins\Windows\*" \ 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...> - 2007-05-27 10:46:57
|
Revision: 476 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=476&view=rev Author: chef_koch Date: 2007-05-27 03:46:40 -0700 (Sun, 27 May 2007) Log Message: ----------- improved UpdateButtonStates, static labels will be set now only OnPageLoad Modified Paths: -------------- trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.cs trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.cs trunk/plugins/MySimon/Source/SimonSay/MySimon.cs Modified: trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.cs =================================================================== --- trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.cs 2007-05-27 10:28:38 UTC (rev 475) +++ trunk/plugins/My Connect4/Source/MyConnect4/MyConnect4.cs 2007-05-27 10:46:40 UTC (rev 476) @@ -214,7 +214,7 @@ Drawfield(); - // set localized labels + // set localized labels for static controls GUIPropertyManager.SetProperty("#header_label", MyConnect.GUILocalizeStrings.Get(0)); // MyConnect GUIControl.SetControlLabel(GetID, btnStart.GetID, MyConnect.GUILocalizeStrings.Get(1)); // New Game GUIControl.SetControlLabel(GetID, btnSound.GetID, MyConnect.GUILocalizeStrings.Get(9)); // Sounds @@ -354,7 +354,7 @@ private void UpdateButtonStates() { - // enable/disable button + // enable/disable buttons btnSound.Selected = _soundOn; btnStart.Disabled = (Player != 0); btnLevel.Disabled = ((Player != 0) || (_currentMode == Mode.PlayerVsPlayer)); Modified: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.cs =================================================================== --- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.cs 2007-05-27 10:28:38 UTC (rev 475) +++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.cs 2007-05-27 10:46:40 UTC (rev 476) @@ -66,6 +66,7 @@ protected GUIToggleButtonControl btnSound = null; [SkinControlAttribute(6)] protected GUIButtonControl btnWhatsThis = null; + [SkinControlAttribute(10)] protected GUIButtonControl btnUndo = null; [SkinControlAttribute(15)] @@ -344,6 +345,13 @@ Count(); UpdateBoard(); + // set localized labels for static controls + GUIPropertyManager.SetProperty("#header_label", MyHexxagon.GUILocalizeStrings.Get(0)); // MyHexxagon + GUIControl.SetControlLabel(GetID, btnStart.GetID, MyHexxagon.GUILocalizeStrings.Get(1)); // New Game + GUIControl.SetControlLabel(GetID, btnSound.GetID, MyHexxagon.GUILocalizeStrings.Get(9)); // Sounds + GUIControl.SetControlLabel(GetID, btnWhatsThis.GetID, MyHexxagon.GUILocalizeStrings.Get(31)); // What is MyHexxagon? + GUIControl.SetControlLabel(GetID, btnUndo.GetID, MyHexxagon.GUILocalizeStrings.Get(8)); // Undo + UpdateButtonStates(); } @@ -529,11 +537,13 @@ private void UpdateButtonStates() { - GUIPropertyManager.SetProperty("#header_label", MyHexxagon.GUILocalizeStrings.Get(0)); // MyHexxagon - - GUIControl.SetControlLabel(GetID, btnStart.GetID, MyHexxagon.GUILocalizeStrings.Get(1)); // Start + // enable/disable buttons + btnSound.Selected = _soundOn; + //btnMode.Disabled = (Player != 0); //btnStart.Disabled = (Player != 0); + //btnLevel.Disabled = ((Player != 0) || (_currentMode == Mode.PlayerVsPlayer)); + // refresh label for btnLevel string strLine = MyHexxagon.GUILocalizeStrings.Get(10); // Level: switch (_currentLevel) { @@ -548,8 +558,8 @@ break; } GUIControl.SetControlLabel(GetID, btnLevel.GetID, strLine); - //btnLevel.Disabled = ((Player != 0) || (_currentMode == Mode.PlayerVsPlayer)); + // refresh label for btnMode strLine = MyHexxagon.GUILocalizeStrings.Get(20); // Mode: Play vs switch (_currentMode) { @@ -561,13 +571,8 @@ break; } GUIControl.SetControlLabel(GetID, btnMode.GetID, strLine); - //btnMode.Disabled = (Player != 0); - GUIControl.SetControlLabel(GetID, btnSound.GetID, MyHexxagon.GUILocalizeStrings.Get(9)); // Sounds - btnSound.Selected = _soundOn; - - GUIControl.SetControlLabel(GetID, btnWhatsThis.GetID, MyHexxagon.GUILocalizeStrings.Get(31)); // What is MyConnect? - GUIControl.SetControlLabel(GetID, btnUndo.GetID, MyHexxagon.GUILocalizeStrings.Get(8)); // Undo + // refresh label for btnBoard GUIControl.SetControlLabel(GetID, btnBoard.GetID, MyHexxagon.GUILocalizeStrings.Get(7) + ": " + boardNo.ToString()); // Board: 1 } Modified: trunk/plugins/MySimon/Source/SimonSay/MySimon.cs =================================================================== --- trunk/plugins/MySimon/Source/SimonSay/MySimon.cs 2007-05-27 10:28:38 UTC (rev 475) +++ trunk/plugins/MySimon/Source/SimonSay/MySimon.cs 2007-05-27 10:46:40 UTC (rev 476) @@ -218,7 +218,11 @@ GUIPropertyManager.SetProperty("#Round", MySimon.GUILocalizeStrings.Get(5) + "1"); // Round: 1 GUIPropertyManager.SetProperty("#Player", MySimon.GUILocalizeStrings.Get(6)); // GAME OVER - GUIControl.EnableControl(GetID, btnWhatsThis.GetID); + // set localized labels for static controls + GUIPropertyManager.SetProperty("#header_label", MySimon.GUILocalizeStrings.Get(0)); // MySimon + GUIControl.SetControlLabel(GetID, btnStart.GetID, MySimon.GUILocalizeStrings.Get(1)); // New Game + GUIControl.SetControlLabel(GetID, btnSound.GetID, MySimon.GUILocalizeStrings.Get(9)); // Sounds + GUIControl.SetControlLabel(GetID, btnWhatsThis.GetID, MySimon.GUILocalizeStrings.Get(31)); // What is MySimon? UpdateButtonStates(); } @@ -350,11 +354,13 @@ private void UpdateButtonStates() { - GUIPropertyManager.SetProperty("#header_label", MySimon.GUILocalizeStrings.Get(0)); // My Simon - - GUIControl.SetControlLabel(GetID, btnStart.GetID, MySimon.GUILocalizeStrings.Get(1)); // Start + // enable/disable buttons + btnSound.Selected = _soundOn; btnStart.Disabled = (PlayerOn || SimonOn); + btnLevel.Disabled = (PlayerOn || SimonOn); + btnWhatsThis.Disabled = (PlayerOn || SimonOn); + // refresh label for btnLevel string strLine = MySimon.GUILocalizeStrings.Get(10); // Level: switch (_currentLevel) { @@ -369,13 +375,6 @@ break; } GUIControl.SetControlLabel(GetID, btnLevel.GetID, strLine); - btnLevel.Disabled = (PlayerOn || SimonOn); - - GUIControl.SetControlLabel(GetID, btnSound.GetID, MySimon.GUILocalizeStrings.Get(9)); // Sounds - btnSound.Selected = _soundOn; - - GUIControl.SetControlLabel(GetID, btnWhatsThis.GetID, MySimon.GUILocalizeStrings.Get(31)); // What is My Simon? - btnWhatsThis.Disabled = (PlayerOn || SimonOn); } #endregion This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nor...@us...> - 2007-06-03 17:27:50
|
Revision: 485 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=485&view=rev Author: northern_sky Date: 2007-06-03 10:27:48 -0700 (Sun, 03 Jun 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/myGUIProgramsAlt/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItem .cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemFactory.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemGameBase.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemGrouper.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemList.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemMame.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Database/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Database/DatabaseHandler.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Database/DatabaseSettings.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Database/DatabaseSorter.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesImportProgress.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesImportProgress.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesImportProgress.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesView.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesView.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppFilesView.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsBase.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsBase.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsBase.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsDirCache.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsDirCache.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsDirCache.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGamebase.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGamebase.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGamebase.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGrouper.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGrouper.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsGrouper.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsMame.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsMame.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsMame.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsPrePost.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsPrePost.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsRoot.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsRoot.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/AppSettingsRoot.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/FileDetailsForm.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/FileDetailsForm.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/FileInfoScraperForm.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/FileInfoScraperForm.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/ProgramViews.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/ProgramViews.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/SetupForm.Designer.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/SetupForm.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Design/SetupForm.resx trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/FileItem.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/FileItemInfo.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/FileItemList.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/FilelinkItem.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/FileItems/FilelinkList.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/GUIFileDetailsInfoParser.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/GUIProgramInfo.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/GUIPrograms.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/GUIProgramsAlt.csproj trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/GUIProgramsAlt.csproj.user trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Imports/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Imports/AllGameScraper.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Imports/GamebaseImport.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Imports/MameImport.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/MetaData/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/MetaData/myProgramsAltFileDetailsInfo.xml trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/MetaData/myProgramsAltPreconfiguration.xml trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ProgramFilterItem.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ProgramUtils.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ProgramViewHandler.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Properties/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/Properties/AssemblyInfo.cs trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/bin/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/bin/Debug/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/obj/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/obj/Debug/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/obj/Debug/TempPE/ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt.sln trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt.suo trunk/plugins/myGUIProgramsAlt/README.txt Added: trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItem .cs =================================================================== --- trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItem .cs (rev 0) +++ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItem .cs 2007-06-03 17:27:48 UTC (rev 485) @@ -0,0 +1,1283 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 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 System.Collections.Generic; +using System.Diagnostics; +using System.Xml; +using SQLite.NET; +using MediaPortal.Ripper; +using MediaPortal.Player; +using MediaPortal.GUI.Library; +using MediaPortal.Util; + +using GUIPrograms; +using GUIPrograms.Database; +using GUIPrograms.FileItems; + +namespace GUIPrograms.ApplicationItems +{ + /// <summary> + /// Summary description for Application. + /// </summary> + public class ApplicationItem + { + protected static SQLiteClient sqlDB = null; + private DatabaseSorter dbPc = new DatabaseSorter(); + + public delegate void FilelinkLaunchEventHandler(FilelinkItem curLink, bool mpGuiMode); + + public event FilelinkLaunchEventHandler OnLaunchFilelink = null; + + int appID; + int fatherID; + string title; + string shortTitle; + string filename; + string arguments; + ProcessWindowStyle windowStyle; + Process proc; + string startupDir; + bool useShellExecute; + bool useQuotes; + ApplicationType sourceType; + string sourceFile; + string imageFile; + string imageDirectories; // in one string for sqlite db field + public string[] imageDirs; // imageDirectories splitted + string fileDirectory; + string validExtensions; + bool importValidImagesOnly; + int appPosition; + bool enabled; + bool enableGUIRefresh; + int pincode; + int contentID; + string systemDefault; + bool waitForExit; + string preLaunch; + string postLaunch; + bool importMamePlaychoice10 = false; + + public bool ImportMamePlaychoice10 + { + get { return importMamePlaychoice10; } + set { importMamePlaychoice10 = value; } + } + bool importMameMahjong = false; + + public bool ImportMameMahjong + { + get { return importMameMahjong; } + set { importMameMahjong = value; } + } + + + string launchErrorMsg; + + + // two magic image-slideshow counters + int thumbIndex = 0; + int thumbFolderIndex = -1; + + string lastFilepath = ""; // cached path + + public bool filesAreLoaded = false; // load on demand.... + protected FileItemList fileList = null; + + public bool linksAreLoaded = false; + protected FilelinkItemList fileLinks = null; + + // event: read new file + public delegate void RefreshInfoEventHandler(string informationMessage, int progressBarProgess); + + public event RefreshInfoEventHandler OnRefreshInfo = null; + + protected void SendRefreshInfo(string informationMessage, int progressBarCtr) + { + if (OnRefreshInfo != null) + { + OnRefreshInfo(informationMessage, progressBarCtr); + } + } + + protected int GetID = ProgramUtils.GetID; + + public ApplicationItem(SQLiteClient initSqlDB) + { + + // constructor: save SQLiteDB object + sqlDB = initSqlDB; + // .. init member variables ... + appID = -1; + fatherID = -1; + title = ""; + shortTitle = ""; + filename = ""; + arguments = ""; + windowStyle = ProcessWindowStyle.Normal; + startupDir = "%FILEDIR%"; + useShellExecute = false; + useQuotes = true; + enabled = true; + sourceType = ApplicationType.UNKNOWN; + sourceFile = ""; + imageFile = ""; + fileDirectory = ""; + imageDirectories = ""; + validExtensions = ""; + appPosition = 0; + importValidImagesOnly = false; + enableGUIRefresh = false; + pincode = -1; + contentID = 100; + systemDefault = ""; + waitForExit = true; + filesAreLoaded = false; + preLaunch = ""; + postLaunch = ""; + + } + + public SQLiteClient db + { + get { return sqlDB; } + } + + public int CurrentSortIndex + { + get { return GetCurrentSortIndex(); } + set { SetCurrentSortIndex(value); } + } + + public bool CurrentSortIsAscending + { + get { return GetCurrentSortIsAscending(); } + set { SetCurrentSortIsAscending(value); } + } + + + public FileItem PrevFile(FileItem curFile) + { + if (Files == null) + { + return null; + } + if (Files.Count == 0) + { + return null; + } + int index = this.Files.IndexOf(curFile); + index = index - 1; + if (index < 0) + index = Files.Count - 1; + return (FileItem)Files[index]; + } + + public FileItem NextFile(FileItem curFile) + { + if (Files == null) + { + return null; + } + if (Files.Count == 0) + { + return null; + } + int index = this.Files.IndexOf(curFile); + index = index + 1; + if (index > Files.Count - 1) + index = 0; + return (FileItem)Files[index]; + } + + + public virtual void LaunchFile(FileItem curFile, bool mpGuiMode) + { + string curFilename = curFile.Filename; + if (curFilename == "") + { + return; + } + + // Launch File by item + if (mpGuiMode) + { + curFile.UpdateLaunchInfo(); + } + ProcessStartInfo procStart = new ProcessStartInfo(); + + if (Filename != "") + { + // use the APPLICATION launcher and add current file information + procStart.FileName = Filename; // filename of the application + // set the arguments: one of the arguments is the fileitem-filename + procStart.Arguments = " " + this.Arguments + " "; + if (UseQuotes) + { + // avoid double quotes around the filename-argument..... + curFilename = "\"" + (curFile.Filename.TrimStart('\"')).TrimEnd('\"') + "\""; + } + + if (procStart.Arguments.IndexOf("%FILEnoPATHnoEXT%") >= 0) + { + // ex. kawaks: + // winkawaks.exe alpham2 + // => filename without path and extension is necessary! + string filenameNoPathNoExt = curFile.ExtractFileName(); + filenameNoPathNoExt = (filenameNoPathNoExt.TrimStart('\"')).TrimEnd('\"'); + filenameNoPathNoExt = Path.GetFileNameWithoutExtension(filenameNoPathNoExt); + procStart.Arguments = procStart.Arguments.Replace("%FILEnoPATHnoEXT%", filenameNoPathNoExt); + } + else + { + // the fileitem-argument can be positioned anywhere in the argument string... + if (procStart.Arguments.IndexOf("%FILE%") == -1) + { + // no placeholder found => default handling: add the fileitem as the last argument + procStart.Arguments = procStart.Arguments + curFilename; + } + else + { + // placeholder found => replace the placeholder by the correct filename + procStart.Arguments = procStart.Arguments.Replace("%FILE%", curFilename); + } + } + procStart.WorkingDirectory = Startupdir; + if (procStart.WorkingDirectory.IndexOf("%FILEDIR%") != -1) + { + procStart.WorkingDirectory = procStart.WorkingDirectory.Replace("%FILEDIR%", Path.GetDirectoryName(curFile.Filename)); + } + procStart.UseShellExecute = UseShellExecute; + } + else + { + // application has no launch-file + // => try to make a correct launch using the current FILE object + procStart.FileName = curFile.Filename; + procStart.WorkingDirectory = Path.GetFullPath(curFile.Filename); + + + if (Startupdir != "") + { + if (Startupdir.Contains("%FILEDIR%")) + { + procStart.WorkingDirectory = procStart.WorkingDirectory.Replace("%FILEDIR%", Path.GetDirectoryName(curFile.Filename)); + } + else + { + procStart.WorkingDirectory = Startupdir; + } + } + + procStart.UseShellExecute = UseShellExecute; + } + procStart.WindowStyle = this.WindowStyle; + + this.LaunchErrorMsg = ""; + try + { + DoPreLaunch(); + + + if (mpGuiMode) + { + AutoPlay.StopListening(); + if (g_Player.Playing) + { + g_Player.Stop(); + } + } + + proc = new Process(); + proc.EnableRaisingEvents = true; + proc.Exited += new EventHandler(proc_Exited); + + proc.StartInfo = procStart; + ProgramUtils.StartProcess(proc, WaitForExit); + + + if (mpGuiMode) + { + //GUIGraphicsContext.DX9Device.Reset(GUIGraphicsContext.DX9Device.PresentationParameters); + AutoPlay.StartListening(); + } + + } + catch (Exception ex) + { + string ErrorString = String.Format("myPrograms: error launching program\n filename: {0}\n arguments: {1}\n WorkingDirectory: {2}\n stack: {3} {4} {5}", + procStart.FileName, + procStart.Arguments, + procStart.WorkingDirectory, + ex.Message, + ex.Source, + ex.StackTrace); + Log.Info(ErrorString); + this.LaunchErrorMsg = ErrorString; + } + finally + { + DoPostLaunch(); + } + } + + void proc_Exited(object sender, EventArgs e) + { + + if (proc != null) + { + proc.Dispose(); + proc = null; + } + } + + protected void DoPreLaunch() + { + if (waitForExit && (preLaunch != "")) + { + LaunchCmd(preLaunch); + } + } + + protected void DoPostLaunch() + { + if (waitForExit && (preLaunch != "")) + { + LaunchCmd(postLaunch); + } + } + + protected void LaunchCmd(string commands) + { + string results = ""; + string errors = ""; + string[] script; + string curLine; + Process p = new Process(); + StreamWriter sw; + StreamReader sr; + StreamReader err; + + script = commands.Split(';'); + if (script.Length > 0) + { + ProcessStartInfo psI = new ProcessStartInfo("cmd"); + psI.UseShellExecute = false; + psI.RedirectStandardInput = true; + psI.RedirectStandardOutput = true; + psI.RedirectStandardError = true; + psI.CreateNoWindow = true; + p.StartInfo = psI; + + p.Start(); + sw = p.StandardInput; + sr = p.StandardOutput; + err = p.StandardError; + + sw.AutoFlush = true; + + for (int i = 0; i < script.Length; i++) + { + curLine = script[i].Trim(); + curLine = curLine.TrimStart('\n'); + if (curLine != "") + sw.WriteLine(curLine); + } + sw.Close(); + + results += sr.ReadToEnd(); + errors += err.ReadToEnd(); + + if (errors.Trim() != "") + { + Log.Info("Application PrePost errors: {0}", errors); + } + } + } + + public virtual void LaunchFile(GUIListItem item) + { + // Launch File by GUILISTITEM + // => look for FileItem and launch it using the found object + if (item.MusicTag == null) + { + return; + } + FileItem curFile = (FileItem)item.MusicTag; + + if (curFile == null) + { + return; + } + this.LaunchFile(curFile, true); + } + + protected virtual void LaunchFilelink(FilelinkItem curLink, bool MPGUIMode) + { + this.OnLaunchFilelink(curLink, MPGUIMode); + } + + public virtual string DefaultFilepath() + { + return ""; // override this if the appitem can have subfolders + } + + public virtual int DisplayFiles(string filePath, GUIFacadeControl facadeView) + { + int totalItems = 0; + if (filePath != lastFilepath) + { + Files.Load(AppID, filePath); + Filelinks.Load(AppID, filePath); + } + totalItems = totalItems + DisplayArrayList(filePath, this.Files, facadeView); + totalItems = totalItems + DisplayArrayList(filePath, this.Filelinks, facadeView); + lastFilepath = filePath; + return totalItems; + } + + protected int DisplayArrayList(string filePath, List<object> dbItems, GUIFacadeControl facadeView) + { + int totalItems = 0; + //foreach (FileItem currentFileItem in dbItems) + foreach (object obj in dbItems) + { + totalItems = totalItems + 1; + if (obj is FileItem) + { + FileItem curFile = obj as FileItem; + GUIListItem gli = new GUIListItem(curFile.Title); + gli.Label2 = curFile.Title2; + gli.MusicTag = curFile; + gli.IsFolder = curFile.IsFolder; + gli.OnRetrieveArt += new MediaPortal.GUI.Library.GUIListItem.RetrieveCoverArtHandler(OnRetrieveCoverArt); + gli.OnItemSelected += new MediaPortal.GUI.Library.GUIListItem.ItemSelectedHandler(OnItemSelected); + facadeView.Add(gli); + } + else if (obj is ProgramFilterItem) + { + ProgramFilterItem curFilter = obj as ProgramFilterItem; + GUIListItem gli = new GUIListItem(curFilter.Title); + gli.Label2 = curFilter.Title2; // some filters may have more than one text + gli.MusicTag = curFilter; + gli.IsFolder = true; + //ck + gli.OnItemSelected += new MediaPortal.GUI.Library.GUIListItem.ItemSelectedHandler(OnItemSelected); + + + facadeView.Add(gli); + + } + } + return totalItems; + } + + + void OnRetrieveCoverArt(GUIListItem gli) + { + if ((gli.MusicTag != null) && (gli.MusicTag is FileItem)) + { + FileItem curFile = (FileItem)gli.MusicTag; + if (curFile.Imagefile != "") + { + gli.ThumbnailImage = curFile.Imagefile; + gli.IconImageBig = curFile.Imagefile; + gli.IconImage = curFile.Imagefile; + } + else + { + gli.ThumbnailImage = GUIGraphicsContext.Skin + @"\media\DefaultFolderBig.png"; + gli.IconImageBig = GUIGraphicsContext.Skin + @"\media\DefaultFolderBig.png"; + gli.IconImage = GUIGraphicsContext.Skin + @"\media\DefaultFolderNF.png"; + } + } + } + + /* private void OnItemSelected(GUIListItem item, GUIControl parent) + { + GUIFilmstripControl filmstrip = parent as GUIFilmstripControl; + if (filmstrip == null) return; + if (item == null) return; + if ((item.MusicTag != null) && (item.MusicTag is FileItem) && (!item.IsFolder)) + { + filmstrip.InfoImageFileName = item.ThumbnailImage; + } + else + { + filmstrip.InfoImageFileName = ""; + } + }*/ + private void OnItemSelected(GUIListItem item, GUIControl parent) + { + GUIPrograms.ThumbnailPath = ""; + if (item.ThumbnailImage != "" + && item.ThumbnailImage != GUIGraphicsContext.Skin + @"\media\DefaultFolderBig.png" + && item.ThumbnailImage != GUIGraphicsContext.Skin + @"\media\DefaultAlbum.png" + ) + { + // only show big thumb if there is really one.... + GUIPrograms.ThumbnailPath = item.ThumbnailImage; + } + } + + public virtual void OnSort(GUIFacadeControl view, bool doSwitchState) + { + /* + * if (!filesAreLoaded) + { + LoadFiles(); + } + + if (doSwitchState) + { + dbPc.UpdateState(); + } + view.Sort(dbPc); + */ + } + + public virtual void OnSortToggle(GUIFacadeControl view) + { + dbPc.sortAscending = (!dbPc.sortAscending); + view.Sort(dbPc); + } + + public virtual int GetCurrentSortIndex() + { + return dbPc.CurrentSortMethodIndex; + } + + public virtual void SetCurrentSortIndex(int newValue) + { + dbPc.CurrentSortMethodIndex = newValue; + } + + public virtual string CurrentSortTitle() + { + return dbPc.CurrentSortMethodAsText; + } + + public virtual bool GetCurrentSortIsAscending() + { + return dbPc.sortAscending; + } + + public virtual void SetCurrentSortIsAscending(bool newValue) + { + dbPc.sortAscending = newValue; + } + + public virtual bool RefreshButtonVisible() + { + return false; // otherwise, override this in child class + } + + public virtual bool FileEditorAllowed() + { + return true; // otherwise, override this in child class + } + + public virtual bool FileAddAllowed() + { + return true; // otherwise, override this in child class + } + + public virtual bool FilesCanBeFavourites() + { + return true; // otherwise, override this in child class + } + + public virtual bool FileBrowseAllowed() + { + // set this to true, if SUBDIRECTORIES are allowed + // (example: possible for DIRECTORY-CACHE) + return false; // otherwise, override this in child class + } + + public virtual bool SubItemsAllowed() + { + return false; + } + + public virtual bool ProfileLoadingAllowed() + { + return false; + } + + public virtual void Refresh(bool mpGuiMode) + { + // descendant classes do that! + } + + + public virtual void OnInfo(GUIListItem item, ref bool isOverviewVisible, ref ProgramInfoAction modalResult, ref int selectedFileID) + { + GUIFileInfo fileInfoDialog = (GUIFileInfo)GUIWindowManager.GetWindow(ProgramUtils.ProgramInfoID); + if (null != fileInfoDialog) + { + if (item.MusicTag == null) + { + return; + } + FileItem curFile = (FileItem)item.MusicTag; + fileInfoDialog.App = this; + fileInfoDialog.File = curFile; + fileInfoDialog.IsOverviewVisible = isOverviewVisible; + fileInfoDialog.DoModal(GetID); + isOverviewVisible = fileInfoDialog.IsOverviewVisible; + modalResult = fileInfoDialog.ModalResult; + selectedFileID = fileInfoDialog.SelectedFileID; + return; + } + } + + public int AppID + { + get { return appID; } + set { appID = value; } + } + + public int FatherID + { + get { return fatherID; } + set { fatherID = value; } + } + + public string Title + { + get { return title; } + set { title = value; } + } + + public string ShortTitle + { + get { return shortTitle; } + set { shortTitle = value; } + } + + public string Filename + { + get { return filename; } + set { filename = value; } + } + + public string Arguments + { + get { return arguments; } + set { arguments = value; } + } + + public bool UseQuotes + { + get { return useQuotes; } + set { useQuotes = value; } + } + + public bool UseShellExecute + { + get { return useShellExecute; } + set { useShellExecute = value; } + } + + public bool Enabled + { + get { return enabled; } + set { enabled = value; } + } + + public ProcessWindowStyle WindowStyle + { + get { return windowStyle; } + set { windowStyle = value; } + } + + public string Startupdir + { + get { return startupDir; } + set { startupDir = value; } + } + + public string FileDirectory + { + get { return fileDirectory; } + set { fileDirectory = value; } + } + + public string ImageDirectory + { + get { return imageDirectories; } + set { SetImageDirectory(value); } + } + + private void SetImageDirectory(string value) + { + imageDirectories = value; + imageDirs = imageDirectories.Split(';'); + for (int i = 0; i < imageDirs.Length; i++) + { + imageDirs[i] = imageDirs[i].Trim(); + // hack the \n away.... + // imageDirs[i] = imageDirs[i].TrimStart('\n'); + // hack trailing backslashes away + imageDirs[i] = imageDirs[i].TrimEnd('\\'); + } + } + + public string Imagefile + { + get { return imageFile; } + set { imageFile = value; } + } + + public string Source + { + get { return sourceFile; } + set { sourceFile = value; } + } + + public ApplicationType SourceType + { + get { return sourceType; } + set { sourceType = value; } + } + + public string ValidExtensions + { + get { return validExtensions; } + set { validExtensions = value; } + } + + public bool ImportValidImagesOnly + { + get { return importValidImagesOnly; } + set { importValidImagesOnly = value; } + } + + public int Position + { + get { return appPosition; } + set { appPosition = value; } + } + + public int ContentID + { + get { return contentID; } + set { contentID = value; } + } + + public string SystemDefault + { + get { return systemDefault; } + set { systemDefault = value; } + } + + public bool WaitForExit + { + get { return waitForExit; } + set { waitForExit = value; } + } + + + public bool GUIRefreshPossible + { + get { return RefreshButtonVisible(); } + } + + public bool EnableGUIRefresh + { + get { return enableGUIRefresh; } + set { enableGUIRefresh = value; } + } + + public string LaunchErrorMsg + { + get { return launchErrorMsg; } + set { launchErrorMsg = value; } + } + + public string PreLaunch + { + get { return preLaunch; } + set { preLaunch = value; } + } + + public string PostLaunch + { + get { return postLaunch; } + set { postLaunch = value; } + } + + + public FileItemList Files + { + // load on demand.... + get + { + if (!filesAreLoaded) + { + LoadFiles(); + } + return fileList; + } + } + + + public FilelinkItemList Filelinks + { + // load on demand.... + get + { + if (!linksAreLoaded) + { + LoadFileLinks(); + } + return fileLinks; + } + } + + + private int GetNewAppID() + { + // get an unused SQL application KEY-number + if (sqlDB != null) + { + // won't work in multiuser environment :) + SQLiteResultSet results; + int res = 0; + results = sqlDB.Execute("SELECT MAX(APPID) FROM application"); + SQLiteResultSet.Row arr = results.Rows[0]; + if (arr.fields[0] != null) + { + if (arr.fields[0] != "") + { + res = Int32.Parse(arr.fields[0]); + } + } + return res + 1; + } + else return -1; + } + + private void Insert() + { + if (sqlDB != null) + { + try + { + if (ContentID <= 0) + { + ContentID = 100; + } + //to remove + string Pincode = ""; + AppID = GetNewAppID(); // important to avoid subsequent inserts! + string sql = String.Format("insert into application (appid, fatherID, title, shorttitle, filename, arguments, windowstyle, startupdir, useshellexecute, usequotes, source_type, source, imagefile, filedirectory, imagedirectory, validextensions, importvalidimagesonly, iposition, enabled, enableGUIRefresh, GUIRefreshPossible, pincode, contentID, systemDefault, WaitForExit, preLaunch, postLaunch) values('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}')", + AppID, FatherID, ProgramUtils.Encode(Title), ProgramUtils.Encode(ShortTitle), ProgramUtils.Encode(Filename), ProgramUtils.Encode(Arguments), + ProgramUtils.WindowStyleToStr(WindowStyle), ProgramUtils.Encode(Startupdir), ProgramUtils.BooleanToStr(UseShellExecute), + ProgramUtils.BooleanToStr(UseQuotes), ProgramUtils.ApplicationTypeToString(SourceType), ProgramUtils.Encode(Source), ProgramUtils.Encode(Imagefile), + ProgramUtils.Encode(FileDirectory), ProgramUtils.Encode(ImageDirectory), ProgramUtils.Encode(ValidExtensions), ProgramUtils.BooleanToStr(importValidImagesOnly), Position, + ProgramUtils.BooleanToStr(Enabled), ProgramUtils.BooleanToStr(EnableGUIRefresh), ProgramUtils.BooleanToStr(GUIRefreshPossible),Pincode , + ContentID, ProgramUtils.Encode(SystemDefault), ProgramUtils.BooleanToStr(WaitForExit), ProgramUtils.Encode(PreLaunch), ProgramUtils.Encode(PostLaunch) + ); + sqlDB.Execute(sql); + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception err:{0} stack:{1}", ex.Message, ex.StackTrace); + } + } + } + + private void Update() + { + string sql = ""; + //to remove + string Pincode = ""; + if ((AppID >= 0) && (sqlDB != null)) + { + if (ContentID <= 0) + { + ContentID = 100; + } + try + { + sql = String.Format("update application set title = '{0}', shorttitle = '{1}', filename = '{2}', arguments = '{3}', windowstyle = '{4}', startupdir = '{5}', useshellexecute = '{6}', usequotes = '{7}', source_type = '{8}', source = '{9}', imagefile = '{10}',filedirectory = '{11}',imagedirectory = '{12}',validextensions = '{13}',importvalidimagesonly = '{14}',iposition = {15}, enabled = '{16}', fatherID = '{17}', enableGUIRefresh = '{18}', GUIRefreshPossible = '{19}', pincode = '{20}', contentID = '{21}', systemDefault = '{22}', WaitForExit = '{23}', preLaunch = '{24}', postLaunch = '{25}' where appID = {26}", + ProgramUtils.Encode(Title), ProgramUtils.Encode(ShortTitle), ProgramUtils.Encode(Filename), ProgramUtils.Encode(Arguments), + ProgramUtils.WindowStyleToStr(WindowStyle), ProgramUtils.Encode(Startupdir), ProgramUtils.BooleanToStr(UseShellExecute), + ProgramUtils.BooleanToStr(UseQuotes), ProgramUtils.ApplicationTypeToString(SourceType), ProgramUtils.Encode(Source), ProgramUtils.Encode(Imagefile), + ProgramUtils.Encode(FileDirectory), ProgramUtils.Encode(ImageDirectory), ProgramUtils.Encode(ValidExtensions), ProgramUtils.BooleanToStr(importValidImagesOnly), Position, + ProgramUtils.BooleanToStr(Enabled), FatherID, ProgramUtils.BooleanToStr(EnableGUIRefresh), ProgramUtils.BooleanToStr(GUIRefreshPossible), + Pincode, ContentID, ProgramUtils.Encode(SystemDefault), ProgramUtils.BooleanToStr(WaitForExit), ProgramUtils.Encode(PreLaunch), ProgramUtils.Encode(PostLaunch), + AppID); + sqlDB.Execute(sql); + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception err:{0} stack:{1}", ex.Message, ex.StackTrace); + Log.Info("sql \n{0}", sql); + } + } + } + + public void Delete() + { + if ((AppID >= 0) && (sqlDB != null)) + { + try + { + DeleteFiles(); + DeleteFileLinks(); + sqlDB.Execute(String.Format("delete from application where appid = {0}", AppID)); + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception err:{0} stack:{1}", ex.Message, ex.StackTrace); + } + } + } + + + + + protected void DeleteFiles() + { + if ((AppID >= 0) && (sqlDB != null)) + { + try + { + sqlDB.Execute(String.Format("delete from tblfile where appid = {0}", AppID)); + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception err:{0} stack:{1}", ex.Message, ex.StackTrace); + } + } + } + + protected void DeleteFileLinks() + { + if ((AppID >= 0) && (sqlDB != null)) + { + try + { + sqlDB.Execute(String.Format("delete from filteritem where appid = {0} or grouperappid = {0}", AppID)); + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception err:{0} stack:{1}", ex.Message, ex.StackTrace); + } + } + } + + + public virtual void LoadFiles() + { + if (sqlDB != null) + { + // load Files and fill Files-List<string> here! + if (fileList == null) + { + fileList = new FileItemList(sqlDB); + } + else + { + fileList.Clear(); + } + lastFilepath = ""; + fileList.Load(AppID, ""); + filesAreLoaded = true; + } + } + + public virtual void LoadFileLinks() + { + if (sqlDB != null) + { + if (fileLinks == null) + { + fileLinks = new FilelinkItemList(sqlDB); + } + else + { + fileLinks.Clear(); + } + lastFilepath = ""; + fileLinks.Load(AppID, ""); + linksAreLoaded = true; + } + } + + protected virtual void FixFileLinks() + { + // after a import the appitem has completely new + // fileitems (new ids) and LINKS stored in filteritems + // are out of sync... fix this here! + + // query with data to fix + string sqlSelectDataToFix = String.Format("select fi.appid, fi.fileid as oldfileid, f.fileid as newfileid, fi.filename as filename from filteritem fi, tblfile f where fi.appID = f.appid and fi.filename = f.filename and fi.appID = {0}", AppID); + + // update command to fix one single link + string sqlFixOneLink = "update filteritem set fileID = {0}, tag = 0 where appID = {1} and filename = '{2}'"; + + SQLiteResultSet rows2fix; + + + try + { + // 1) initialize TAG + sqlDB.Execute(String.Format("update filteritem set tag = 1234 where appid = {0}", AppID)); + + // 2) fix all fileids of the newly imported files + rows2fix = sqlDB.Execute(sqlSelectDataToFix); + int newFileID; + string filenameToFix; + if (rows2fix.Rows.Count == 0) return; + for (int row = 0; row < rows2fix.Rows.Count; row++) + { + newFileID = ProgramUtils.GetIntDef(rows2fix, row, "newfileid", -1); + filenameToFix = ProgramUtils.Get(rows2fix, row, "filename"); + sqlDB.Execute(String.Format(sqlFixOneLink, newFileID, AppID, ProgramUtils.Encode(filenameToFix))); + } + + // 3) delete untouched links ( they were not imported anymore ) + sqlDB.Execute(String.Format("delete from filteritem where appid = {0} and tag = 1234", AppID)); + + } + catch (SQLiteException ex) + { + Log.Info("programdatabase exception (Application.FixFileLinks) err:{0} stack:{1}", ex.Message, ex.StackTrace); + } + + } + + + public void InsertOrUpdateSettings() + { + if (appID == -1) + { + Insert(); + } + else + { + Update(); + } + } + + public virtual string CurrentFilePath() + { + return this.FileDirectory; + } + + + public void Assign(ApplicationItem sourceApp) + { + this.Enabled = sourceApp.Enabled; + this.AppID = sourceApp.AppID; + this.FatherID = sourceApp.FatherID; + this.Title = sourceApp.Title; + this.ShortTitle = sourceApp.ShortTitle; + this.Filename = sourceApp.Filename; + this.Arguments = sourceApp.Arguments; + this.WindowStyle = sourceApp.WindowStyle; + this.Startupdir = sourceApp.Startupdir; + this.UseShellExecute = sourceApp.UseShellExecute; + this.UseQuotes = sourceApp.UseQuotes; + this.SourceType = sourceApp.SourceType; + this.Source = sourceApp.Source; + this.Imagefile = sourceApp.Imagefile; + this.FileDirectory = sourceApp.FileDirectory; + this.ImageDirectory = sourceApp.ImageDirectory; + this.ValidExtensions = sourceApp.ValidExtensions; + this.ImportValidImagesOnly = sourceApp.ImportValidImagesOnly; + this.Position = sourceApp.Position; + this.EnableGUIRefresh = sourceApp.EnableGUIRefresh; + this.WaitForExit = sourceApp.WaitForExit; + this.PreLaunch = sourceApp.PreLaunch; + this.PostLaunch = sourceApp.PostLaunch; + this.SystemDefault = sourceApp.SystemDefault; + this.ContentID = sourceApp.ContentID; + } + + + + // imagedirectory stuff + // get next imagedirectory that holds at least one image for a fileitem + // * m_pFile: the file we're looking images for + private void GetNextThumbFolderIndex(FileItem fileItem) + { + if (fileItem == null) return; + bool foundThumb = false; + while (!foundThumb) + { + thumbFolderIndex++; + if (thumbFolderIndex >= imageDirs.Length) + { + thumbFolderIndex = -1; + foundThumb = true; + } + else + { + string candFolder = imageDirs[thumbFolderIndex]; + string candThumb = candFolder + "\\" + fileItem.ExtractImageFileNoPath(); + if (candThumb.ToLower() != fileItem.Imagefile.ToLower()) + { + foundThumb = (System.IO.File.Exists(candThumb)); + } + else + { + // skip the initial directory, in case it's reentered as a search directory! + foundThumb = false; + } + } + } + } + + public virtual string GetCurThumb(GUIListItem item) + { + if (item.MusicTag == null) + { + return ""; + } + if (item.MusicTag is FileItem) + { + FileItem curFile = item.MusicTag as FileItem; + return GetCurThumb(curFile); + } + else if (item.MusicTag is ApplicationItem) + { + ApplicationItem curApp = item.MusicTag as ApplicationItem; + return curApp.Imagefile; + } + else + { + return ""; + } + } + + + public string GetCurThumb(FileItem fileItem) + { + string curThumb = ""; + if (thumbFolderIndex == -1) + { + curThumb = fileItem.Imagefile; + } + else + { + string curFolder = imageDirs[thumbFolderIndex]; + curThumb = curFolder + "\\" + fileItem.ExtractImageFileNoPath(); + } + if (thumbIndex > 0) + { + // try to find another thumb.... + // use the myGames convention: + // every thumb has the postfix "_1", "_2", etc with the same file extension + string curExtension = fileItem.ExtractImageExtension(); + if (curThumb != "") + { + string cand = curThumb.Replace(curExtension, "_" + thumbIndex.ToString() + curExtension); + if (System.IO.File.Exists(cand)) + { + // found another thumb => override the filename! + curThumb = cand; + } + else + { + thumbIndex = 0; // restart at the first thumb! + GetNextThumbFolderIndex(fileItem); + } + } + } + return curThumb; + } + + public void ResetThumbs() + { + thumbIndex = 0; + thumbFolderIndex = -1; + } + + public void NextThumb() + { + thumbIndex++; + } + + + public void LoadFromXmlProfile(XmlNode node) + { + + XmlNode titleNode = node.SelectSingleNode("title"); + if (titleNode != null) + { + this.Title = titleNode.InnerText; + } + + XmlNode launchingAppNode = node.SelectSingleNode("launchingApplication"); + if (launchingAppNode != null) + { + this.Filename = launchingAppNode.InnerText; + } + + XmlNode useShellExecuteNode = node.SelectSingleNode("useShellExecute"); + if (useShellExecuteNode != null) + { + this.UseShellExecute = ProgramUtils.StrToBoolean(useShellExecuteNode.InnerText); + } + + XmlNode argumentsNode = node.SelectSingleNode("arguments"); + if (argumentsNode != null) + { + this.Arguments = argumentsNode.InnerText; + } + + XmlNode windowStyleNode = node.SelectSingleNode("windowStyle"); + if (windowStyleNode != null) + { + this.WindowStyle = ProgramUtils.StringToWindowStyle(windowStyleNode.InnerText); + } + + XmlNode startupDirNode = node.SelectSingleNode("startupDir"); + if (startupDirNode != null) + { + this.Startupdir = startupDirNode.InnerText; + } + + XmlNode useQuotesNode = node.SelectSingleNode("useQuotes"); + if (useQuotesNode != null) + { + this.UseQuotes = ProgramUtils.StrToBoolean(useQuotesNode.InnerText); + } + + XmlNode fileExtensioneNode = node.SelectSingleNode("fileextensions"); + if (fileExtensioneNode != null) + { + this.ValidExtensions = fileExtensioneNode.InnerText; + } + } + + } +} \ No newline at end of file Added: trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs =================================================================== --- trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs (rev 0) +++ trunk/plugins/myGUIProgramsAlt/GUIProgramsAlt/ApplicationItems/ApplicationItemDirectoryCache.cs 2007-06-03 17:27:48 UTC (rev 485) @@ -0,0 +1,362 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 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.Collections; +using System.IO; +using MediaPortal.Dialogs; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using GUIPrograms; +using SQLite.NET; +using System.Windows.Forms; + + +using GUIPrograms.FileItems; + +using GUIPrograms.Database; + +namespace GUIPrograms.ApplicationItems +{ + /// <summary> + /// Summary description for ApplicationItemDirectoryCache. + /// </summary> + public class ApplicationItemDirectoryCache : ApplicationItem + { + GUIDialogProgress progressDialog = null; + + public ApplicationItemDirectoryCache(SQLiteClient initSqlDB) : base(initSqlDB) { } + + private void ShowProgressDialog() + { + progressDialog = (GUIDialogProgress)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_PROGRESS); + progressDialog.ShowWaitCursor = true; + progressDialog.SetHeading(GUILocalizeStrings.Get(13014)); + progressDialog.SetLine(0, GUILocalizeStrings.Get(13014)); + progressDialog.SetLine(1, ""); + progressDialog.SetLine(2, ""); + progressDialog.StartModal(GetID); + progressDialog.Progress(); + } + + private void CloseProgressDialog() + { + progressDialog.Close(); + } + + private string GetThumbsFile(GUIListItem guiFile, string fileTitle) + { + string thumbFolder = ""; + if (imageDirs.Length > 0) + { + string mainImgFolder = ""; + + foreach (string imgFolder in imageDirs) + { + if (System.IO.Directory.Exists(imgFolder)) + { + mainImgFolder = imgFolder; + } + } + + if ("" != mainImgFolder) + { + string curDir = mainImgFolder + "\\"; + string filenameNoExtension = mainImgFolder + "\\" + guiFile.Label; + filenameNoExtension = Path.ChangeExtension(filenameNoExtension, null); + filenameNoExtension = Path.GetFileNameWithoutExtension(filenameNoExtension); + + string[] exactMatchesJPG = Directory.GetFiles(curDir, filenameNoExtension + ".jpg"); + string[] exactMatchesGIF = Directory.GetFiles(curDir, filenameNoExtension + ".gif"); + string[] exactMatchesPNG = Directory.GetFiles(curDir, filenameNoExtension + ".png"); + if (exactMatchesJPG.Length > 0) + { + thumbFolder = exactMatchesJPG[0]; + } + else if (exactMatchesGIF.Length > 0) + { + thumbFolder = exactMatchesGIF[0]; + } + else if (exactMatchesPNG.Length > 0) + { + thumbFolder = exactMatchesPNG[0]; + } + else + { + string[] almostexactMatchesJPG = Directory.GetFiles(curDir, filenameNoExtension + "*.jpg"); + string[] almostexactMatchesGIF = Directory.GetFiles(curDir, filenameNoExtension + "*.gif"); + string[] almostexactMatchesPNG = Directory.GetFiles(curDir, filenameNoExtension + "*.png"); + if (almostexactMatchesJPG.Length > 0) + { + thumbFolder = almostexactMatchesJPG[0]; + } + else if (almostexactMatchesGIF.Length > 0) + { + thumbFolder = almostexactMatchesGIF[0]; + } + else if (almostexactMatchesPNG.Length > 0) + { + thumbFolder = almostexactMatchesPNG[0]; + } + else + { + // no exact match found! Redo with near matches! + string[] nearMatchesJPG = Directory.GetFiles(curDir, fileTitle + "*.jpg"); + string[] nearMatchesGIF = Directory.GetFiles(curDir, fileTitle + "*.gif"); + string[] nearMatchesPNG = Directory.GetFiles(curDir, fileTitle + "*.png"); + if (nearMatchesJPG.Length > 0) + { + thumbFolder = nearMatchesJPG[0]; + } + else if (nearMatchesGIF.Length > 0) + { + thumbFolder = nearMatchesGIF[0]; + } + else if (nearMatchesPNG.Length > 0) + { + thumbFolder = nearMatchesPNG[0]; + } + } + } + } + } + return thumbFolder; + } + + + private void ImportFileItem(GUIListItem guiFile) + { + FileItem curFile = new FileItem(sqlDB); + curFile.FileID = -1; // to force an INSERT statement when writing the item + curFile.AppID = this.AppID; + curFile.Title = guiFile.Label; + curFile.Title = curFile.TitleNormalized; + curFile.Filename = guiFile.Path; + if (this.UseQuotes) + { + curFile.Filename = "\"" + curFile.Filename + "\""; + } + curFile.Filepath = Path.GetDirectoryName(guiFile.Path); + curFile.Imagefile = GetThumbsFile(guiFile, curFile.TitleNormalized); + // not imported properties => set default values + curFile.ManualFilename = ""; + curFile.LastTimeLaunched = DateTime.MinValue; + curFile.LaunchCount = 0; + curFile.Write(); + } + + private void WriteFolderItem(string directoryPath) + { + FileItem curFile = new FileItem(sqlDB); + curFile.FileID = -1; + curFile.AppID = this.AppID; + curFile.Filename = directoryPath; + curFile.Title = Path.GetFileNameWithoutExtension(directoryPath); + curFile.Filepath = Path.GetDirectoryName(directoryPath); + curFile.IsFolder = true; + curFile.ManualFilename = ""; + curFile.LastTimeLaunched = DateTime.MinValue; + curFile.LaunchCount = 0; + curFile.Write(); + } + + + private void UpdateProgressDialog(GUIListItem guiFile, bool mpGuiMode) + { + if (mpGuiMode) + { + progressDialog.SetLine(2, String.Format("{0} {1}", GUILocalizeStrings.Get(13005), guiFile.Label)); // "last imported file {0}" + progressDialog.Progress(); + } + SendRefreshInfo(String.Format("{0} {1}", GUILocalizeStrings.Get(13005), guiFile.Label), 0); + } + + private void DeleteOrphaned() + { + string TheFileName; + this.Files.Load(AppID, ""); + foreach (FileItem DBfile in this.Files) + { + if (this.UseQuotes && !DBfile.IsFolder) + { + TheFileName = DBfile.Filename.Substring(1, DBfile.Filename.Length - 2); + } + else + { + TheFileName = DBfile.Filename; + } + if (!DBfile.IsFolder) + { + if (!File.Exists(TheFileName)) { DBfile.Delete(); } + ... [truncated message content] |
From: <ide...@us...> - 2007-06-12 16:40:32
|
Revision: 520 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=520&view=rev Author: ideasdigger Date: 2007-06-12 09:40:14 -0700 (Tue, 12 Jun 2007) Log Message: ----------- First version of the IE-based WebBrowser plug-in Adopted from the Mozilla-based WebBrowser source code Should work with any IE version (tested 7.0) Supports Zoom in/out functionality Added Paths: ----------- trunk/plugins/WebBrowserIE/ trunk/plugins/WebBrowserIE/Plugins/ trunk/plugins/WebBrowserIE/Plugins/Windows/ trunk/plugins/WebBrowserIE/Plugins/Windows/Interop.SHDocVw.dll trunk/plugins/WebBrowserIE/Plugins/Windows/WebBrowser.dll trunk/plugins/WebBrowserIE/Readme.txt trunk/plugins/WebBrowserIE/Sources/ trunk/plugins/WebBrowserIE/Sources/Common.cs trunk/plugins/WebBrowserIE/Sources/DialogWebKeyboard.cs trunk/plugins/WebBrowserIE/Sources/GUIFavorites.cs trunk/plugins/WebBrowserIE/Sources/GUIWebBrowser.cs trunk/plugins/WebBrowserIE/Sources/GUIWebBrowser.csproj trunk/plugins/WebBrowserIE/Sources/GUIWebBrowser.sln trunk/plugins/WebBrowserIE/Sources/INIFile.cs trunk/plugins/WebBrowserIE/Sources/MozillaFile.cs trunk/plugins/WebBrowserIE/Sources/MozillaNode.cs trunk/plugins/WebBrowserIE/Sources/Node.cs trunk/plugins/WebBrowserIE/skin/ trunk/plugins/WebBrowserIE/skin/BlueTwo/ trunk/plugins/WebBrowserIE/skin/BlueTwo/Media/ trunk/plugins/WebBrowserIE/skin/BlueTwo/Media/nav_zoom_in_focus.PNG trunk/plugins/WebBrowserIE/skin/BlueTwo/Media/nav_zoom_out_focus.PNG trunk/plugins/WebBrowserIE/skin/BlueTwo/WebBrowser.xml Added: trunk/plugins/WebBrowserIE/Plugins/Windows/Interop.SHDocVw.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebBrowserIE/Plugins/Windows/Interop.SHDocVw.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebBrowserIE/Plugins/Windows/WebBrowser.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/WebBrowserIE/Plugins/Windows/WebBrowser.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/WebBrowserIE/Readme.txt =================================================================== --- trunk/plugins/WebBrowserIE/Readme.txt (rev 0) +++ trunk/plugins/WebBrowserIE/Readme.txt 2007-06-12 16:40:14 UTC (rev 520) @@ -0,0 +1,15 @@ + +The plug-in was adopted from the original Mozilla-based one by Igor Moochnick. + +Homepage link: http://igor.moochnick.googlepages.com/walltop +Download link: http://igor.moochnick.googlepages.com/IEWebControl.exe + +The following DLLs need to be placed in the Plugins\Windows directory of the installed MediaPortal for the plugin to work: + +WebBrowser.dll +Interop.SHDocVw.dll + +Skin files are already in the main MP distribution, but if you'd like to use the Zoom-in and Zoom-out functionality, +copy the files from the attached Skin directory to the Skin directory of the installed MediaPortal. + +NOTE: If you're better than me in the arts of button-creation - please fix my crappy Zoom buttons (booth in-focus and off-focus) Added: trunk/plugins/WebBrowserIE/Sources/Common.cs =================================================================== --- trunk/plugins/WebBrowserIE/Sources/Common.cs (rev 0) +++ trunk/plugins/WebBrowserIE/Sources/Common.cs 2007-06-12 16:40:14 UTC (rev 520) @@ -0,0 +1,56 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 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.Text; + +namespace MediaPortal.GUI.WebBrowser +{ + class Common + { + /// <summary> + /// Menu state enum + /// </summary> + public enum MenuState + { + Browser = 0, + TopBar = 1 + } + /// <summary> + /// Gets the user configured home page from the mediaportal settings + /// </summary> + public static string HomePage + { + get + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + return xmlreader.GetValueAsString("webbrowser", "homePage", string.Empty); + } + } + } + } +} Added: trunk/plugins/WebBrowserIE/Sources/DialogWebKeyboard.cs =================================================================== --- trunk/plugins/WebBrowserIE/Sources/DialogWebKeyboard.cs (rev 0) +++ trunk/plugins/WebBrowserIE/Sources/DialogWebKeyboard.cs 2007-06-12 16:40:14 UTC (rev 520) @@ -0,0 +1,1679 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 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.Windows.Forms; +using System.Collections; +using MediaPortal.GUI.Library; +using Microsoft.DirectX; +using Microsoft.DirectX.Direct3D; +using Direct3D = Microsoft.DirectX.Direct3D; + +namespace MediaPortal.GUI.WebBrowser +{ + /// <summary> + /// </summary> + public class DialogWebKeyboard : GUIWindow, IRenderLayer + { + const int GAP_WIDTH = 0; + const int GAP2_WIDTH = 4; + const int MODEKEY_WIDTH = 110; + const int KEY_INSET = 1; + + const int MAX_KEYS_PER_ROW = 14; + + // Must be this far from center on 0.0 - 1.0 scale + const float JOY_THRESHOLD = 0.25f; + + // How often (per second) the caret blinks + const float fCARET_BLINK_RATE = 1.0f; + + // During the blink period, the amount the caret is visible. 0.5 equals + // half the time, 0.75 equals 3/4ths of the time, etc. + const float fCARET_ON_RATIO = 0.75f; + + // Text colors for keys + const long COLOR_SEARCHTEXT = 0xff000000; // black (0xff10e010) + const long COLOR_HIGHLIGHT = 0xff00ff00; // green + const long COLOR_PRESSED = 0xff808080; // gray + const long COLOR_NORMAL = 0xff000000; // black + const long COLOR_DISABLED = 0xffffffff; // white + const long COLOR_HELPTEXT = 0xffffffff; // white + const long COLOR_FONT_DISABLED = 0xff808080; // gray + const long COLOR_INVISIBLE = 0xff0000ff; // blue + const long COLOR_RED = 0xffff0000; // red + // Font sizes + const int FONTSIZE_BUTTONCHARS = 24; + const int FONTSIZE_BUTTONSTRINGS = 18; + const int FONTSIZE_SEARCHTEXT = 20; + + + // Controller repeat values + const float fINITIAL_REPEAT = 0.333f; // 333 mS recommended for first repeat + const float fSTD_REPEAT = 0.085f; // 85 mS recommended for repeat rate + + // Maximum number of characters in string + const int MAX_CHARS = 64; + + // Width of text box + float fTEXTBOX_WIDTH = 576.0f - 64.0f - 4.0f - 4.0f - 10.0f; + float BUTTON_Y_POS = 411.0f; // button text line + float BUTTON_X_OFFSET = 40.0f; // space between button and text + + const long BUTTONTEXT_COLOR = 0xffffffff; + const float FIXED_JSL_SIZE = 3.0f; + + // Xboxdings font button mappings + const string TEXT_A_BUTTON = "A"; + const string TEXT_B_BUTTON = "B"; + const string TEXT_X_BUTTON = "C"; + const string TEXT_Y_BUTTON = "D"; + const int KEY_WIDTH = 34; // width of std key in pixels + + string[] g_strEnglish = + { + "English", + "Choose Keyboard", + "Sample graphics. Don't use in your game", + "Select", + "Back", + "Help", + "SPACE", + "BKSP", + "SHIFT", + "CAPS", + "ALPHABET", + "SYMB", + "ACEENTS", + "DONE", + "Select", + "Cance", + "Toggle\nmode", + "Display help", + "Backspace", + "Space", + "Trigger buttons move cursor", + }; + enum KeyboardTypes + { + TYPE_ALPHABET = 0, + TYPE_SYMBOLS, + TYPE_ACCENTS, + + TYPE_HIRAGANA, + TYPE_KATAKANA, + TYPE_ANS, + + TYPE_MAX + }; + + enum State + { + STATE_BACK, // Main menu + STATE_KEYBOARD, // Keyboard display + STATE_MAX + }; + + enum ControllerSState + { + XKJ_START = 1 << 0, + XKJ_BACK = 1 << 1, + XKJ_A = 1 << 2, + XKJ_B = 1 << 3, + XKJ_X = 1 << 4, + XKJ_Y = 1 << 5, + XKJ_BLACK = 1 << 6, + XKJ_WHITE = 1 << 7, + XKJ_LEFTTR = 1 << 8, + XKJ_RIGHTTR = 1 << 9, + + XKJ_DUP = 1 << 12, + XKJ_DDOWN = 1 << 13, + XKJ_DLEFT = 1 << 14, + XKJ_DRIGHT = 1 << 15, + XKJ_UP = 1 << 16, + XKJ_DOWN = 1 << 17, + XKJ_LEFT = 1 << 18, + XKJ_RIGHT = 1 << 19 + }; + + enum Event + { + EV_NULL, // No events + EV_A_BUTTON, // A button + EV_START_BUTTON, // Start button + EV_B_BUTTON, // B button + EV_BACK_BUTTON, // Back button + EV_X_BUTTON, // X button + EV_Y_BUTTON, // Y button + EV_WHITE_BUTTON, // White button + EV_BLACK_BUTTON, // Black button + EV_LEFT_BUTTON, // Left trigger + EV_RIGHT_BUTTON, // Right trigger + EV_UP, // Up Dpad or left joy + EV_DOWN, // Down Dpad or left joy + EV_LEFT, // Left Dpad or left joy + EV_RIGHT, // Right Dpad or left joy + + EVENT_MAX + }; + + enum Xkey + { + XK_NULL = 0, + + XK_SPACE = ' ', + XK_LBRACK = '[', + XK_RBRACK = ']', + XK_LBRACE = '{', + XK_RBRACE = '}', + XK_LPAREN = '(', + XK_RPAREN = ')', + XK_FSLASH = '/', + XK_BSLASH = '\\', + XK_LT = '<', + XK_GT = '>', + XK_AT = '@', + XK_SEMI = ';', + XK_COLON = ':', + XK_QUOTE = '\'', + XK_DQUOTE = '\"', + XK_AMPER = '&', + XK_STAR = '*', + XK_QMARK = '?', + XK_COMMA = ',', + XK_PERIOD = '.', + XK_DASH = '-', + XK_UNDERS = '_', + XK_PLUS = '+', + XK_EQUAL = '=', + XK_DOLLAR = '$', + XK_PERCENT = '%', + XK_CARET = '^', + XK_TILDE = '~', + XK_APOS = '`', + XK_EXCL = '!', + XK_VERT = '|', + XK_NSIGN = '#', + + + // Numbers + XK_0 = '0', + XK_1, + XK_2, + XK_3, + XK_4, + XK_5, + XK_6, + XK_7, + XK_8, + XK_9, + + // Letters + XK_A = 'A', + XK_B, + XK_C, + XK_D, + XK_E, + XK_F, + XK_G, + XK_H, + XK_I, + XK_J, + XK_K, + XK_L, + XK_M, + XK_N, + XK_O, + XK_P, + XK_Q, + XK_R, + XK_S, + XK_T, + XK_U, + XK_V, + XK_W, + XK_X, + XK_Y, + XK_Z, + + // Accented characters and other special characters + + XK_INVERTED_EXCL = 0xA1, // \xA1 + XK_CENT_SIGN = 0xA2, // \xA2 + XK_POUND_SIGN = 0xA3, // \xA3 + XK_YEN_SIGN = 0xA5, // \xA5 + XK_COPYRIGHT_SIGN = 0xA9, // \xA9 + XK_LT_DBL_ANGLE_QUOTE = 0xAB, // << + XK_REGISTERED_SIGN = 0xAE, // \xAE + XK_SUPERSCRIPT_TWO = 0xB2, // \xB2 + XK_SUPERSCRIPT_THREE = 0xB3, // \xB3 + XK_ACUTE_ACCENT = 0xB4, // \xB4 + XK_MICRO_SIGN = 0xB5, // \xB5 + XK_SUPERSCRIPT_ONE = 0xB9, // \xB9 + XK_RT_DBL_ANGLE_QUOTE = 0xBB, // >> + XK_INVERTED_QMARK = 0xBF, // \xBF + XK_CAP_A_GRAVE = 0xC0, // \xC0 + XK_CAP_A_ACUTE = 0xC1, // \xC1 + XK_CAP_A_CIRCUMFLEX = 0xC2, // \xC2 + XK_CAP_A_TILDE = 0xC3, // \xC3 + XK_CAP_A_DIAERESIS = 0xC4, // \xC4 + XK_CAP_A_RING = 0xC5, // \xC5 + XK_CAP_AE = 0xC6, // \xC6 + XK_CAP_C_CEDILLA = 0xC7, // \xC7 + XK_CAP_E_GRAVE = 0xC8, // \xC8 + XK_CAP_E_ACUTE = 0xC9, // \xC9 + XK_CAP_E_CIRCUMFLEX = 0xCA, // \xCA + XK_CAP_E_DIAERESIS = 0xCB, // \xCB + XK_CAP_I_GRAVE = 0xCC, // \xCC + XK_CAP_I_ACUTE = 0xCD, // \xCD + XK_CAP_I_CIRCUMFLEX = 0xCE, // \xCE + XK_CAP_I_DIAERESIS = 0xCF, // \xCF + XK_CAP_N_TILDE = 0xD1, // \xD1 + XK_CAP_O_GRAVE = 0xD2, // \xD2 + XK_CAP_O_ACUTE = 0xD3, // \xD3 + XK_CAP_O_CIRCUMFLEX = 0xD4, // \xD4 + XK_CAP_O_TILDE = 0xD5, // \xD5 + XK_CAP_O_DIAERESIS = 0xD6, // \xD6 + XK_CAP_O_STROKE = 0xD8, // \xD8 + XK_CAP_U_GRAVE = 0xD9, // \xD9 + XK_CAP_U_ACUTE = 0xDA, // \xDA + XK_CAP_U_CIRCUMFLEX = 0xDB, // \xDB + XK_CAP_U_DIAERESIS = 0xDC, // \xDC + XK_CAP_Y_ACUTE = 0xDD, // \xDD + XK_SM_SHARP_S = 0xDF, // \xDF + XK_SM_A_GRAVE = 0xE0, // \xE0 + XK_SM_A_ACUTE = 0xE1, // \xE1 + XK_SM_A_CIRCUMFLEX = 0xE2, // \xE2 + XK_SM_A_TILDE = 0xE3, // \xE3 + XK_SM_A_DIAERESIS = 0xE4, // \xE4 + XK_SM_A_RING = 0xE5, // \xE5 + XK_SM_AE = 0xE6, // \xE6 + XK_SM_C_CEDILLA = 0xE7, // \xE7 + XK_SM_E_GRAVE = 0xE8, // \xE8 + XK_SM_E_ACUTE = 0xE9, // \xE9 + XK_SM_E_CIRCUMFLEX = 0xEA, // \xEA + XK_SM_E_DIAERESIS = 0xEB, // \xEB + XK_SM_I_GRAVE = 0xEC, // \xEC + XK_SM_I_ACUTE = 0xED, // \xED + XK_SM_I_CIRCUMFLEX = 0xEE, // \xEE + XK_SM_I_DIAERESIS = 0xEF, // \xEF + XK_SM_N_TILDE = 0xF1, // \xF1 + XK_SM_O_GRAVE = 0xF2, // \xF2 + XK_SM_O_ACUTE = 0xF3, // \xF3 + XK_SM_O_CIRCUMFLEX = 0xF4, // \xF4 + XK_SM_O_TILDE = 0xF5, // \xF5 + XK_SM_O_DIAERESIS = 0xF6, // \xF6 + XK_SM_O_STROKE = 0xF8, // \xF8 + XK_SM_U_GRAVE = 0xF9, // \xF9 + XK_SM_U_ACUTE = 0xFA, // \xFA + XK_SM_U_CIRCUMFLEX = 0xFB, // \xFB + XK_SM_U_DIAERESIS = 0xFC, // \xFC + XK_SM_Y_ACUTE = 0xFD, // \xFD + XK_SM_Y_DIAERESIS = 0xFF, // \xFF + + // Unicode + XK_CAP_Y_DIAERESIS = 0x0178, // Y umlaut + XK_EURO_SIGN = 0x20AC, // Euro symbol + XK_ARROWLEFT = '<', // left arrow + XK_ARROWRIGHT = '>', // right arrow + + // Special + XK_BACKSPACE = 0x10000, // backspace + XK_DELETE, // delete // !!! + XK_SHIFT, // shift + XK_CAPSLOCK, // caps lock + XK_ALPHABET, // alphabet + XK_SYMBOLS, // symbols + XK_ACCENTS, // accents + XK_OK, // "done" + XK_HIRAGANA, // Hiragana + XK_KATAKANA, // Katakana + XK_ANS, // Alphabet/numeral/symbol + XK_PREWWW, // www. + XK_POSTCOM, // .com + XK_POSTNET, // .net + + + + + }; + + enum KeyboardLanguageType + { + KEYBOARD_ENGLISH, + }; + enum StringID + { + STR_MENU_KEYBOARD_NAME, + STR_MENU_CHOOSE_KEYBOARD, + STR_MENU_ILLUSTRATIVE_GRAPHICS, + STR_MENU_A_SELECT, + STR_MENU_B_BACK, + STR_MENU_Y_HELP, + STR_KEY_SPACE, + STR_KEY_BACKSPACE, + STR_KEY_SHIFT, + STR_KEY_CAPSLOCK, + STR_KEY_ALPHABET, + STR_KEY_SYMBOLS, + STR_KEY_ACCENTS, + STR_KEY_DONE, + STR_HELP_SELECT, + STR_HELP_CANCEL, + STR_HELP_TOGGLE, + STR_HELP_HELP, + STR_HELP_BACKSPACE, + STR_HELP_SPACE, + STR_HELP_TRIGGER, + + STR_MAX, + }; + + + class Key + { + public Xkey xKey; // virtual key code + public int dwWidth = KEY_WIDTH; // width of the key + public string strName = ""; // name of key when vKey >= 0x10000 + public Key(Xkey key) + { + xKey = key; + } + public Key(Xkey key, int iwidth) + { + xKey = key; + dwWidth = iwidth; + + // Special keys get their own names + switch (xKey) + { + case Xkey.XK_SPACE: + strName = "SPACE"; + break; + case Xkey.XK_BACKSPACE: + strName = "BKSP"; + break; + case Xkey.XK_SHIFT: + strName = "SHIFT"; + break; + case Xkey.XK_CAPSLOCK: + strName = "CAPS"; + break; + case Xkey.XK_ALPHABET: + strName = "ALPHABET"; + break; + case Xkey.XK_SYMBOLS: + strName = "SYMB"; + break; + case Xkey.XK_ACCENTS: + strName = "ACCENTS"; + break; + case Xkey.XK_OK: + strName = "DONE"; + break; + case Xkey.XK_PREWWW: + strName = "www."; + break; + case Xkey.XK_POSTCOM: + strName = ".com"; + break; + case Xkey.XK_POSTNET: + strName = ".net"; + break; + } + } + }; + + string m_strData = ""; + bool m_bIsCapsLockOn = false; + bool m_bIsShiftOn = false; + State m_State; + int m_iPos; + KeyboardTypes m_iCurrBoard; + int m_iCurrRow; + int m_iCurrKey; + int m_iLastColumn; + //float m_fRepeatDelay; + CachedTexture.Frame m_pKeyTexture; + float m_fKeyHeight; + int m_dwMaxRows; + bool m_bConfirmed; + GUIFont m_Font18; + GUIFont m_Font12; + GUIFont m_FontButtons; + GUIFont m_FontSearchText; + DateTime m_CaretTimer = DateTime.Now; + bool m_bPrevOverlay = true; + bool _Password = false; + GUIImage image; + + ArrayList m_KeyboardList = new ArrayList(); // list of rows = keyboard + + + #region Base Dialog Variables + bool m_bRunning = false; + int m_dwParentWindowID = 0; + GUIWindow m_pParentWindow = null; + #endregion + + public DialogWebKeyboard() + { + GetID = (int)GUIWindow.Window.WINDOW_VIRTUAL_WEB_KEYBOARD; + m_bIsCapsLockOn = false; + m_bIsShiftOn = false; + m_State = State.STATE_KEYBOARD; + m_iPos = 0; + m_iCurrBoard = KeyboardTypes.TYPE_ALPHABET; + m_iCurrRow = 0; + m_iCurrKey = 0; + m_iLastColumn = 0; + //m_fRepeatDelay = fINITIAL_REPEAT; + m_pKeyTexture = null; + + m_fKeyHeight = 42.0f; + m_dwMaxRows = 5; + m_bConfirmed = false; + m_CaretTimer = DateTime.Now; + + + if (GUIGraphicsContext.DX9Device != null) + InitBoard(); + } + + public override bool Init() + { + return true; + } + + public bool IsConfirmed + { + get { return m_bConfirmed; } + } + + void Initialize() + { + m_Font12 = GUIFontManager.GetFont("font12"); + m_Font18 = GUIFontManager.GetFont("font18"); + m_FontButtons = GUIFontManager.GetFont("dingbats"); + m_FontSearchText = GUIFontManager.GetFont("font14"); + + int iTextureWidth, iTextureHeight; + int iImages = GUITextureManager.Load("keyNF.bmp", 0, 0, 0); + if (iImages == 1) + { + m_pKeyTexture = GUITextureManager.GetTexture("keyNF.bmp", 0, out iTextureWidth, out iTextureHeight); + } + image = new GUIImage(this.GetID, 1, 0, 0, 10, 10, "white.bmp", 1); + image.AllocResources(); + } + + void DeInitialize() + { + image.FreeResources(); + image = null; + } + + public void Reset() + { + _Password = false; + m_bConfirmed = false; + m_bIsCapsLockOn = false; + m_bIsShiftOn = false; + m_State = State.STATE_KEYBOARD; + m_iPos = 0; + m_iCurrBoard = KeyboardTypes.TYPE_ALPHABET; + m_iCurrRow = 0; + m_iCurrKey = 0; + m_iLastColumn = 0; + //m_fRepeatDelay = fINITIAL_REPEAT; + m_fKeyHeight = 42.0f; + m_dwMaxRows = 5; + m_iPos = 0; + m_strData = ""; + m_CaretTimer = DateTime.Now; + + + int y = 411; + int x = 40; + GUIGraphicsContext.ScalePosToScreenResolution(ref x, ref y); + BUTTON_Y_POS = x; // button text line + BUTTON_X_OFFSET = y; // space between button and text + + int width = 42; + GUIGraphicsContext.ScaleHorizontal(ref width); + m_fKeyHeight = width; + + width = (int)(576.0f - 64.0f - 4.0f - 4.0f - 10.0f); + GUIGraphicsContext.ScaleHorizontal(ref width); + fTEXTBOX_WIDTH = width; + + InitBoard(); + } + + public bool Password + { + get { return _Password; } + set { _Password = value; } + } + + protected void PageLoad() + { + m_bPrevOverlay = GUIGraphicsContext.Overlay; + m_bConfirmed = false; + GUIGraphicsContext.Overlay = false; + GUIPropertyManager.SetProperty("#currentmodule", GUILocalizeStrings.Get(100000 + (int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD)); + Log.Info("window:{0} init", this.ToString()); + Initialize(); + } + + protected void PageDestroy() + { + GUIGraphicsContext.Overlay = m_bPrevOverlay; + DeInitialize(); + + Log.Info("window:{0} deinit", this.ToString()); + FreeResources(); + } + + public string Text + { + get { return m_strData; } + set { m_strData = value; } + } + + public void SelectActiveButton(float x, float y) + { + // Draw each row + int y1 = 250, x1 = 64; + GUIGraphicsContext.ScalePosToScreenResolution(ref x1, ref y1); + float fY = y1; + ArrayList keyBoard = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + for (int row = 0; row < m_dwMaxRows; ++row, fY += m_fKeyHeight) + { + float fX = x1; + float fWidthSum = 0.0f; + ArrayList keyRow = (ArrayList)keyBoard[row]; + int dwIndex = 0; + for (int i = 0; i < keyRow.Count; i++) + { + Key key = (Key)keyRow[i]; + int width = key.dwWidth; + GUIGraphicsContext.ScaleHorizontal(ref width); + if (x >= fX + fWidthSum && x <= fX + fWidthSum + key.dwWidth) + { + if (y >= fY && y < fY + m_fKeyHeight) + { + m_iCurrRow = row; + m_iCurrKey = dwIndex; + return; + } + } + fWidthSum += width; + // There's a slightly larger gap between the leftmost keys (mode + // keys) and the main keyboard + if (dwIndex == 0) + { + width = GAP2_WIDTH; + GUIGraphicsContext.ScaleHorizontal(ref width); + fWidthSum += width; + } + else + { + width = GAP_WIDTH; + GUIGraphicsContext.ScaleHorizontal(ref width); + fWidthSum += width; + } + ++dwIndex; + + } + } + + // Default no key found no key highlighted + if (m_iCurrKey != -1) m_iLastColumn = m_iCurrKey; + m_iCurrKey = -1; + } + + 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; + } + + Event ev; + switch (action.wID) + { + case Action.ActionType.ACTION_MOUSE_MOVE: + SelectActiveButton(action.fAmount1, action.fAmount2); + break; + case Action.ActionType.ACTION_MOUSE_CLICK: + ev = Event.EV_A_BUTTON; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_SELECT_ITEM: + if (m_iCurrKey == -1) + { + Close(); + m_bConfirmed = true; + } + ev = Event.EV_A_BUTTON; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_MOVE_DOWN: + ev = Event.EV_DOWN; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_MOVE_UP: + ev = Event.EV_UP; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_MOVE_LEFT: + ev = Event.EV_LEFT; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_MOVE_RIGHT: + ev = Event.EV_RIGHT; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_PREVIOUS_MENU: + ev = Event.EV_BACK_BUTTON; + UpdateState(ev); + break; + + case Action.ActionType.ACTION_KEY_PRESSED: + if (action.m_key != null) + { + if (action.m_key.KeyChar >= 32) + Press((char)action.m_key.KeyChar); + if (action.m_key.KeyChar == 8) + { + Press(Xkey.XK_BACKSPACE); + } + } + break; + } + } + void Close() + { + m_bRunning = false; + } + + public void DoModal(int dwParentId) + { + + m_dwParentWindowID = dwParentId; + m_pParentWindow = GUIWindowManager.GetWindow(m_dwParentWindowID); + if (null == m_pParentWindow) + { + m_dwParentWindowID = 0; + return; + } + GUIWindowManager.IsSwitchingToNewWindow = true; + + GUIWindowManager.RouteToWindow(GetID); + + GUILayerManager.RegisterLayer(this, GUILayerManager.LayerType.Dialog); + // active this window... (with its own OnPageLoad) + PageLoad(); + + GUIWindowManager.IsSwitchingToNewWindow = false; + m_bRunning = true; + m_iPos = m_strData.Length; + while (m_bRunning && GUIGraphicsContext.CurrentState == GUIGraphicsContext.State.RUNNING) + { + GUIWindowManager.Process(); + } + + GUIWindowManager.IsSwitchingToNewWindow = true; + lock (this) + { + // deactive this window... (with its own OnPageDestroy) + PageDestroy(); + + GUIWindowManager.UnRoute(); + m_pParentWindow = null; + } + GUIWindowManager.IsSwitchingToNewWindow = false; + GUILayerManager.UnRegisterLayer(this); + } + + public override void Render(float timePassed) + { + + lock (this) + { + + RenderKeyboardLatin(timePassed); + } + } + + void InitBoard() + { + // Restore keyboard to default state + m_iCurrRow = 0; + m_iCurrKey = 0; + m_iLastColumn = 1; + m_iCurrBoard = KeyboardTypes.TYPE_ALPHABET; + m_bIsCapsLockOn = false; + m_bIsShiftOn = false; + m_strData = ""; + m_iPos = 0; + int height = 42; + GUIGraphicsContext.ScaleVertical(ref height); + m_fKeyHeight = height; + m_dwMaxRows = 5; + + // Destroy old keyboard + m_KeyboardList.Clear(); + + + //------------------------------------------------------------------------- + // Alpha keyboard + //------------------------------------------------------------------------- + + ArrayList keyBoard = new ArrayList(); + + // First row is Done, 1-0 + ArrayList keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_OK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_PERIOD)); + keyRow.Add(new Key(Xkey.XK_FSLASH)); + keyRow.Add(new Key(Xkey.XK_AT)); + keyRow.Add(new Key(Xkey.XK_1)); + keyRow.Add(new Key(Xkey.XK_2)); + keyRow.Add(new Key(Xkey.XK_3)); + keyRow.Add(new Key(Xkey.XK_4)); + keyRow.Add(new Key(Xkey.XK_5)); + keyRow.Add(new Key(Xkey.XK_6)); + keyRow.Add(new Key(Xkey.XK_7)); + keyRow.Add(new Key(Xkey.XK_8)); + keyRow.Add(new Key(Xkey.XK_9)); + keyRow.Add(new Key(Xkey.XK_0)); + keyBoard.Add(keyRow); + + // Second row is Shift, A-J + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_SHIFT, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_PREWWW, (KEY_WIDTH * 3) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_A)); + keyRow.Add(new Key(Xkey.XK_B)); + keyRow.Add(new Key(Xkey.XK_C)); + keyRow.Add(new Key(Xkey.XK_D)); + keyRow.Add(new Key(Xkey.XK_E)); + keyRow.Add(new Key(Xkey.XK_F)); + keyRow.Add(new Key(Xkey.XK_G)); + keyRow.Add(new Key(Xkey.XK_H)); + keyRow.Add(new Key(Xkey.XK_I)); + keyRow.Add(new Key(Xkey.XK_J)); + keyBoard.Add(keyRow); + + // Third row is Caps Lock, K-T + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_CAPSLOCK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_POSTCOM, (KEY_WIDTH * 3) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_K)); + keyRow.Add(new Key(Xkey.XK_L)); + keyRow.Add(new Key(Xkey.XK_M)); + keyRow.Add(new Key(Xkey.XK_N)); + keyRow.Add(new Key(Xkey.XK_O)); + keyRow.Add(new Key(Xkey.XK_P)); + keyRow.Add(new Key(Xkey.XK_Q)); + keyRow.Add(new Key(Xkey.XK_R)); + keyRow.Add(new Key(Xkey.XK_S)); + keyRow.Add(new Key(Xkey.XK_T)); + keyBoard.Add(keyRow); + + // Fourth row is Symbols, U-Z, Backspace + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_SYMBOLS, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_POSTNET, (KEY_WIDTH * 3) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_U)); + keyRow.Add(new Key(Xkey.XK_V)); + keyRow.Add(new Key(Xkey.XK_W)); + keyRow.Add(new Key(Xkey.XK_X)); + keyRow.Add(new Key(Xkey.XK_Y)); + keyRow.Add(new Key(Xkey.XK_Z)); + keyRow.Add(new Key(Xkey.XK_BACKSPACE, (KEY_WIDTH * 4) + (GAP_WIDTH * 3))); + keyBoard.Add(keyRow); + + // Fifth row is Accents, Space, Left, Right + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_ACCENTS, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_SPACE, (KEY_WIDTH * 7) + (GAP_WIDTH * 5))); + keyRow.Add(new Key(Xkey.XK_ARROWLEFT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_ARROWRIGHT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyBoard.Add(keyRow); + + // Add the alpha keyboard to the list + m_KeyboardList.Add(keyBoard); + + //------------------------------------------------------------------------- + // Symbol keyboard + //------------------------------------------------------------------------- + + keyBoard = new ArrayList(); + + // First row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_OK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_LPAREN)); + keyRow.Add(new Key(Xkey.XK_RPAREN)); + keyRow.Add(new Key(Xkey.XK_AMPER)); + keyRow.Add(new Key(Xkey.XK_UNDERS)); + keyRow.Add(new Key(Xkey.XK_CARET)); + keyRow.Add(new Key(Xkey.XK_PERCENT)); + keyRow.Add(new Key(Xkey.XK_BSLASH)); + keyRow.Add(new Key(Xkey.XK_FSLASH)); + keyRow.Add(new Key(Xkey.XK_AT)); + keyRow.Add(new Key(Xkey.XK_NSIGN)); + keyBoard.Add(keyRow); + + // Second row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_SHIFT, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_LBRACK)); + keyRow.Add(new Key(Xkey.XK_RBRACK)); + keyRow.Add(new Key(Xkey.XK_DOLLAR)); + keyRow.Add(new Key(Xkey.XK_POUND_SIGN)); + keyRow.Add(new Key(Xkey.XK_YEN_SIGN)); + keyRow.Add(new Key(Xkey.XK_EURO_SIGN)); + keyRow.Add(new Key(Xkey.XK_SEMI)); + keyRow.Add(new Key(Xkey.XK_COLON)); + keyRow.Add(new Key(Xkey.XK_QUOTE)); + keyRow.Add(new Key(Xkey.XK_DQUOTE)); + keyBoard.Add(keyRow); + + // Third row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_CAPSLOCK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_LT)); + keyRow.Add(new Key(Xkey.XK_GT)); + keyRow.Add(new Key(Xkey.XK_QMARK)); + keyRow.Add(new Key(Xkey.XK_EXCL)); + keyRow.Add(new Key(Xkey.XK_INVERTED_QMARK)); + keyRow.Add(new Key(Xkey.XK_INVERTED_EXCL)); + keyRow.Add(new Key(Xkey.XK_DASH)); + keyRow.Add(new Key(Xkey.XK_STAR)); + keyRow.Add(new Key(Xkey.XK_PLUS)); + keyRow.Add(new Key(Xkey.XK_EQUAL)); + keyBoard.Add(keyRow); + + // Fourth row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_ALPHABET, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_LBRACE)); + keyRow.Add(new Key(Xkey.XK_RBRACE)); + keyRow.Add(new Key(Xkey.XK_LT_DBL_ANGLE_QUOTE)); + keyRow.Add(new Key(Xkey.XK_RT_DBL_ANGLE_QUOTE)); + keyRow.Add(new Key(Xkey.XK_COMMA)); + keyRow.Add(new Key(Xkey.XK_PERIOD)); + keyRow.Add(new Key(Xkey.XK_BACKSPACE, (KEY_WIDTH * 4) + (GAP_WIDTH * 3))); + keyBoard.Add(keyRow); + + // Fifth row is Accents, Space, Left, Right + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_ACCENTS, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_SPACE, (KEY_WIDTH * 6) + (GAP_WIDTH * 5))); + keyRow.Add(new Key(Xkey.XK_ARROWLEFT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_ARROWRIGHT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyBoard.Add(keyRow); + + // Add the symbol keyboard to the list + m_KeyboardList.Add(keyBoard); + + //------------------------------------------------------------------------- + // Accents keyboard + //------------------------------------------------------------------------- + + keyBoard = new ArrayList(); + + // First row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_OK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_1)); + keyRow.Add(new Key(Xkey.XK_2)); + keyRow.Add(new Key(Xkey.XK_3)); + keyRow.Add(new Key(Xkey.XK_4)); + keyRow.Add(new Key(Xkey.XK_5)); + keyRow.Add(new Key(Xkey.XK_6)); + keyRow.Add(new Key(Xkey.XK_7)); + keyRow.Add(new Key(Xkey.XK_8)); + keyRow.Add(new Key(Xkey.XK_9)); + keyRow.Add(new Key(Xkey.XK_0)); + keyBoard.Add(keyRow); + + // Second row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_SHIFT, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_CAP_A_GRAVE)); + keyRow.Add(new Key(Xkey.XK_CAP_A_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_A_CIRCUMFLEX)); + keyRow.Add(new Key(Xkey.XK_CAP_A_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_CAP_C_CEDILLA)); + keyRow.Add(new Key(Xkey.XK_CAP_E_GRAVE)); + keyRow.Add(new Key(Xkey.XK_CAP_E_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_E_CIRCUMFLEX)); + keyRow.Add(new Key(Xkey.XK_CAP_E_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_CAP_I_GRAVE)); + keyBoard.Add(keyRow); + + // Third row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_CAPSLOCK, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_CAP_I_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_I_CIRCUMFLEX)); + keyRow.Add(new Key(Xkey.XK_CAP_I_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_CAP_N_TILDE)); + keyRow.Add(new Key(Xkey.XK_CAP_O_GRAVE)); + keyRow.Add(new Key(Xkey.XK_CAP_O_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_O_CIRCUMFLEX)); + keyRow.Add(new Key(Xkey.XK_CAP_O_TILDE)); + keyRow.Add(new Key(Xkey.XK_CAP_O_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_SM_SHARP_S)); + keyBoard.Add(keyRow); + + // Fourth row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_ALPHABET, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_CAP_U_GRAVE)); + keyRow.Add(new Key(Xkey.XK_CAP_U_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_U_CIRCUMFLEX)); + keyRow.Add(new Key(Xkey.XK_CAP_U_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_CAP_Y_ACUTE)); + keyRow.Add(new Key(Xkey.XK_CAP_Y_DIAERESIS)); + keyRow.Add(new Key(Xkey.XK_BACKSPACE, (KEY_WIDTH * 4) + (GAP_WIDTH * 3))); + keyBoard.Add(keyRow); + + // Fifth row + keyRow = new ArrayList(); + keyRow.Add(new Key(Xkey.XK_ACCENTS, MODEKEY_WIDTH)); + keyRow.Add(new Key(Xkey.XK_SPACE, (KEY_WIDTH * 6) + (GAP_WIDTH * 5))); + keyRow.Add(new Key(Xkey.XK_ARROWLEFT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyRow.Add(new Key(Xkey.XK_ARROWRIGHT, (KEY_WIDTH * 2) + (GAP_WIDTH * 1))); + keyBoard.Add(keyRow); + + // Add the accents keyboard to the list + m_KeyboardList.Add(keyBoard); + + } + + void UpdateState(Event ev) + { + switch (m_State) + { + case State.STATE_KEYBOARD: + switch (ev) + { + case Event.EV_A_BUTTON: // Select current key + case Event.EV_START_BUTTON: + PressCurrent(); + break; + + case Event.EV_B_BUTTON: // Shift mode + case Event.EV_BACK_BUTTON: // Back + m_State = State.STATE_BACK; + Close(); //Added by JM to close automatically + break; + + case Event.EV_X_BUTTON: // Toggle keyboard + Press(m_iCurrBoard == KeyboardTypes.TYPE_SYMBOLS ? Xkey.XK_ALPHABET : Xkey.XK_SYMBOLS); + /*if( m_iKeyboard == KEYBOARD_ENGLISH ) + { + Press( m_iCurrBoard == KeyboardTypes.TYPE_SYMBOLS ?Xkey.XK_ALPHABET : Xkey.XK_SYMBOLS ); + } + else + { + switch( m_iCurrBoard ) + { + case KeyboardTypes.TYPE_ALPHABET: Press( Xkey.XK_SYMBOLS ); break; + case KeyboardTypes.TYPE_SYMBOLS: Press( Xkey.XK_ACCENTS ); break; + case KeyboardTypes.TYPE_ACCENTS: Press( Xkey.XK_ALPHABET ); break; + } + }*/ + break; + case Event.EV_WHITE_BUTTON: // Backspace + Press(Xkey.XK_BACKSPACE); + break; + case Event.EV_BLACK_BUTTON: // Space + Press(Xkey.XK_SPACE); + break; + case Event.EV_LEFT_BUTTON: // Left + Press(Xkey.XK_ARROWLEFT); + break; + case Event.EV_RIGHT_BUTTON: // Right + Press(Xkey.XK_ARROWRIGHT); + break; + + // Navigation + case Event.EV_UP: MoveUp(); break; + case Event.EV_DOWN: MoveDown(); break; + case Event.EV_LEFT: MoveLeft(); break; + case Event.EV_RIGHT: MoveRight(); break; + } + break; + default: + Close(); + break; + } + } + + void ChangeKey(int iBoard, int iRow, int iKey, Key newkey) + { + ArrayList board = (ArrayList)m_KeyboardList[iBoard]; + ArrayList row = (ArrayList)board[iRow]; + row[iKey] = newkey; + } + + void PressCurrent() + { + if (m_iCurrKey == -1) return; + + ArrayList board = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + ArrayList row = (ArrayList)board[m_iCurrRow]; + Key key = (Key)row[m_iCurrKey]; + + // Press it + Press(key.xKey); + } + + void Press(char k) + { + // Don't add more than the maximum characters, and don't allow + // text to exceed the width of the text entry field + if (m_strData.Length < MAX_CHARS) + { + float fWidth = 0, fHeight = 0; + m_Font18.GetTextExtent(m_strData, ref fWidth, ref fHeight); + + if (fWidth < fTEXTBOX_WIDTH) + { + if (m_iPos >= m_strData.Length) + m_strData += k.ToString(); + else + m_strData = m_strData.Insert(m_iPos, k.ToString()); + ++m_iPos; // move the caret + } + } + + // Unstick the shift key + m_bIsShiftOn = false; + } + + void Press(Xkey xk) + { + if (xk == Xkey.XK_NULL) // happens in Japanese keyboard (keyboard type) + xk = Xkey.XK_SPACE; + + // If the key represents a character, add it to the word + if (((uint)xk) < 0x10000 && xk != Xkey.XK_ARROWLEFT && xk != Xkey.XK_ARROWRIGHT) + { + // Don't add more than the maximum characters, and don't allow + // text to exceed the width of the text entry field + if (m_strData.Length < MAX_CHARS) + { + float fWidth = 0, fHeight = 0; + m_Font18.GetTextExtent(m_strData, ref fWidth, ref fHeight); + + if (fWidth < fTEXTBOX_WIDTH) + { + if (m_iPos >= m_strData.Length) + m_strData += GetChar(xk).ToString(); + else + m_strData = m_strData.Insert(m_iPos, GetChar(xk).ToString()); + ++m_iPos; // move the caret + } + } + + // Unstick the shift key + m_bIsShiftOn = false; + } + + // Special cases + else switch (xk) + { + case Xkey.XK_BACKSPACE: + if (m_iPos > 0) + { + --m_iPos; // move the caret + m_strData = m_strData.Remove(m_iPos, 1); + } + break; + case Xkey.XK_DELETE: // Used for Japanese only + if (m_strData.Length > 0) + m_strData = m_strData.Remove(m_iPos, 1); + break; + case Xkey.XK_SHIFT: + m_bIsShiftOn = !m_bIsShiftOn; + break; + case Xkey.XK_CAPSLOCK: + m_bIsCapsLockOn = !m_bIsCapsLockOn; + break; + case Xkey.XK_ALPHABET: + m_iCurrBoard = KeyboardTypes.TYPE_ALPHABET; + + // Adjust mode keys + ChangeKey((int)m_iCurrBoard, 3, 0, new Key(Xkey.XK_SYMBOLS, MODEKEY_WIDTH)); + ChangeKey((int)m_iCurrBoard, 4, 0, new Key(Xkey.XK_ACCENTS, MODEKEY_WIDTH)); + + break; + case Xkey.XK_SYMBOLS: + m_iCurrBoard = KeyboardTypes.TYPE_SYMBOLS; + + // Adjust mode keys + ChangeKey((int)m_iCurrBoard, 3, 0, new Key(Xkey.XK_ALPHABET, MODEKEY_WIDTH)); + ChangeKey((int)m_iCurrBoard, 4, 0, new Key(Xkey.XK_ACCENTS, MODEKEY_WIDTH)); + + break; + case Xkey.XK_ACCENTS: + m_iCurrBoard = KeyboardTypes.TYPE_ACCENTS; + + // Adjust mode keys + ChangeKey((int)m_iCurrBoard, 3, 0, new Key(Xkey.XK_ALPHABET, MODEKEY_WIDTH)); + ChangeKey((int)m_iCurrBoard, 4, 0, new Key(Xkey.XK_SYMBOLS, MODEKEY_WIDTH)); + break; + case Xkey.XK_ARROWLEFT: + if (m_iPos > 0) + --m_iPos; + break; + case Xkey.XK_ARROWRIGHT: + if (m_iPos < m_strData.Length) + ++m_iPos; + break; + case Xkey.XK_OK: + Close(); + m_bConfirmed = true; + break; + case Xkey.XK_PREWWW: + m_strData = m_strData.Insert(m_iPos, "www."); + m_iPos = m_iPos + 4; + break; + case Xkey.XK_POSTCOM: + m_strData = m_strData.Insert(m_iPos, ".com"); + m_iPos = m_iPos + 4; + break; + case Xkey.XK_POSTNET: + m_strData = m_strData.Insert(m_iPos, ".net"); + m_iPos = m_iPos + 4; + break; + } + } + + void MoveUp() + { + if (m_iCurrKey == -1) m_iCurrKey = m_iLastColumn; + + do + { + // Update key index for special cases + switch (m_iCurrRow) + { + case 0: + if (1 < m_iCurrKey && m_iCurrKey < 7) // 2 - 6 + { + m_iLastColumn = m_iCurrKey; // remember column + m_iCurrKey = 1; // move to spacebar + } + else if (6 < m_iCurrKey && m_iCurrKey < 9) // 7 - 8 + { + m_iLastColumn = m_iCurrKey; // remember column + m_iCurrKey = 2; // move to left arrow + } + else if (m_iCurrKey > 8) // 9 - 0 + { + m_iLastColumn = m_iCurrKey; // remember column + m_iCurrKey = 3; // move to right arrow + } + break; + case 3: + if (m_iCurrKey == 7) // backspace + m_iCurrKey = Math.Max(7, m_iLastColumn); // restore column + break; + case 4: + if (m_iCurrKey == 1) // spacebar + m_iCurrKey = Math.Min(6, m_iLastColumn); // restore column + else if (m_iCurrKey > 1) // left and right + m_iCurrKey = 7; // backspace + break; + } + + // Update row + m_iCurrRow = (m_iCurrRow == 0) ? m_dwMaxRows - 1 : m_iCurrRow - 1; + + } while (IsKeyDisabled()); + } + + void MoveDown() + { + if (m_iCurrKey == -1) m_iCurrKey = m_iLastColumn; + + do + { + // Update key index for special cases + switch (m_iCurrRow) + { + case 2: + if (m_iCurrKey > 7) // q - t + { + m_iLastColumn = m_iCurrKey; // remember column + m_iCurrKey = 7; // move to backspace + } + break; + case 3: + if (0 < m_iCurrKey && m_iCurrKey < 7) // u - z + { + m_iLastColumn = m_iCurrKey; // remember column + m_iCurrKey = 1; // move to spacebar + } + else if (m_iCurrKey > 6) // backspace + { + if (m_iLastColumn > 8) + m_iCurrKey = 3; // move to right arrow + else + m_iCurrKey = 2; // move to left arrow + } + break; + case 4: + switch (m_iCurrKey) + { + case 1: // spacebar + m_iCurrKey = Math.Min(6, m_iLastColumn); + break; + case 2: // left arrow + m_iCurrKey = Math.Max(Math.Min(8, m_iLastColumn), 7); + break; + case 3: // right arrow + m_iCurrKey = Math.Max(9, m_iLastColumn); + break; + } + break; + } + + // Update row + m_iCurrRow = (m_iCurrRow == m_dwMaxRows - 1) ? 0 : m_iCurrRow + 1; + + } while (IsKeyDisabled()); + } + + void MoveLeft() + { + if (m_iCurrKey == -1) m_iCurrKey = m_iLastColumn; + do + { + if (m_iCurrKey <= 0) + { + ArrayList board = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + ArrayList row = (ArrayList)board[m_iCurrRow]; + m_iCurrKey = row.Count - 1; + + } + else + --m_iCurrKey; + + } while (IsKeyDisabled()); + + SetLastColumn(); + } + + void MoveRight() + { + if (m_iCurrKey == -1) m_iCurrKey = m_iLastColumn; + do + { + ArrayList board = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + ArrayList row = (ArrayList)board[m_iCurrRow]; + + if (m_iCurrKey == row.Count - 1) + m_iCurrKey = 0; + else + ++m_iCurrKey; + + } while (IsKeyDisabled()); + + SetLastColumn(); + } + + void SetLastColumn() + { + if (m_iCurrKey == -1) return; + // If the new key is a single character, remember it for later + ArrayList board = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + ArrayList row = (ArrayList)board[m_iCurrRow]; + Key key = (Key)row[m_iCurrKey]; + if (key.strName == "") + { + switch (key.xKey) + { + // Adjust the last column for the arrow keys to confine it + // within the range of the key width + case Xkey.XK_ARROWLEFT: + m_iLastColumn = (m_iLastColumn <= 7) ? 7 : 8; break; + case Xkey.XK_ARROWRIGHT: + m_iLastColumn = (m_iLastColumn <= 9) ? 9 : 10; break; + + // Single char, non-arrow + default: + m_iLastColumn = m_iCurrKey; break; + } + } + } + + bool IsKeyDisabled() + { + if (m_iCurrKey == -1) return true; + + ArrayList board = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + ArrayList row = (ArrayList)board[m_iCurrRow]; + Key key = (Key)row[m_iCurrKey]; + + // On the symbols keyboard, Shift and Caps Lock are disabled + if (m_iCurrBoard == KeyboardTypes.TYPE_SYMBOLS) + { + if (key.xKey == Xkey.XK_SHIFT || key.xKey == Xkey.XK_CAPSLOCK) + return true; + } + + // On the English keyboard, the Accents key is disabled + //if( m_iKeyboard == KeyboardLanguageType.KEYBOARD_ENGLISH ) + { + if (key.xKey == Xkey.XK_ACCENTS) + return true; + } + + return false; + } + + char GetChar(Xkey xk) + { + // Handle case conversion + char wc = (char)(((uint)xk) & 0xffff); + + if ((m_bIsCapsLockOn && !m_bIsShiftOn) || (!m_bIsCapsLockOn && m_bIsShiftOn)) + wc = Char.ToUpper(wc); + else + wc = Char.ToLower(wc); + + return wc; + } + + void RenderKey(float fX, float fY, Key key, long KeyColor, long TextColor) + { + if (KeyColor == COLOR_INVISIBLE || key.xKey == Xkey.XK_NULL) return; + + + string strKey = GetChar(key.xKey).ToString(); + string strName = (key.strName.Length == 0) ? strKey : key.strName; + + int width = key.dwWidth - KEY_INSET + 2; + int height = (int)(KEY_INSET + 2); + GUIGraphicsContext.ScaleHorizontal(ref width); + GUIGraphicsContext.ScaleVertical(ref height); + + float x = fX + KEY_INSET; + float y = fY + KEY_INSET; + float z = fX + width;//z + float w = fY + m_fKeyHeight - height;//w + + float nw = width; + float nh = m_fKeyHeight - height; + + float uoffs = 0; + float v = 1.0f; + float u = 1.0f; + + m_pKeyTexture.Draw(x, y, nw, nh, uoffs, 0.0f, u, v, (int)KeyColor); + /* + VertexBuffer m_vbBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColoredTextured), + 4, GUIGraphicsContext.DX9Device, + 0, CustomVertex.TransformedColoredTextured.Format, + Pool.Managed); + + CustomVertex.TransformedColoredTextured[] verts = (CustomVertex.TransformedColoredTextured[])m_vbBuffer.Lock(0,0); + verts[0].X=x- 0.5f; verts[0].Y=y+nh- 0.5f;verts[0].Z= 0.0f;verts[0].Rhw=1.0f ; + verts[0].Color = (int)KeyColor; + verts[0].Tu = uoffs; + verts[0].Tv = v; + + verts[1].X= x- 0.5f; verts[1].Y=y- 0.5f;verts[1].Z= 0.0f; verts[1].Rhw=1.0f ; + verts[1].Color = (int)KeyColor; + verts[1].Tu = uoffs; + verts[1].Tv = 0.0f; + + verts[2].X= x+nw- 0.5f; verts[2].Y=y+nh- 0.5f;verts[2].Z= 0.0f;verts[2].Rhw=1.0f; + verts[2].Color = (int)KeyColor; + verts[2].Tu = uoffs+u; + verts[2].Tv = v; + + verts[3].X= x+nw- 0.5f;verts[3].Y= y- 0.5f;verts[3].Z= 0.0f;verts[3].Rhw= 1.0f ; + verts[3].Color = (int)KeyColor; + verts[3].Tu = uoffs+u; + verts[3].Tv = 0.0f; + + + m_vbBuffer.Unlock(); + + GUIGraphicsContext.DX9Device.SetTexture( 0, m_pKeyTexture); + + // Render the image + GUIGraphicsContext.DX9Device.SetStreamSource( 0, m_vbBuffer, 0); + GUIGraphicsContext.DX9Device.VertexFormat = CustomVertex.TransformedColoredTextured.Format; + GUIGraphicsContext.DX9Device.DrawPrimitives( PrimitiveType.TriangleStrip, 0, 2 ); + + + // unset the texture and palette or the texture caching crashes because the runtime still has a reference + GUIGraphicsContext.DX9Device.SetTexture( 0, null); + m_vbBuffer.Dispose(); + */ + // Draw the key text. If key name is, use a slightly smaller font. + float fW = 0; + float fH = 0; + float fposX = (x + z) / 2.0f; + float fposY = (y + w) / 2.0f; + fposX -= GUIGraphicsContext.OffsetX; + fposY -= GUIGraphicsContext.OffsetY; + if (key.strName.Length > 1 && Char.IsUpper(key.strName[1])) + { + m_Font12.GetTextExtent(strName, ref fW, ref fH); + fposX -= (fW / 2); + fposY -= (fH / 2); + m_Font12.DrawText(fposX, fposY, TextColor, strName, GUIControl.Alignment.ALIGN_LEFT, -1); + } + else + { + m_Font18.GetTextExtent(strName, ref fW, ref fH); + fposX -= (fW / 2); + fposY -= (fH / 2); + m_Font18.DrawText(fposX, fposY, TextColor, strName, GUIControl.Alignment.ALIGN_LEFT, -1); + } + } + + void DrawTextBox(float timePassed, int x1, int y1, int x2, int y2) + { + //long lColor=0xaaffffff; + + GUIGraphicsContext.ScalePosToScreenResolution(ref x1, ref y1); + GUIGraphicsContext.ScalePosToScreenResolution(ref x2, ref y2); + x1 += GUIGraphicsContext.OffsetX; + x2 += GUIGraphicsContext.OffsetX; + y1 += GUIGraphicsContext.OffsetY; + y2 += GUIGraphicsContext.OffsetY; + /* + Rectangle[] rect = new Rectangle[1]; + rect[0].X=x1; + rect[0].Y=y1; + rect[0].Width=x2-x1; + rect[0].Height=y2-y1; + GUIGraphicsContext.DX9Device.Clear( ClearFlags.Target|ClearFlags.Target, (int)lColor, 1.0f, 0, rect ); + */ + //image.ColourDiffuse=lColor; + image.SetPosition(x1, y1); + image.Width = (x2 - x1); + image.Height = (y2 - y1); + image.Render(timePassed); + + } + + void DrawText(int x, int y) + { + GUIGraphicsContext.ScalePosToScreenResolution(ref x, ref y); + x += GUIGraphicsContext.OffsetX; + y += GUIGraphicsContext.OffsetY; + string strTxt = m_strData; + if (_Password) + { + strTxt = ""; + for (int i = 0; i < m_strData.Length; ++i) strTxt += "*"; + } + + m_FontSearchText.DrawText((float)x, (float)y, COLOR_SEARCHTEXT, strTxt, GUIControl.Alignment.ALIGN_LEFT, -1); + + + // Draw blinking caret using line primitives. + TimeSpan ts = DateTime.Now - m_CaretTimer; + if ((ts.TotalSeconds % fCARET_BLINK_RATE) < fCARET_ON_RATIO) + { + string strLine = strTxt.Substring(0, m_iPos); + + float fCaretWidth = 0.0f; + float fCaretHeight = 0.0f; + m_FontSearchText.GetTextExtent(strLine, ref fCaretWidth, ref fCaretHeight); + x += (int)fCaretWidth; + m_FontSearchText.DrawText((float)x, (float)y, 0xff202020, "|", GUIControl.Alignment.ALIGN_LEFT, -1); + + } + } + + void RenderKeyboardLatin(float timePassed) + { + // Show text and caret + DrawTextBox(timePassed, 64, 208, 576, 248); + DrawText(68, 208); + + + int x1 = 64; + int y1 = 250; + GUIGraphicsContext.ScalePosToScreenResolution(ref x1, ref y1); + x1 += GUIGraphicsContext.OffsetX; + y1 += GUIGraphicsContext.OffsetY; + // Draw each row + float fY = y1; + ArrayList keyBoard = (ArrayList)m_KeyboardList[(int)m_iCurrBoard]; + for (int row = 0; row < m_dwMaxRows; ++row, fY += m_fKeyHeight) + { + float fX = x1; + float fWidthSum = 0.0f; + ArrayList keyRow = (ArrayList)keyBoard[row]; + int dwIndex = 0; + for (int i = 0; i < keyRow.Count; i++) + { + // Determine key name + Key key = (Key)keyRow[i]; + long selKeyColor = 0xffffffff; + long selTextColor = COLOR_NORMAL; + + // Handle special key coloring + switch (key.xKey) + { + case Xkey.XK_SHIFT: + switch (m_iCurrBoard) + { + case KeyboardTypes.TYPE_ALPHABET: + case KeyboardTypes.TYPE_ACCENTS: + if (m_bIsShiftOn) + selKeyColor = COLOR_PRESSED; + break; + case KeyboardTypes.TYPE_SYMBOLS: + selKeyColor = COLOR_DISABLED; + selTextColor = COLOR_FONT_DISABLED; + break; + } + break; + case Xkey.XK_CAPSLOCK: + switch (m_iCurrBoard) + { + case KeyboardTypes.TYPE_ALPHABET: + case KeyboardTypes.TYPE_ACCENTS: + if (m_bIsCapsLockOn) + selKeyColor = COLOR_PRESSED; + break; + case KeyboardTypes.TYPE_SYMBOLS: + selKeyColor = COLOR_DISABLED; + selTextColor = COLOR_FONT_DISABLED; + break; + } + break; + case Xkey.XK_ACCENTS: + selKeyColor = COLOR_INVISIBLE; + selTextColor = COLOR_INVISIBLE; + break; + } + + // Highlight the current key + if (row == m_iCurrRow && dwIndex == m_iCurrKey) + selKeyColor = COLOR_HIGHLIGHT; + + RenderKey(fX + fWidthSum, fY, key, selKeyColor, selTextColor); + + int width = key.dwWidth; + GUIGraphicsContext.ScaleHorizontal(ref width); + fWidthSum += width; + + // There's a slightly larger gap between the leftmost keys (mode + // keys) and the main keyboard + if (dwIndex == 0) + width = GAP2_WIDTH; + else + width = GAP_WIDTH; + GUIGraphicsContext.ScaleHorizontal(ref width); + fWidthSum += width; + + ++dwIndex; + } + } + } + + #region IRenderLayer + public bool ShouldRenderLayer() + { + return true; + } + + public void RenderLayer(float timePassed) + { + Render(timePassed); + } + #endregion + + } +} + Added: trunk/plugins/WebBrowserIE/Sources/GUIFavorites.cs =================================================================== --- trunk/plugins/WebBrowserIE/Sources/GUIFavorites.cs (rev 0) +++ trunk/plugins/WebBrowserIE/Sources/GUIFavorites.cs 2007-06-12 16:40:14 UTC (rev 520) @@ -0,0 +1,226 @@ +#region Copyright (C) 2005-2007 Team MediaPortal + +/* + * Copyright (C) 2005-2007 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 MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Dialogs; + +namespace MediaPortal.GUI.WebBrowser +{ + /// <summary> + /// A web browser plugin for mediaportal + /// </summary> + public class GUIFavorites : GUIWindow + { + public const int WINDOW_FAVORITES = 5501; + + DirectoryHistory m_history = new DirectoryHistory(); + string currentFolder = String.Empty; + [SkinControlAttribute(50)] protected GUIFacadeControl facadeView=null; + + #region Constructor + public GUIFavorites() + { + GetID = WINDOW_FAVORITES; + } + #endregion + + #region Private Enumerations + /// <summary> + /// Gui Widgets + ... [truncated message content] |
From: <an...@us...> - 2007-06-16 12:18:15
|
Revision: 558 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=558&view=rev Author: and-81 Date: 2007-06-16 05:18:13 -0700 (Sat, 16 Jun 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/PopupMessage.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/MPUtils/ExternalChannelConfig.cs trunk/plugins/IR Server Suite/Common/MPUtils/Forms/GoToScreen.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPCommands.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/AssemblyInfo.cs trunk/plugins/MCEReplacement/MCEReplacement.cs trunk/plugins/MCEReplacement/MCEReplacement.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.resx Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -217,6 +217,12 @@ _notifyIcon.Visible = false; + if (_mode == IRServerMode.ServerMode) + { + PipeMessage message = new PipeMessage(Common.ServerPipeName, Environment.MachineName, "Server Shutdown", null); + SendToAll(message); + } + if (_pluginReceive != null && _pluginReceive.CanReceive) _pluginReceive.RemoteButtonCallback -= new RemoteButtonHandler(RemoteButtonPressed); @@ -949,12 +955,6 @@ { IrssLog.Info("Shutdown command received"); - if (_mode == IRServerMode.ServerMode) - { - PipeMessage response = new PipeMessage(Common.ServerPipeName, Environment.MachineName, "Server Shutdown", null); - SendToAll(response); - } - Stop(); Application.Exit(); break; @@ -1084,12 +1084,6 @@ IrssLog.Info("Quit"); - if (_mode == IRServerMode.ServerMode) - { - PipeMessage message = new PipeMessage(Common.ServerPipeName, Environment.MachineName, "Server Shutdown", null); - SendToAll(message); - } - Stop(); Application.Exit(); } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.Designer.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -79,16 +79,20 @@ this.textBoxSerialCommand = new System.Windows.Forms.TextBox(); this.labelSerialCommand = new System.Windows.Forms.Label(); this.tabPageMessage = new System.Windows.Forms.TabPage(); - this.checkBoxMsgCurrApp = new System.Windows.Forms.CheckBox(); - this.labelMsgApp = new System.Windows.Forms.Label(); - this.buttonFindMsgApp = new System.Windows.Forms.Button(); - this.textBoxMsgApp = new System.Windows.Forms.TextBox(); + this.groupBoxMessageDetails = new System.Windows.Forms.GroupBox(); + this.labelMessage = new System.Windows.Forms.Label(); + this.numericUpDownMsg = new System.Windows.Forms.NumericUpDown(); this.numericUpDownLParam = new System.Windows.Forms.NumericUpDown(); this.numericUpDownWParam = new System.Windows.Forms.NumericUpDown(); - this.numericUpDownMsg = new System.Windows.Forms.NumericUpDown(); this.labelLParam = new System.Windows.Forms.Label(); this.labelWParam = new System.Windows.Forms.Label(); - this.labelMessage = new System.Windows.Forms.Label(); + this.groupBoxMessageTarget = new System.Windows.Forms.GroupBox(); + this.radioButtonActiveWindow = new System.Windows.Forms.RadioButton(); + this.textBoxMsgTarget = new System.Windows.Forms.TextBox(); + this.buttonFindMsgTarget = new System.Windows.Forms.Button(); + this.radioButtonWindowTitle = new System.Windows.Forms.RadioButton(); + this.radioButtonApplication = new System.Windows.Forms.RadioButton(); + this.radioButtonClass = new System.Windows.Forms.RadioButton(); this.tabPageKeystrokes = new System.Windows.Forms.TabPage(); this.buttonKeyHelp = new System.Windows.Forms.Button(); this.labelKeystrokes = new System.Windows.Forms.Label(); @@ -107,9 +111,11 @@ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDataBits)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaudRate)).BeginInit(); this.tabPageMessage.SuspendLayout(); + this.groupBoxMessageDetails.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMsg)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLParam)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWParam)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMsg)).BeginInit(); + this.groupBoxMessageTarget.SuspendLayout(); this.tabPageKeystrokes.SuspendLayout(); this.SuspendLayout(); // @@ -123,7 +129,7 @@ this.groupBoxButton.Controls.Add(this.textBoxButtonDesc); this.groupBoxButton.Location = new System.Drawing.Point(8, 8); this.groupBoxButton.Name = "groupBoxButton"; - this.groupBoxButton.Size = new System.Drawing.Size(408, 80); + this.groupBoxButton.Size = new System.Drawing.Size(456, 80); this.groupBoxButton.TabIndex = 0; this.groupBoxButton.TabStop = false; this.groupBoxButton.Text = "Button"; @@ -154,7 +160,7 @@ this.textBoxKeyCode.Location = new System.Drawing.Point(88, 16); this.textBoxKeyCode.Name = "textBoxKeyCode"; this.textBoxKeyCode.ReadOnly = true; - this.textBoxKeyCode.Size = new System.Drawing.Size(312, 20); + this.textBoxKeyCode.Size = new System.Drawing.Size(360, 20); this.textBoxKeyCode.TabIndex = 1; this.textBoxKeyCode.TabStop = false; this.textBoxKeyCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; @@ -165,8 +171,9 @@ | System.Windows.Forms.AnchorStyles.Right))); this.textBoxButtonDesc.Location = new System.Drawing.Point(88, 48); this.textBoxButtonDesc.Name = "textBoxButtonDesc"; - this.textBoxButtonDesc.Size = new System.Drawing.Size(312, 20); + this.textBoxButtonDesc.Size = new System.Drawing.Size(360, 20); this.textBoxButtonDesc.TabIndex = 3; + this.textBoxButtonDesc.TextChanged += new System.EventHandler(this.textBoxButtonDesc_TextChanged); // // groupBoxSet // @@ -179,7 +186,7 @@ this.groupBoxSet.Controls.Add(this.buttonTest); this.groupBoxSet.Location = new System.Drawing.Point(8, 96); this.groupBoxSet.Name = "groupBoxSet"; - this.groupBoxSet.Size = new System.Drawing.Size(408, 264); + this.groupBoxSet.Size = new System.Drawing.Size(456, 296); this.groupBoxSet.TabIndex = 1; this.groupBoxSet.TabStop = false; this.groupBoxSet.Text = "Command"; @@ -189,16 +196,16 @@ this.textBoxCommand.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBoxCommand.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.textBoxCommand.Location = new System.Drawing.Point(64, 232); + this.textBoxCommand.Location = new System.Drawing.Point(64, 264); this.textBoxCommand.Name = "textBoxCommand"; this.textBoxCommand.ReadOnly = true; - this.textBoxCommand.Size = new System.Drawing.Size(280, 20); + this.textBoxCommand.Size = new System.Drawing.Size(328, 20); this.textBoxCommand.TabIndex = 2; // // buttonSet // this.buttonSet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonSet.Location = new System.Drawing.Point(8, 232); + this.buttonSet.Location = new System.Drawing.Point(8, 264); this.buttonSet.Name = "buttonSet"; this.buttonSet.Size = new System.Drawing.Size(48, 20); this.buttonSet.TabIndex = 1; @@ -220,7 +227,7 @@ this.tabControl.Location = new System.Drawing.Point(8, 24); this.tabControl.Name = "tabControl"; this.tabControl.SelectedIndex = 0; - this.tabControl.Size = new System.Drawing.Size(392, 200); + this.tabControl.Size = new System.Drawing.Size(440, 232); this.tabControl.TabIndex = 0; // // tabPageBlastIR @@ -235,7 +242,7 @@ this.tabPageBlastIR.Location = new System.Drawing.Point(4, 22); this.tabPageBlastIR.Name = "tabPageBlastIR"; this.tabPageBlastIR.Padding = new System.Windows.Forms.Padding(3); - this.tabPageBlastIR.Size = new System.Drawing.Size(384, 174); + this.tabPageBlastIR.Size = new System.Drawing.Size(432, 206); this.tabPageBlastIR.TabIndex = 0; this.tabPageBlastIR.Text = "Blast IR"; this.tabPageBlastIR.UseVisualStyleBackColor = true; @@ -255,13 +262,13 @@ this.comboBoxSpeed.FormattingEnabled = true; this.comboBoxSpeed.Location = new System.Drawing.Point(96, 80); this.comboBoxSpeed.Name = "comboBoxSpeed"; - this.comboBoxSpeed.Size = new System.Drawing.Size(88, 21); + this.comboBoxSpeed.Size = new System.Drawing.Size(120, 21); this.comboBoxSpeed.TabIndex = 5; // // buttonLearnIR // this.buttonLearnIR.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonLearnIR.Location = new System.Drawing.Point(312, 144); + this.buttonLearnIR.Location = new System.Drawing.Point(360, 176); this.buttonLearnIR.Name = "buttonLearnIR"; this.buttonLearnIR.Size = new System.Drawing.Size(64, 24); this.buttonLearnIR.TabIndex = 6; @@ -286,7 +293,7 @@ this.comboBoxIRCode.FormattingEnabled = true; this.comboBoxIRCode.Location = new System.Drawing.Point(96, 16); this.comboBoxIRCode.Name = "comboBoxIRCode"; - this.comboBoxIRCode.Size = new System.Drawing.Size(280, 21); + this.comboBoxIRCode.Size = new System.Drawing.Size(328, 21); this.comboBoxIRCode.TabIndex = 1; // // comboBoxPort @@ -295,7 +302,7 @@ this.comboBoxPort.FormattingEnabled = true; this.comboBoxPort.Location = new System.Drawing.Point(96, 48); this.comboBoxPort.Name = "comboBoxPort"; - this.comboBoxPort.Size = new System.Drawing.Size(88, 21); + this.comboBoxPort.Size = new System.Drawing.Size(120, 21); this.comboBoxPort.TabIndex = 3; // // labelIRCommand @@ -315,7 +322,7 @@ this.tabPageMacro.Location = new System.Drawing.Point(4, 22); this.tabPageMacro.Name = "tabPageMacro"; this.tabPageMacro.Padding = new System.Windows.Forms.Padding(3); - this.tabPageMacro.Size = new System.Drawing.Size(384, 174); + this.tabPageMacro.Size = new System.Drawing.Size(432, 206); this.tabPageMacro.TabIndex = 1; this.tabPageMacro.Text = "Macro"; this.tabPageMacro.UseVisualStyleBackColor = true; @@ -323,7 +330,7 @@ // buttonNewMacro // this.buttonNewMacro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonNewMacro.Location = new System.Drawing.Point(312, 144); + this.buttonNewMacro.Location = new System.Drawing.Point(360, 176); this.buttonNewMacro.Name = "buttonNewMacro"; this.buttonNewMacro.Size = new System.Drawing.Size(64, 24); this.buttonNewMacro.TabIndex = 2; @@ -339,7 +346,7 @@ this.comboBoxMacro.FormattingEnabled = true; this.comboBoxMacro.Location = new System.Drawing.Point(96, 16); this.comboBoxMacro.Name = "comboBoxMacro"; - this.comboBoxMacro.Size = new System.Drawing.Size(280, 21); + this.comboBoxMacro.Size = new System.Drawing.Size(328, 21); this.comboBoxMacro.TabIndex = 1; // // labelMacro @@ -368,7 +375,7 @@ this.tabPageProgram.Location = new System.Drawing.Point(4, 22); this.tabPageProgram.Name = "tabPageProgram"; this.tabPageProgram.Padding = new System.Windows.Forms.Padding(3); - this.tabPageProgram.Size = new System.Drawing.Size(384, 174); + this.tabPageProgram.Size = new System.Drawing.Size(432, 206); this.tabPageProgram.TabIndex = 3; this.tabPageProgram.Text = "Run"; this.tabPageProgram.UseVisualStyleBackColor = true; @@ -401,7 +408,7 @@ this.comboBoxWindowStyle.Location = new System.Drawing.Point(96, 112); this.comboBoxWindowStyle.MaxDropDownItems = 4; this.comboBoxWindowStyle.Name = "comboBoxWindowStyle"; - this.comboBoxWindowStyle.Size = new System.Drawing.Size(104, 21); + this.comboBoxWindowStyle.Size = new System.Drawing.Size(112, 21); this.comboBoxWindowStyle.TabIndex = 9; // // labelWindowStyle @@ -428,7 +435,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.textBoxApplicationParameters.Location = new System.Drawing.Point(96, 80); this.textBoxApplicationParameters.Name = "textBoxApplicationParameters"; - this.textBoxApplicationParameters.Size = new System.Drawing.Size(280, 20); + this.textBoxApplicationParameters.Size = new System.Drawing.Size(328, 20); this.textBoxApplicationParameters.TabIndex = 7; // // labelStartupFolder @@ -443,7 +450,7 @@ // buttonStartupFolder // this.buttonStartupFolder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonStartupFolder.Location = new System.Drawing.Point(352, 48); + this.buttonStartupFolder.Location = new System.Drawing.Point(400, 48); this.buttonStartupFolder.Name = "buttonStartupFolder"; this.buttonStartupFolder.Size = new System.Drawing.Size(24, 20); this.buttonStartupFolder.TabIndex = 5; @@ -457,7 +464,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.textBoxAppStartFolder.Location = new System.Drawing.Point(96, 48); this.textBoxAppStartFolder.Name = "textBoxAppStartFolder"; - this.textBoxAppStartFolder.Size = new System.Drawing.Size(248, 20); + this.textBoxAppStartFolder.Size = new System.Drawing.Size(296, 20); this.textBoxAppStartFolder.TabIndex = 4; // // labelApplication @@ -472,7 +479,7 @@ // buttonLocate // this.buttonLocate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonLocate.Location = new System.Drawing.Point(352, 16); + this.buttonLocate.Location = new System.Drawing.Point(400, 16); this.buttonLocate.Name = "buttonLocate"; this.buttonLocate.Size = new System.Drawing.Size(24, 20); this.buttonLocate.TabIndex = 2; @@ -486,7 +493,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.textBoxApp.Location = new System.Drawing.Point(96, 16); this.textBoxApp.Name = "textBoxApp"; - this.textBoxApp.Size = new System.Drawing.Size(248, 20); + this.textBoxApp.Size = new System.Drawing.Size(296, 20); this.textBoxApp.TabIndex = 1; // // tabPageSerial @@ -498,7 +505,7 @@ this.tabPageSerial.Location = new System.Drawing.Point(4, 22); this.tabPageSerial.Name = "tabPageSerial"; this.tabPageSerial.Padding = new System.Windows.Forms.Padding(3); - this.tabPageSerial.Size = new System.Drawing.Size(384, 174); + this.tabPageSerial.Size = new System.Drawing.Size(432, 206); this.tabPageSerial.TabIndex = 2; this.tabPageSerial.Text = "Serial"; this.tabPageSerial.UseVisualStyleBackColor = true; @@ -520,7 +527,7 @@ this.groupBoxPortSetup.Controls.Add(this.labelComPort); this.groupBoxPortSetup.Location = new System.Drawing.Point(8, 48); this.groupBoxPortSetup.Name = "groupBoxPortSetup"; - this.groupBoxPortSetup.Size = new System.Drawing.Size(368, 120); + this.groupBoxPortSetup.Size = new System.Drawing.Size(416, 144); this.groupBoxPortSetup.TabIndex = 3; this.groupBoxPortSetup.TabStop = false; this.groupBoxPortSetup.Text = "Port setup"; @@ -529,7 +536,7 @@ // this.comboBoxComPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxComPort.FormattingEnabled = true; - this.comboBoxComPort.Location = new System.Drawing.Point(80, 24); + this.comboBoxComPort.Location = new System.Drawing.Point(88, 24); this.comboBoxComPort.Name = "comboBoxComPort"; this.comboBoxComPort.Size = new System.Drawing.Size(96, 21); this.comboBoxComPort.TabIndex = 1; @@ -538,7 +545,7 @@ // this.comboBoxStopBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxStopBits.FormattingEnabled = true; - this.comboBoxStopBits.Location = new System.Drawing.Point(80, 88); + this.comboBoxStopBits.Location = new System.Drawing.Point(88, 88); this.comboBoxStopBits.Name = "comboBoxStopBits"; this.comboBoxStopBits.Size = new System.Drawing.Size(96, 21); this.comboBoxStopBits.TabIndex = 9; @@ -547,14 +554,14 @@ // this.labelStopBits.Location = new System.Drawing.Point(8, 88); this.labelStopBits.Name = "labelStopBits"; - this.labelStopBits.Size = new System.Drawing.Size(72, 21); + this.labelStopBits.Size = new System.Drawing.Size(80, 21); this.labelStopBits.TabIndex = 8; this.labelStopBits.Text = "Stop bits:"; this.labelStopBits.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // numericUpDownDataBits // - this.numericUpDownDataBits.Location = new System.Drawing.Point(264, 56); + this.numericUpDownDataBits.Location = new System.Drawing.Point(312, 56); this.numericUpDownDataBits.Maximum = new decimal(new int[] { 8, 0, @@ -577,9 +584,9 @@ // // labelDataBits // - this.labelDataBits.Location = new System.Drawing.Point(192, 56); + this.labelDataBits.Location = new System.Drawing.Point(232, 56); this.labelDataBits.Name = "labelDataBits"; - this.labelDataBits.Size = new System.Drawing.Size(72, 20); + this.labelDataBits.Size = new System.Drawing.Size(80, 20); this.labelDataBits.TabIndex = 6; this.labelDataBits.Text = "Data bits:"; this.labelDataBits.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -588,7 +595,7 @@ // this.comboBoxParity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxParity.FormattingEnabled = true; - this.comboBoxParity.Location = new System.Drawing.Point(80, 56); + this.comboBoxParity.Location = new System.Drawing.Point(88, 56); this.comboBoxParity.Name = "comboBoxParity"; this.comboBoxParity.Size = new System.Drawing.Size(96, 21); this.comboBoxParity.TabIndex = 5; @@ -597,14 +604,14 @@ // this.labelParity.Location = new System.Drawing.Point(8, 56); this.labelParity.Name = "labelParity"; - this.labelParity.Size = new System.Drawing.Size(72, 21); + this.labelParity.Size = new System.Drawing.Size(80, 21); this.labelParity.TabIndex = 4; this.labelParity.Text = "Parity:"; this.labelParity.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // numericUpDownBaudRate // - this.numericUpDownBaudRate.Location = new System.Drawing.Point(264, 24); + this.numericUpDownBaudRate.Location = new System.Drawing.Point(312, 24); this.numericUpDownBaudRate.Maximum = new decimal(new int[] { 256000, 0, @@ -627,9 +634,9 @@ // // labelBaudRate // - this.labelBaudRate.Location = new System.Drawing.Point(192, 24); + this.labelBaudRate.Location = new System.Drawing.Point(232, 24); this.labelBaudRate.Name = "labelBaudRate"; - this.labelBaudRate.Size = new System.Drawing.Size(72, 20); + this.labelBaudRate.Size = new System.Drawing.Size(80, 20); this.labelBaudRate.TabIndex = 2; this.labelBaudRate.Text = "Baud rate:"; this.labelBaudRate.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -638,7 +645,7 @@ // this.labelComPort.Location = new System.Drawing.Point(8, 24); this.labelComPort.Name = "labelComPort"; - this.labelComPort.Size = new System.Drawing.Size(72, 20); + this.labelComPort.Size = new System.Drawing.Size(80, 20); this.labelComPort.TabIndex = 0; this.labelComPort.Text = "Com port:"; this.labelComPort.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; @@ -646,7 +653,7 @@ // buttonParamQuestion // this.buttonParamQuestion.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonParamQuestion.Location = new System.Drawing.Point(352, 16); + this.buttonParamQuestion.Location = new System.Drawing.Point(400, 16); this.buttonParamQuestion.Name = "buttonParamQuestion"; this.buttonParamQuestion.Size = new System.Drawing.Size(24, 20); this.buttonParamQuestion.TabIndex = 2; @@ -660,7 +667,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.textBoxSerialCommand.Location = new System.Drawing.Point(96, 16); this.textBoxSerialCommand.Name = "textBoxSerialCommand"; - this.textBoxSerialCommand.Size = new System.Drawing.Size(248, 20); + this.textBoxSerialCommand.Size = new System.Drawing.Size(296, 20); this.textBoxSerialCommand.TabIndex = 1; // // labelSerialCommand @@ -674,65 +681,57 @@ // // tabPageMessage // - this.tabPageMessage.Controls.Add(this.checkBoxMsgCurrApp); - this.tabPageMessage.Controls.Add(this.labelMsgApp); - this.tabPageMessage.Controls.Add(this.buttonFindMsgApp); - this.tabPageMessage.Controls.Add(this.textBoxMsgApp); - this.tabPageMessage.Controls.Add(this.numericUpDownLParam); - this.tabPageMessage.Controls.Add(this.numericUpDownWParam); - this.tabPageMessage.Controls.Add(this.numericUpDownMsg); - this.tabPageMessage.Controls.Add(this.labelLParam); - this.tabPageMessage.Controls.Add(this.labelWParam); - this.tabPageMessage.Controls.Add(this.labelMessage); + this.tabPageMessage.Controls.Add(this.groupBoxMessageDetails); + this.tabPageMessage.Controls.Add(this.groupBoxMessageTarget); this.tabPageMessage.Location = new System.Drawing.Point(4, 22); this.tabPageMessage.Name = "tabPageMessage"; this.tabPageMessage.Padding = new System.Windows.Forms.Padding(3); - this.tabPageMessage.Size = new System.Drawing.Size(384, 174); + this.tabPageMessage.Size = new System.Drawing.Size(432, 206); this.tabPageMessage.TabIndex = 4; - this.tabPageMessage.Text = "Message"; + this.tabPageMessage.Text = "Window Message"; this.tabPageMessage.UseVisualStyleBackColor = true; // - // checkBoxMsgCurrApp + // groupBoxMessageDetails // - this.checkBoxMsgCurrApp.Location = new System.Drawing.Point(96, 40); - this.checkBoxMsgCurrApp.Name = "checkBoxMsgCurrApp"; - this.checkBoxMsgCurrApp.Size = new System.Drawing.Size(160, 16); - this.checkBoxMsgCurrApp.TabIndex = 3; - this.checkBoxMsgCurrApp.Text = "Send to active window"; - this.checkBoxMsgCurrApp.UseVisualStyleBackColor = true; + this.groupBoxMessageDetails.Controls.Add(this.labelMessage); + this.groupBoxMessageDetails.Controls.Add(this.numericUpDownMsg); + this.groupBoxMessageDetails.Controls.Add(this.numericUpDownLParam); + this.groupBoxMessageDetails.Controls.Add(this.numericUpDownWParam); + this.groupBoxMessageDetails.Controls.Add(this.labelLParam); + this.groupBoxMessageDetails.Controls.Add(this.labelWParam); + this.groupBoxMessageDetails.Location = new System.Drawing.Point(8, 104); + this.groupBoxMessageDetails.Name = "groupBoxMessageDetails"; + this.groupBoxMessageDetails.Size = new System.Drawing.Size(416, 88); + this.groupBoxMessageDetails.TabIndex = 1; + this.groupBoxMessageDetails.TabStop = false; + this.groupBoxMessageDetails.Text = "Details"; // - // labelMsgApp + // labelMessage // - this.labelMsgApp.Location = new System.Drawing.Point(8, 16); - this.labelMsgApp.Name = "labelMsgApp"; - this.labelMsgApp.Size = new System.Drawing.Size(88, 20); - this.labelMsgApp.TabIndex = 0; - this.labelMsgApp.Text = "Application:"; - this.labelMsgApp.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.labelMessage.Location = new System.Drawing.Point(8, 24); + this.labelMessage.Name = "labelMessage"; + this.labelMessage.Size = new System.Drawing.Size(72, 20); + this.labelMessage.TabIndex = 0; + this.labelMessage.Text = "Message:"; + this.labelMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // buttonFindMsgApp + // numericUpDownMsg // - this.buttonFindMsgApp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonFindMsgApp.Location = new System.Drawing.Point(352, 16); - this.buttonFindMsgApp.Name = "buttonFindMsgApp"; - this.buttonFindMsgApp.Size = new System.Drawing.Size(24, 20); - this.buttonFindMsgApp.TabIndex = 2; - this.buttonFindMsgApp.Text = "..."; - this.buttonFindMsgApp.UseVisualStyleBackColor = true; - this.buttonFindMsgApp.Click += new System.EventHandler(this.buttonFindMsgApp_Click); + this.numericUpDownMsg.Location = new System.Drawing.Point(80, 24); + this.numericUpDownMsg.Maximum = new decimal(new int[] { + -1, + 0, + 0, + 0}); + this.numericUpDownMsg.Name = "numericUpDownMsg"; + this.numericUpDownMsg.Size = new System.Drawing.Size(104, 20); + this.numericUpDownMsg.TabIndex = 1; + this.numericUpDownMsg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDownMsg.ThousandsSeparator = true; // - // textBoxMsgApp - // - this.textBoxMsgApp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBoxMsgApp.Location = new System.Drawing.Point(96, 16); - this.textBoxMsgApp.Name = "textBoxMsgApp"; - this.textBoxMsgApp.Size = new System.Drawing.Size(248, 20); - this.textBoxMsgApp.TabIndex = 1; - // // numericUpDownLParam // - this.numericUpDownLParam.Location = new System.Drawing.Point(96, 136); + this.numericUpDownLParam.Location = new System.Drawing.Point(304, 56); this.numericUpDownLParam.Maximum = new decimal(new int[] { -1, 0, @@ -740,13 +739,13 @@ 0}); this.numericUpDownLParam.Name = "numericUpDownLParam"; this.numericUpDownLParam.Size = new System.Drawing.Size(104, 20); - this.numericUpDownLParam.TabIndex = 9; + this.numericUpDownLParam.TabIndex = 5; this.numericUpDownLParam.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.numericUpDownLParam.ThousandsSeparator = true; // // numericUpDownWParam // - this.numericUpDownWParam.Location = new System.Drawing.Point(96, 104); + this.numericUpDownWParam.Location = new System.Drawing.Point(304, 24); this.numericUpDownWParam.Maximum = new decimal(new int[] { -1, 0, @@ -754,51 +753,110 @@ 0}); this.numericUpDownWParam.Name = "numericUpDownWParam"; this.numericUpDownWParam.Size = new System.Drawing.Size(104, 20); - this.numericUpDownWParam.TabIndex = 7; + this.numericUpDownWParam.TabIndex = 3; this.numericUpDownWParam.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.numericUpDownWParam.ThousandsSeparator = true; // - // numericUpDownMsg - // - this.numericUpDownMsg.Location = new System.Drawing.Point(96, 72); - this.numericUpDownMsg.Maximum = new decimal(new int[] { - -1, - 0, - 0, - 0}); - this.numericUpDownMsg.Name = "numericUpDownMsg"; - this.numericUpDownMsg.Size = new System.Drawing.Size(104, 20); - this.numericUpDownMsg.TabIndex = 5; - this.numericUpDownMsg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.numericUpDownMsg.ThousandsSeparator = true; - // // labelLParam // - this.labelLParam.Location = new System.Drawing.Point(8, 136); + this.labelLParam.Location = new System.Drawing.Point(216, 56); this.labelLParam.Name = "labelLParam"; this.labelLParam.Size = new System.Drawing.Size(88, 20); - this.labelLParam.TabIndex = 8; + this.labelLParam.TabIndex = 4; this.labelLParam.Text = "Long Param:"; this.labelLParam.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // labelWParam // - this.labelWParam.Location = new System.Drawing.Point(8, 104); + this.labelWParam.Location = new System.Drawing.Point(216, 24); this.labelWParam.Name = "labelWParam"; this.labelWParam.Size = new System.Drawing.Size(88, 20); - this.labelWParam.TabIndex = 6; + this.labelWParam.TabIndex = 2; this.labelWParam.Text = "Word Param:"; this.labelWParam.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // labelMessage + // groupBoxMessageTarget // - this.labelMessage.Location = new System.Drawing.Point(8, 72); - this.labelMessage.Name = "labelMessage"; - this.labelMessage.Size = new System.Drawing.Size(88, 20); - this.labelMessage.TabIndex = 4; - this.labelMessage.Text = "Message:"; - this.labelMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.groupBoxMessageTarget.Controls.Add(this.radioButtonActiveWindow); + this.groupBoxMessageTarget.Controls.Add(this.textBoxMsgTarget); + this.groupBoxMessageTarget.Controls.Add(this.buttonFindMsgTarget); + this.groupBoxMessageTarget.Controls.Add(this.radioButtonWindowTitle); + this.groupBoxMessageTarget.Controls.Add(this.radioButtonApplication); + this.groupBoxMessageTarget.Controls.Add(this.radioButtonClass); + this.groupBoxMessageTarget.Location = new System.Drawing.Point(8, 16); + this.groupBoxMessageTarget.Name = "groupBoxMessageTarget"; + this.groupBoxMessageTarget.Size = new System.Drawing.Size(416, 80); + this.groupBoxMessageTarget.TabIndex = 0; + this.groupBoxMessageTarget.TabStop = false; + this.groupBoxMessageTarget.Text = "Target"; // + // radioButtonActiveWindow + // + this.radioButtonActiveWindow.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radioButtonActiveWindow.Location = new System.Drawing.Point(16, 24); + this.radioButtonActiveWindow.Name = "radioButtonActiveWindow"; + this.radioButtonActiveWindow.Size = new System.Drawing.Size(104, 16); + this.radioButtonActiveWindow.TabIndex = 0; + this.radioButtonActiveWindow.Text = "Active window"; + this.radioButtonActiveWindow.UseVisualStyleBackColor = true; + this.radioButtonActiveWindow.CheckedChanged += new System.EventHandler(this.radioButtonActiveWindow_CheckedChanged); + // + // textBoxMsgTarget + // + this.textBoxMsgTarget.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxMsgTarget.Location = new System.Drawing.Point(8, 48); + this.textBoxMsgTarget.Name = "textBoxMsgTarget"; + this.textBoxMsgTarget.Size = new System.Drawing.Size(368, 20); + this.textBoxMsgTarget.TabIndex = 4; + // + // buttonFindMsgTarget + // + this.buttonFindMsgTarget.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonFindMsgTarget.Location = new System.Drawing.Point(384, 48); + this.buttonFindMsgTarget.Name = "buttonFindMsgTarget"; + this.buttonFindMsgTarget.Size = new System.Drawing.Size(24, 20); + this.buttonFindMsgTarget.TabIndex = 5; + this.buttonFindMsgTarget.Text = "..."; + this.buttonFindMsgTarget.UseVisualStyleBackColor = true; + this.buttonFindMsgTarget.Click += new System.EventHandler(this.buttonFindMsgTarget_Click); + // + // radioButtonWindowTitle + // + this.radioButtonWindowTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radioButtonWindowTitle.Location = new System.Drawing.Point(304, 24); + this.radioButtonWindowTitle.Name = "radioButtonWindowTitle"; + this.radioButtonWindowTitle.Size = new System.Drawing.Size(96, 16); + this.radioButtonWindowTitle.TabIndex = 3; + this.radioButtonWindowTitle.TabStop = true; + this.radioButtonWindowTitle.Text = "Window title"; + this.radioButtonWindowTitle.UseVisualStyleBackColor = true; + this.radioButtonWindowTitle.CheckedChanged += new System.EventHandler(this.radioButtonWindowTitle_CheckedChanged); + // + // radioButtonApplication + // + this.radioButtonApplication.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radioButtonApplication.Location = new System.Drawing.Point(128, 24); + this.radioButtonApplication.Name = "radioButtonApplication"; + this.radioButtonApplication.Size = new System.Drawing.Size(88, 16); + this.radioButtonApplication.TabIndex = 1; + this.radioButtonApplication.TabStop = true; + this.radioButtonApplication.Text = "Application"; + this.radioButtonApplication.UseVisualStyleBackColor = true; + this.radioButtonApplication.CheckedChanged += new System.EventHandler(this.radioButtonApplication_CheckedChanged); + // + // radioButtonClass + // + this.radioButtonClass.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radioButtonClass.Location = new System.Drawing.Point(224, 24); + this.radioButtonClass.Name = "radioButtonClass"; + this.radioButtonClass.Size = new System.Drawing.Size(72, 16); + this.radioButtonClass.TabIndex = 2; + this.radioButtonClass.TabStop = true; + this.radioButtonClass.Text = "Class"; + this.radioButtonClass.UseVisualStyleBackColor = true; + this.radioButtonClass.CheckedChanged += new System.EventHandler(this.radioButtonClass_CheckedChanged); + // // tabPageKeystrokes // this.tabPageKeystrokes.Controls.Add(this.buttonKeyHelp); @@ -807,7 +865,7 @@ this.tabPageKeystrokes.Location = new System.Drawing.Point(4, 22); this.tabPageKeystrokes.Name = "tabPageKeystrokes"; this.tabPageKeystrokes.Padding = new System.Windows.Forms.Padding(3); - this.tabPageKeystrokes.Size = new System.Drawing.Size(384, 174); + this.tabPageKeystrokes.Size = new System.Drawing.Size(432, 206); this.tabPageKeystrokes.TabIndex = 5; this.tabPageKeystrokes.Text = "Keystrokes"; this.tabPageKeystrokes.UseVisualStyleBackColor = true; @@ -815,7 +873,7 @@ // buttonKeyHelp // this.buttonKeyHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonKeyHelp.Location = new System.Drawing.Point(312, 144); + this.buttonKeyHelp.Location = new System.Drawing.Point(360, 176); this.buttonKeyHelp.Name = "buttonKeyHelp"; this.buttonKeyHelp.Size = new System.Drawing.Size(64, 24); this.buttonKeyHelp.TabIndex = 2; @@ -829,7 +887,7 @@ | System.Windows.Forms.AnchorStyles.Right))); this.labelKeystrokes.Location = new System.Drawing.Point(8, 8); this.labelKeystrokes.Name = "labelKeystrokes"; - this.labelKeystrokes.Size = new System.Drawing.Size(368, 16); + this.labelKeystrokes.Size = new System.Drawing.Size(416, 16); this.labelKeystrokes.TabIndex = 0; this.labelKeystrokes.Text = "Keystrokes:"; this.labelKeystrokes.TextAlign = System.Drawing.ContentAlignment.BottomLeft; @@ -843,13 +901,13 @@ this.textBoxKeys.Multiline = true; this.textBoxKeys.Name = "textBoxKeys"; this.textBoxKeys.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.textBoxKeys.Size = new System.Drawing.Size(368, 112); + this.textBoxKeys.Size = new System.Drawing.Size(416, 144); this.textBoxKeys.TabIndex = 1; // // buttonTest // this.buttonTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonTest.Location = new System.Drawing.Point(352, 232); + this.buttonTest.Location = new System.Drawing.Point(400, 264); this.buttonTest.Name = "buttonTest"; this.buttonTest.Size = new System.Drawing.Size(48, 20); this.buttonTest.TabIndex = 3; @@ -861,7 +919,7 @@ // this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonCancel.Location = new System.Drawing.Point(360, 368); + this.buttonCancel.Location = new System.Drawing.Point(408, 400); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(56, 24); this.buttonCancel.TabIndex = 3; @@ -872,7 +930,7 @@ // buttonOK // this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonOK.Location = new System.Drawing.Point(296, 368); + this.buttonOK.Location = new System.Drawing.Point(344, 400); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(56, 24); this.buttonOK.TabIndex = 2; @@ -886,14 +944,14 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.buttonCancel; - this.ClientSize = new System.Drawing.Size(424, 401); + this.ClientSize = new System.Drawing.Size(472, 433); this.Controls.Add(this.groupBoxButton); this.Controls.Add(this.groupBoxSet); this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOK); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(432, 428); + this.MinimumSize = new System.Drawing.Size(480, 428); this.Name = "ButtonMappingForm"; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; @@ -914,10 +972,12 @@ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownDataBits)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownBaudRate)).EndInit(); this.tabPageMessage.ResumeLayout(false); - this.tabPageMessage.PerformLayout(); + this.groupBoxMessageDetails.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMsg)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownLParam)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownWParam)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownMsg)).EndInit(); + this.groupBoxMessageTarget.ResumeLayout(false); + this.groupBoxMessageTarget.PerformLayout(); this.tabPageKeystrokes.ResumeLayout(false); this.tabPageKeystrokes.PerformLayout(); this.ResumeLayout(false); @@ -975,10 +1035,6 @@ private System.Windows.Forms.TextBox textBoxSerialCommand; private System.Windows.Forms.Label labelSerialCommand; private System.Windows.Forms.TabPage tabPageMessage; - private System.Windows.Forms.CheckBox checkBoxMsgCurrApp; - private System.Windows.Forms.Label labelMsgApp; - private System.Windows.Forms.Button buttonFindMsgApp; - private System.Windows.Forms.TextBox textBoxMsgApp; private System.Windows.Forms.NumericUpDown numericUpDownLParam; private System.Windows.Forms.NumericUpDown numericUpDownWParam; private System.Windows.Forms.NumericUpDown numericUpDownMsg; @@ -993,6 +1049,14 @@ private System.Windows.Forms.Button buttonCancel; private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.CheckBox checkBoxNoWindow; + private System.Windows.Forms.RadioButton radioButtonWindowTitle; + private System.Windows.Forms.RadioButton radioButtonClass; + private System.Windows.Forms.RadioButton radioButtonApplication; + private System.Windows.Forms.RadioButton radioButtonActiveWindow; + private System.Windows.Forms.TextBox textBoxMsgTarget; + private System.Windows.Forms.Button buttonFindMsgTarget; + private System.Windows.Forms.GroupBox groupBoxMessageTarget; + private System.Windows.Forms.GroupBox groupBoxMessageDetails; } } \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -175,15 +175,31 @@ break; } - case Common.CmdPrefixMessage: + case Common.CmdPrefixWindowMsg: { - string[] commands = Common.SplitMessageCommand(suffix); + string[] commands = Common.SplitWindowMessageCommand(suffix); tabControl.SelectTab(tabPageMessage); - textBoxMsgApp.Text = (checkBoxMsgCurrApp.Checked ? "*" : commands[0]); - numericUpDownMsg.Value = decimal.Parse(commands[1]); - numericUpDownWParam.Value = decimal.Parse(commands[2]); - numericUpDownLParam.Value = decimal.Parse(commands[3]); + switch (commands[0].ToLowerInvariant()) + { + case "active": + radioButtonActiveWindow.Checked = true; + break; + case "application": + radioButtonApplication.Checked = true; + break; + case "class": + radioButtonClass.Checked = true; + break; + case "window": + radioButtonWindowTitle.Checked = true; + break; + } + + textBoxMsgTarget.Text = commands[1]; + numericUpDownMsg.Value = decimal.Parse(commands[2]); + numericUpDownWParam.Value = decimal.Parse(commands[3]); + numericUpDownLParam.Value = decimal.Parse(commands[4]); break; } @@ -284,10 +300,30 @@ case "tabPageMessage": { + string target = "error"; + + if (radioButtonActiveWindow.Checked) + { + target = "active"; + textBoxMsgTarget.Text = "*"; + } + else if (radioButtonApplication.Checked) + { + target = "application"; + } + else if (radioButtonClass.Checked) + { + target = "class"; + } + else if (radioButtonWindowTitle.Checked) + { + target = "window"; + } + textBoxCommand.Text = _command = - String.Format("{0}{1}|{2}|{3}|{4}", - Common.CmdPrefixMessage, - checkBoxMsgCurrApp.Checked ? "*" : textBoxMsgApp.Text, + String.Format("{0}|{1}|{2}|{3}|{4}", + target, + textBoxMsgTarget.Text, numericUpDownMsg.Value.ToString(), numericUpDownWParam.Value.ToString(), numericUpDownLParam.Value.ToString()); @@ -319,17 +355,49 @@ } } - private void buttonFindMsgApp_Click(object sender, EventArgs e) + private void buttonFindMsgTarget_Click(object sender, EventArgs e) { - OpenFileDialog find = new OpenFileDialog(); - find.Filter = "All files|*.*"; - find.Multiselect = false; - find.Title = "Application to send message to"; + if (radioButtonApplication.Checked) + { + OpenFileDialog find = new OpenFileDialog(); + find.Filter = "All files|*.*"; + find.Multiselect = false; + find.Title = "Application to send message to"; - if (find.ShowDialog(this) == DialogResult.OK) - textBoxMsgApp.Text = find.FileName; + if (find.ShowDialog(this) == DialogResult.OK) + textBoxMsgTarget.Text = find.FileName; + } + else if (radioButtonClass.Checked) + { + // TODO: Locate Class + } + else if (radioButtonWindowTitle.Checked) + { + // TODO: Locate Window + } } + private void radioButtonActiveWindow_CheckedChanged(object sender, EventArgs e) + { + buttonFindMsgTarget.Enabled = false; + textBoxMsgTarget.Enabled = false; + } + private void radioButtonApplication_CheckedChanged(object sender, EventArgs e) + { + buttonFindMsgTarget.Enabled = true; + textBoxMsgTarget.Enabled = true; + } + private void radioButtonClass_CheckedChanged(object sender, EventArgs e) + { + buttonFindMsgTarget.Enabled = false; + textBoxMsgTarget.Enabled = true; + } + private void radioButtonWindowTitle_CheckedChanged(object sender, EventArgs e) + { + buttonFindMsgTarget.Enabled = false; + textBoxMsgTarget.Enabled = true; + } + private void buttonLocate_Click(object sender, EventArgs e) { OpenFileDialog find = new OpenFileDialog(); @@ -372,21 +440,16 @@ private void buttonKeyHelp_Click(object sender, EventArgs e) { - MessageBox.Show(this, -@"Place special keys inside {}, for example: {F4} for the F4 key. -Use + to apply the SHIFT key to the following character, -Use ^ to apply the CONTROL key to the following character, -Use % to apply the ALT key to the following character. - -For more information refer to 'Simulating Keystrokes.txt' -", "Advanced keystroke input", MessageBoxButtons.OK, MessageBoxIcon.Information); + try + { + Help.ShowHelp(this, SystemRegistry.GetInstallFolder() + "\\IR Server Suite.chm", HelpNavigator.Topic, "Common\\keystrokes_info.html"); + } + catch (Exception ex) + { + MessageBox.Show(this, ex.Message, "Failed to load help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } - private void checkBoxMsgCurrApp_CheckedChanged(object sender, EventArgs e) - { - textBoxMsgApp.Enabled = !checkBoxMsgCurrApp.Checked; - } - private void textBoxButtonDesc_TextChanged(object sender, EventArgs e) { _description = textBoxButtonDesc.Text; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -43,7 +43,8 @@ comboBoxCommands.Items.Add(Common.UITextRun); comboBoxCommands.Items.Add(Common.UITextPause); comboBoxCommands.Items.Add(Common.UITextSerial); - comboBoxCommands.Items.Add(Common.UITextMessage); + comboBoxCommands.Items.Add(Common.UITextWindowMsg); + comboBoxCommands.Items.Add(Common.UITextTcpMsg); comboBoxCommands.Items.Add(Common.UITextKeys); //TODO: Add Shutdown and Reboot comboBoxCommands.Items.Add(Common.UITextStandby); @@ -89,11 +90,16 @@ writer.WriteAttributeString("command", Common.XmlTagSerial); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixSerial.Length)); } - else if (item.StartsWith(Common.CmdPrefixMessage)) + else if (item.StartsWith(Common.CmdPrefixWindowMsg)) { - writer.WriteAttributeString("command", Common.XmlTagMessage); - writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMessage.Length)); + writer.WriteAttributeString("command", Common.XmlTagWindowMsg); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixWindowMsg.Length)); } + else if (item.StartsWith(Common.CmdPrefixTcpMsg)) + { + writer.WriteAttributeString("command", Common.XmlTagTcpMsg); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixTcpMsg.Length)); + } else if (item.StartsWith(Common.CmdPrefixKeys)) { writer.WriteAttributeString("command", Common.XmlTagKeys); @@ -154,10 +160,14 @@ listBoxMacro.Items.Add(Common.CmdPrefixSerial + commandProperty); break; - case Common.XmlTagMessage: - listBoxMacro.Items.Add(Common.CmdPrefixMessage + commandProperty); + case Common.XmlTagWindowMsg: + listBoxMacro.Items.Add(Common.CmdPrefixWindowMsg + commandProperty); break; + case Common.XmlTagTcpMsg: + listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + commandProperty); + break; + case Common.XmlTagKeys: listBoxMacro.Items.Add(Common.CmdPrefixKeys + commandProperty); break; @@ -216,14 +226,22 @@ listBoxMacro.Items.Add(Common.CmdPrefixSerial + serialCommand.CommandString); } - else if (selected == Common.UITextMessage) + else if (selected == Common.UITextWindowMsg) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.Cancel) return; - listBoxMacro.Items.Add(Common.CmdPrefixMessage + messageCommand.CommandString); + listBoxMacro.Items.Add(Common.CmdPrefixWindowMsg + messageCommand.CommandString); } + else if (selected == Common.UITextTcpMsg) + { + TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(); + if (tcpMessageCommand.ShowDialog(this) == DialogResult.Cancel) + return; + + listBoxMacro.Items.Add(Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); + } else if (selected == Common.UITextKeys) { KeysCommand keysCommand = new KeysCommand(); @@ -369,18 +387,30 @@ listBoxMacro.Items.Insert(index, Common.CmdPrefixSerial + serialCommand.CommandString); listBoxMacro.SelectedIndex = index; } - else if (selected.StartsWith(Common.CmdPrefixMessage)) + else if (selected.StartsWith(Common.CmdPrefixWindowMsg)) { - string[] commands = Common.SplitMessageCommand(selected.Substring(Common.CmdPrefixMessage.Length)); + string[] commands = Common.SplitWindowMessageCommand(selected.Substring(Common.CmdPrefixWindowMsg.Length)); MessageCommand messageCommand = new MessageCommand(commands); if (messageCommand.ShowDialog(this) == DialogResult.Cancel) return; int index = listBoxMacro.SelectedIndex; listBoxMacro.Items.RemoveAt(index); - listBoxMacro.Items.Insert(index, Common.CmdPrefixMessage + messageCommand.CommandString); + listBoxMacro.Items.Insert(index, Common.CmdPrefixWindowMsg + messageCommand.CommandString); listBoxMacro.SelectedIndex = index; } + else if (selected.StartsWith(Common.CmdPrefixTcpMsg)) + { + string[] commands = Common.SplitTcpMessageCommand(selected.Substring(Common.CmdPrefixTcpMsg.Length)); + TcpMessageCommand tcpMessageCommand = new TcpMessageCommand(commands); + if (tcpMessageCommand.ShowDialog(this) == DialogResult.Cancel) + return; + + int index = listBoxMacro.SelectedIndex; + listBoxMacro.Items.RemoveAt(index); + listBoxMacro.Items.Insert(index, Common.CmdPrefixTcpMsg + tcpMessageCommand.CommandString); + listBoxMacro.SelectedIndex = index; + } else if (selected.StartsWith(Common.CmdPrefixKeys)) { KeysCommand keysCommand = new KeysCommand(selected.Substring(Common.CmdPrefixKeys.Length)); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -163,7 +163,7 @@ comboBoxCommands.Items.Add(Common.UITextRun); comboBoxCommands.Items.Add(Common.UITextSerial); - comboBoxCommands.Items.Add(Common.UITextMessage); + comboBoxCommands.Items.Add(Common.UITextWindowMsg); comboBoxCommands.Items.Add(Common.UITextKeys); string[] list = Common.GetIRList(true); @@ -433,7 +433,7 @@ } catch { - // keyCode did not fall within KnownRemoteButtons enum + // keyCode did not fall within MceButton enum } map = new ButtonMappingForm(keyCode, description, String.Empty); @@ -687,13 +687,13 @@ command = Common.CmdPrefixSerial + serialCommand.CommandString; } - else if (selected == Common.UITextMessage) + else if (selected == Common.UITextWindowMsg) { MessageCommand messageCommand = new MessageCommand(); if (messageCommand.ShowDialog(this) == DialogResult.Cancel) return; - command = Common.CmdPrefixMessage + messageCommand.CommandString; + command = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } else if (selected == Common.UITextKeys) { @@ -757,14 +757,14 @@ command = Common.CmdPrefixSerial + serialCommand.CommandString; } - else if (command.StartsWith(Common.CmdPrefixMessage)) + else if (command.StartsWith(Common.CmdPrefixWindowMsg)) { - string[] commands = Common.SplitMessageCommand(command.Substring(Common.CmdPrefixMessage.Length)); + string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); MessageCommand messageCommand = new MessageCommand(commands); if (messageCommand.ShowDialog(this) == DialogResult.Cancel) return; - command = Common.CmdPrefixMessage + messageCommand.CommandString; + command = Common.CmdPrefixWindowMsg + messageCommand.CommandString; } else if (command.StartsWith(Common.CmdPrefixKeys)) { Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-06-16 00:09:51 UTC (rev 557) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-06-16 12:18:13 UTC (rev 558) @@ -843,13 +843,20 @@ break; } - case Common.XmlTagMessage: + case Common.XmlTagWindowMsg: { - string[] commands = Common.SplitMessageCommand(commandProperty); - Common.ProcessMessageCommand(commands); + string[] commands = Common.SplitWindowMessageCommand(commandProperty); + Common.ProcessWindowMessageCommand(commands); break; } + case Common.XmlTagTcpMsg: + { + string[] commands = Common.SplitTcpMessageCommand(commandProperty); + Common.ProcessTcpMessageCommand(commands); + break; + } + case Common.XmlTagKeys: { Common.ProcessKeyCommand(commandProperty); @@ -973,10 +980,10 @@ string[] commands = Common.SplitSerialCommand(command.Substring(Common.CmdPrefixSerial.Length)); Common.ProcessSerialCommand(commands); } - else if (command.StartsWith(Common.CmdPrefixMessage)) // Message Command + else if (command.StartsWith(Common.CmdPrefixWindowMsg)) // Message Command { - string[] commands = Common.SplitMessageCommand(command.Substring(Common.CmdPrefixMessage.Length)); - Common.ProcessMessageCommand(commands); + string[] commands = Common.SplitWindowMessageCommand(command.Substring(Common.CmdPrefixWindowMsg.Length)); + Common.ProcessWindowMessageCommand(commands); } else if (command.StartsWith(Common.CmdPrefixKeys)) // Keystroke Command { Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server ... [truncated message content] |
From: <ro...@us...> - 2007-06-30 16:55:43
|
Revision: 657 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=657&view=rev Author: ronilse Date: 2007-06-30 09:55:40 -0700 (Sat, 30 Jun 2007) Log Message: ----------- Added updated(to recent MP SVN) Motorola Serial Cable Tuner original made by Michael Hansen Added Paths: ----------- trunk/plugins/MotorolaSerialCableTuner/ trunk/plugins/MotorolaSerialCableTuner/AssemblyInfo.cs trunk/plugins/MotorolaSerialCableTuner/FormSetup.cs trunk/plugins/MotorolaSerialCableTuner/FormSetup.resx trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj.user trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.sln trunk/plugins/MotorolaSerialCableTuner/SerialCableTuner.cs trunk/plugins/MotorolaSerialCableTuner/Settings.cs trunk/plugins/MotorolaSerialCableTuner/bin/ trunk/plugins/MotorolaSerialCableTuner/lib/ trunk/plugins/MotorolaSerialCableTuner/lib/SerialPort.dll trunk/plugins/MotorolaSerialCableTuner/obj/ Added: trunk/plugins/MotorolaSerialCableTuner/AssemblyInfo.cs =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/AssemblyInfo.cs 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// 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("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// 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.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\<configuration>. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] Added: trunk/plugins/MotorolaSerialCableTuner/FormSetup.cs =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/FormSetup.cs (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/FormSetup.cs 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,152 @@ +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +namespace MotorolaSerialCableTuner +{ + /// <summary> + /// Summary description for FormSetup. + /// </summary> + public class FormSetup : System.Windows.Forms.Form + { + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.NumericUpDown numericUpDownComPort; + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.Container components = null; + + public int ComPort + { + get { return((int)numericUpDownComPort.Value); } + set { numericUpDownComPort.Value = value; } + } + + public FormSetup() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + /// <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.label1 = new System.Windows.Forms.Label(); + this.numericUpDownComPort = new System.Windows.Forms.NumericUpDown(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownComPort)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(8, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(224, 24); + this.label1.TabIndex = 0; + this.label1.Text = "Please select the COM port number to use"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // numericUpDownComPort + // + this.numericUpDownComPort.Location = new System.Drawing.Point(240, 8); + this.numericUpDownComPort.Maximum = new System.Decimal(new int[] { + 4, + 0, + 0, + 0}); + this.numericUpDownComPort.Minimum = new System.Decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownComPort.Name = "numericUpDownComPort"; + this.numericUpDownComPort.Size = new System.Drawing.Size(56, 20); + this.numericUpDownComPort.TabIndex = 1; + this.numericUpDownComPort.Value = new System.Decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // buttonCancel + // + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.buttonCancel.Location = new System.Drawing.Point(220, 48); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.TabIndex = 2; + this.buttonCancel.Text = "&Cancel"; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOK + // + this.buttonOK.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.buttonOK.Location = new System.Drawing.Point(128, 48); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.TabIndex = 3; + this.buttonOK.Text = "&OK"; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // FormSetup + // + this.AcceptButton = this.buttonOK; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(306, 88); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.numericUpDownComPort); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "FormSetup"; + this.Text = "Motorola Serial Cable Tuner Setup"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownComPort)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + private void buttonOK_Click(object sender, System.EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void buttonCancel_Click(object sender, System.EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + } +} Added: trunk/plugins/MotorolaSerialCableTuner/FormSetup.resx =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/FormSetup.resx (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/FormSetup.resx 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 1.3 + + 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">1.3</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1">this is my long string</data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + [base64 mime encoded serialized .NET Framework object] + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + [base64 mime encoded string representing a byte array form of the .NET Framework object] + </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 forserialized 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.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:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <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" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </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>1.3</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="numericUpDownComPort.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="numericUpDownComPort.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="numericUpDownComPort.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="buttonCancel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="buttonCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="buttonCancel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="buttonOK.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="buttonOK.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="buttonOK.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> + <data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>(Default)</value> + </data> + <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>False</value> + </data> + <data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>8, 8</value> + </data> + <data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </data> + <data name="$this.Name"> + <value>FormSetup</value> + </data> + <data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>80</value> + </data> + <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </data> + <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>Private</value> + </data> +</root> \ No newline at end of file Added: trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,129 @@ +<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>{EB44A3DE-D853-44D6-94D1-FB652F865A96}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ApplicationIcon> + </ApplicationIcon> + <AssemblyKeyContainerName> + </AssemblyKeyContainerName> + <AssemblyName>MotorolaSerialCableTuner</AssemblyName> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + <DefaultClientScript>JScript</DefaultClientScript> + <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> + <DefaultTargetSchema>IE50</DefaultTargetSchema> + <DelaySign>false</DelaySign> + <OutputType>Library</OutputType> + <RootNamespace>MotorolaSerialCableTuner</RootNamespace> + <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> + <StartupObject> + </StartupObject> + <FileUpgradeFlags> + </FileUpgradeFlags> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>false</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>false</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> + <ItemGroup> + <Reference Include="Core, Version=0.2.2.9991, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\MP\trunk\mediaportal\xbmc\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="SerialPort"> + <Name>SerialPort</Name> + <HintPath>lib\SerialPort.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.Windows.Forms"> + <Name>System.Windows.Forms</Name> + </Reference> + <Reference Include="System.XML"> + <Name>System.XML</Name> + </Reference> + <Reference Include="Utils, Version=0.2.2.9991, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\..\MP\trunk\mediaportal\xbmc\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="FormSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="SerialCableTuner.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Settings.cs"> + <SubType>Code</SubType> + </Compile> + <EmbeddedResource Include="FormSetup.resx"> + <DependentUpon>FormSetup.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <PropertyGroup> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj.user =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj.user (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.csproj.user 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,57 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <LastOpenVersion>7.10.3077</LastOpenVersion> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ReferencePath>C:\Mike\Personal Projects\MediaPortal\mediaportal\Core\bin\Release\;C:\Mike\Personal Projects\MediaPortalPlugins\MotorolaSerialCableTuner\lib\</ReferencePath> + <CopyProjectDestinationFolder> + </CopyProjectDestinationFolder> + <CopyProjectUncPath> + </CopyProjectUncPath> + <CopyProjectOption>0</CopyProjectOption> + <ProjectView>ProjectFiles</ProjectView> + <ProjectTrust>0</ProjectTrust> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>true</StartWithIE> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>true</StartWithIE> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.sln =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.sln (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/MotorolaSerialCableTuner.sln 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C# Express 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MotorolaSerialCableTuner", "MotorolaSerialCableTuner.csproj", "{EB44A3DE-D853-44D6-94D1-FB652F865A96}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EB44A3DE-D853-44D6-94D1-FB652F865A96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB44A3DE-D853-44D6-94D1-FB652F865A96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB44A3DE-D853-44D6-94D1-FB652F865A96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB44A3DE-D853-44D6-94D1-FB652F865A96}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/MotorolaSerialCableTuner/SerialCableTuner.cs =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/SerialCableTuner.cs (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/SerialCableTuner.cs 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,217 @@ +using System; +using System.Windows.Forms; +using System.Threading; +using System.Collections; + +//Serial Port library +using SerialPort; + +//Media Portal +using MediaPortal.GUI.Library; + +namespace MotorolaSerialCableTuner +{ + /// <summary> + /// Summary description for SerialCableTuner. + /// </summary> + public class SerialCableTuner : IPlugin, ISetupForm + { + public static int WindowID = 9274; + + private Rs232 port = new Rs232(); + private string version = "1.0"; + private Settings settings = new Settings(); + + private Hashtable channels = new Hashtable(); + private byte[] enter = new byte[] { 0x11, 0x36, 0xEC }; + private byte[] footer = new byte[] { 0x10, 0x03 }; + private byte[] header = new byte[] { 0x10, 0x70, 0x00, 0x02, 0x03, 0x40, 0xC8, 0x27, 0x10, + 0x03, 0x10, 0x78, 0x00, 0x03, 0x03, 0x40, 0x00, 0x68, 0x96, 0x10, 0x03, 0x10, + 0x78, 0x00, 0x04, 0x10, 0x40, 0x22 }; + + public SerialCableTuner() + { + //Do nothing + } + + #region IPlugin Members + + public void Start() + { + Log.Info("Starting Motorola Serial Cable Tuner version {0}", version); + + //Setup channel codes + channels[0] = new byte[] { 0x00, 0x37, 0xE4 }; + channels[1] = new byte[] { 0x01, 0x26, 0x6D }; + channels[2] = new byte[] { 0x02, 0x14, 0xF6 }; + channels[3] = new byte[] { 0x03, 0x05, 0x7F }; + channels[4] = new byte[] { 0x04, 0x71, 0xC0 }; + channels[5] = new byte[] { 0x05, 0x60, 0x49 }; + channels[6] = new byte[] { 0x06, 0x52, 0xD2 }; + channels[7] = new byte[] { 0x07, 0x43, 0x5B }; + channels[8] = new byte[] { 0x08, 0xBB, 0xAC }; + channels[9] = new byte[] { 0x09, 0xAA, 0x25 }; + + //Load settings and setup serial port + settings.Load(); + + try + { + port.Port = settings.ComPort; + port.BaudRate = 9600; + port.StopBit = Rs232.DataStopBit.StopBit_1; + port.Open(); + } + catch + { + Log.Error("Failed to initialize serial port {0}. The port may not be available at this time", settings.ComPort); + } + + //Attach event listener + GUIWindowManager.Receivers += new SendMessageHandler(OnThreadMessage); + } + + public void Stop() + { + try + { + port.Close(); + port = null; + } + catch + { + //Do nothing + } + + Log.Info("Stopping Motorola Serial Cable Tuner version {0}", version); + } + + #endregion + + #region ISetupForm Members + + public bool CanEnable() + { + return(true); + } + + public string Description() + { + return("Serial Cable Tuner for the Motorola Digital Cable Box"); + } + + public bool DefaultEnabled() + { + // TODO: Add SerialCableTuner.DefaultEnabled implementation + return false; + } + + public int GetWindowId() + { + return(SerialCableTuner.WindowID); + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + // TODO: Add SerialCableTuner.GetHome implementation + strButtonText = null; + strButtonImage = null; + strButtonImageFocus = null; + strPictureImage = null; + return false; + } + + public string Author() + { + return("Michael Hansen"); + } + + public string PluginName() + { + return("Motorola Serial Cable Tuner"); + } + + public bool HasSetup() + { + return(true); + } + + public void ShowPlugin() + { + FormSetup setupForm = new FormSetup(); + setupForm.ComPort = settings.ComPort; + + if (setupForm.ShowDialog() == DialogResult.OK) + { + settings.ComPort = setupForm.ComPort; + settings.Save(); + } + } + + #endregion + + private void OnThreadMessage(GUIMessage message) + { + switch(message.Message) + { + case GUIMessage.MessageType.GUI_MSG_TUNE_EXTERNAL_CHANNEL: + int channelNum = int.Parse(message.Label); + ChangeChannel(channelNum); + break; + } + } + + #region Channel Changing Procedures + + private void ChangeChannel(int channelNum) + { + Log.Info("Changing channel to {0}", channelNum); + + if (port.IsOpen) + { + try + { //Extract channel digits + string digits = channelNum.ToString(); + + while(digits.Length != 3) + { + digits = "0" + digits; + } + + //Write each digit in turn + foreach(char digitChar in digits) + { + int digit = int.Parse(digitChar.ToString()); + WriteCode( (byte[])channels[digit] ); + } + + WriteCode(enter); + } + catch(Exception ex) + { + Log.Error("Failed to change the channel: {0}", ex.Message); + } + } + else + { + Log.Error("Serial port is not open"); + } + } + + private void WriteCode(byte[] buffer) + { + port.Write(header); + port.Write(buffer); + port.Write(footer); + + Delay(); + } + + private void Delay() + { + Thread.Sleep(500); + } + + #endregion + } +} Added: trunk/plugins/MotorolaSerialCableTuner/Settings.cs =================================================================== --- trunk/plugins/MotorolaSerialCableTuner/Settings.cs (rev 0) +++ trunk/plugins/MotorolaSerialCableTuner/Settings.cs 2007-06-30 16:55:40 UTC (rev 657) @@ -0,0 +1,42 @@ +using System; +using MediaPortal.GUI.Library; +using MediaPortal.Util; +using MediaPortal.Configuration; + +namespace MotorolaSerialCableTuner +{ + /// <summary> + /// Summary description for Settings. + /// </summary> + public class Settings + { + private int comPort = 1; + + public int ComPort + { + get { return(comPort); } + set { comPort = value; } + } + + public Settings() + { + //Do nothing + } + + public void Load() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + int comPort = xmlreader.GetValueAsInt("MotorolaSerialCableTuner", "ComPort", 1); + } + } + + public void Save() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("MotorolaSerialCableTuner", "ComPort", comPort); + } + } + } +} Added: trunk/plugins/MotorolaSerialCableTuner/lib/SerialPort.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MotorolaSerialCableTuner/lib/SerialPort.dll ___________________________________________________________________ Name: 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: <an...@us...> - 2007-07-01 14:32:12
|
Revision: 661 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=661&view=rev Author: and-81 Date: 2007-07-01 07:32:00 -0700 (Sun, 01 Jul 2007) Log Message: ----------- Plays RAR files, but needs a lot of improvement Added Paths: ----------- trunk/plugins/RarPlayer/ trunk/plugins/RarPlayer/AssemblyInfo.cs trunk/plugins/RarPlayer/RarPlayer Plugin.csproj trunk/plugins/RarPlayer/RarPlayer.cs trunk/plugins/RarPlayer/ReadMe.txt Added: trunk/plugins/RarPlayer/AssemblyInfo.cs =================================================================== --- trunk/plugins/RarPlayer/AssemblyInfo.cs (rev 0) +++ trunk/plugins/RarPlayer/AssemblyInfo.cs 2007-07-01 14:32:00 UTC (rev 661) @@ -0,0 +1,63 @@ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Permissions; + +// +// 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("RarPlayer Plugin")] +[assembly: AssemblyDescription("Decompresses RAR files for playback")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("MediaPortal")] +[assembly: AssemblyCopyright("Aaron Dinnage")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// 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.2.0")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\<setupForm>. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] +[assembly: ComVisibleAttribute(false)] +[assembly: AssemblyFileVersionAttribute("1.0.2.0")] Added: trunk/plugins/RarPlayer/RarPlayer Plugin.csproj =================================================================== --- trunk/plugins/RarPlayer/RarPlayer Plugin.csproj (rev 0) +++ trunk/plugins/RarPlayer/RarPlayer Plugin.csproj 2007-07-01 14:32:00 UTC (rev 661) @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="utf-8"?> +<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>{88520E4C-5C49-478A-8AFA-959B45075922}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MediaPortal.Plugins</RootNamespace> + <AssemblyName>RarPlayer</AssemblyName> + <StartupObject> + </StartupObject> + <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>false</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants> + </DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <UseVSHostingProcess>false</UseVSHostingProcess> + </PropertyGroup> + <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> + --> + <ItemGroup> + <Compile Include="AssemblyInfo.cs" /> + <Compile Include="RarPlayer.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="Core, Version=0.2.2.9991, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal 0.2.3.0\Core.DLL</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=0.2.2.9991, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal 0.2.3.0\Utils.DLL</HintPath> + <Private>False</Private> + </Reference> + </ItemGroup> + <PropertyGroup> + <PostBuildEvent>copy "*.*" "\MediaPortal Development\Plugin Releases\RarPlayer Plugin\Release\"</PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/RarPlayer/RarPlayer.cs =================================================================== --- trunk/plugins/RarPlayer/RarPlayer.cs (rev 0) +++ trunk/plugins/RarPlayer/RarPlayer.cs 2007-07-01 14:32:00 UTC (rev 661) @@ -0,0 +1,117 @@ +using System; +using System.IO; +using System.Diagnostics; + +using MediaPortal.Player; +using MediaPortal.GUI.Library; +using MediaPortal.Util; + +namespace MediaPortal.Plugins +{ + + public class RarPlayerPlugin : IExternalPlayer, ISetupForm + { + + #region Variables + + string _currentPlayedFile = null; + + #endregion Variables + + #region IExternalPlayer Members + + public override string AuthorName { get { return "and-81"; } } + public override string[] GetAllSupportedExtensions() { return new string[] { ".rar" }; } + public override string PlayerName { get { return "RarPlayer"; } } + public override bool SupportsFile(string filename) { return filename.EndsWith(".rar", StringComparison.InvariantCultureIgnoreCase); } + public override string VersionNumber { get { return "1.0.3.2"; } } + + #endregion IExternalPlayer Members + + #region ISetupForm Members + + public new bool CanEnable() { return true; } + public new bool DefaultEnabled() { return true; } + public override string Description() { return "Decompresses RAR files for playback"; } + public new bool HasSetup() { return false; } + public override void ShowPlugin() { } + + #endregion + + #region IPlayer Members + + public override bool Play(string strFile) + { + string tempFolder = Path.GetTempPath(); + + UnRar(strFile, tempFolder); + + string movieFilename = Path.Combine(tempFolder, Path.GetFileNameWithoutExtension(strFile)); + + if (File.Exists(movieFilename)) + { + _currentPlayedFile = movieFilename; + GUIWindowManager.Receivers += new SendMessageHandler(GUIWindowManager_Receivers); + + PlayFile(movieFilename); + } + + return false; + } + + #endregion IPlayer Members + + #region Implementation + + void GUIWindowManager_Receivers(GUIMessage message) + { + if (message.Message == GUIMessage.MessageType.GUI_MSG_PLAYBACK_STOPPED) + { + if (!String.IsNullOrEmpty(_currentPlayedFile)) + { + Log.Info("RarPlayer: Deleting file {0}", _currentPlayedFile); + + File.Delete(_currentPlayedFile); + + _currentPlayedFile = null; + } + + GUIWindowManager.Receivers -= new SendMessageHandler(GUIWindowManager_Receivers); + } + } + + void UnRar(string filename, string outputFolder) + { + Log.Info("RarPlayer: UnRar file {0}", filename); + + string arguments = String.Format("e \"{0}\" -y -ep -o+ -- \"{1}\"", filename, outputFolder); + + Process process = new Process(); + process.StartInfo.FileName = "UnRAR.exe"; + process.StartInfo.WorkingDirectory = "."; + process.StartInfo.Arguments = arguments; + process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + process.StartInfo.CreateNoWindow = true; + process.StartInfo.UseShellExecute = false; + + process.Start(); + + process.WaitForExit(); + } + + void PlayFile(string movieFilename) + { + Log.Info("RarPlayer: Play file {0}", movieFilename); + + GUIMessage message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAY_FILE, 0, 0, 0, 0, 0, null); + message.Label = movieFilename; + + GUIGraphicsContext.ResetLastActivity(); + GUIWindowManager.SendThreadMessage(message); + } + + #endregion Implementation + + } + +} Added: trunk/plugins/RarPlayer/ReadMe.txt =================================================================== --- trunk/plugins/RarPlayer/ReadMe.txt (rev 0) +++ trunk/plugins/RarPlayer/ReadMe.txt 2007-07-01 14:32:00 UTC (rev 661) @@ -0,0 +1,45 @@ +RarPlayer plugin +----------------------- +by and-81 + +This is a simple plugin that extracts a RAR file to a temporary location +for playback in MediaPortal. + +This is not a perfect solution. It does not play the file from within the +archive, it temporarily extracts it. It requires particular file naming +to work. + +I can improve it, but I don't really want to because I don't use RAR files. + +I am willing to make changes and improvements, but I'd prefer someone else +picked up the source code and made their own improvements. + +Source code is located in MediaPortal's plugin SVN. + + +Details: +===================== + +Here is an example of how the RAR file must be named: + +Movie.avi.rar + +With the file inside to play named "Movie.avi". + +I know this is a silly restriction, and I'll try to fix it later, but for +now you'll just have to deal with it. + + + +Installation: +===================== + +Copy RarPlayer.dll to "Team MediaPortal\MediaPortal\Plugins\ExternalPlayers\". +Copy UnRar.exe to "Team MediaPortal\MediaPortal\". +Go to MediaPortal Configuration and add ".rar" to the list of movie file extensions. + + + +Good luck, + + - Aaron. \ 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: <an...@us...> - 2007-07-01 14:56:28
|
Revision: 662 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=662&view=rev Author: and-81 Date: 2007-07-01 07:56:20 -0700 (Sun, 01 Jul 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/TVServerMonitor/ trunk/plugins/TVServerMonitor/FullStatus.Designer.cs trunk/plugins/TVServerMonitor/FullStatus.cs trunk/plugins/TVServerMonitor/FullStatus.resx trunk/plugins/TVServerMonitor/Graphics/ trunk/plugins/TVServerMonitor/Graphics/Blue.png trunk/plugins/TVServerMonitor/Graphics/Error.png trunk/plugins/TVServerMonitor/Graphics/Green.png trunk/plugins/TVServerMonitor/Graphics/Red.png trunk/plugins/TVServerMonitor/Graphics/Yellow.png trunk/plugins/TVServerMonitor/Icon.ico trunk/plugins/TVServerMonitor/Program.cs trunk/plugins/TVServerMonitor/Properties/ trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs trunk/plugins/TVServerMonitor/Properties/Resources.Designer.cs trunk/plugins/TVServerMonitor/Properties/Resources.resx trunk/plugins/TVServerMonitor/SetupForm.Designer.cs trunk/plugins/TVServerMonitor/SetupForm.cs trunk/plugins/TVServerMonitor/SetupForm.resx trunk/plugins/TVServerMonitor/TVServerMonitor.cs trunk/plugins/TVServerMonitor/TVServerMonitor.csproj trunk/plugins/TVServerMonitor/TvServerConnection.cs Added: trunk/plugins/TVServerMonitor/FullStatus.Designer.cs =================================================================== --- trunk/plugins/TVServerMonitor/FullStatus.Designer.cs (rev 0) +++ trunk/plugins/TVServerMonitor/FullStatus.Designer.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,137 @@ +namespace TVServerMonitor +{ + partial class FullStatus + { + /// <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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FullStatus)); + this.gridCards = new SourceGrid.Grid(); + this.buttonUpdate = new System.Windows.Forms.Button(); + this.labelTVCards = new System.Windows.Forms.Label(); + this.labelStreams = new System.Windows.Forms.Label(); + this.gridStreams = new SourceGrid.Grid(); + this.SuspendLayout(); + // + // gridCards + // + this.gridCards.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gridCards.AutoStretchColumnsToFitWidth = true; + this.gridCards.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.gridCards.ColumnsCount = 5; + this.gridCards.FixedRows = 1; + this.gridCards.Location = new System.Drawing.Point(0, 24); + this.gridCards.Name = "gridCards"; + this.gridCards.OptimizeMode = SourceGrid.CellOptimizeMode.ForRows; + this.gridCards.SelectionMode = SourceGrid.GridSelectionMode.Row; + this.gridCards.Size = new System.Drawing.Size(592, 112); + this.gridCards.TabIndex = 0; + this.gridCards.TabStop = true; + this.gridCards.ToolTipText = ""; + // + // buttonUpdate + // + this.buttonUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUpdate.Location = new System.Drawing.Point(512, 280); + this.buttonUpdate.Name = "buttonUpdate"; + this.buttonUpdate.Size = new System.Drawing.Size(72, 24); + this.buttonUpdate.TabIndex = 4; + this.buttonUpdate.Text = "&Update"; + this.buttonUpdate.UseVisualStyleBackColor = true; + this.buttonUpdate.Click += new System.EventHandler(this.buttonUpdate_Click); + // + // labelTVCards + // + this.labelTVCards.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelTVCards.Location = new System.Drawing.Point(0, 0); + this.labelTVCards.Name = "labelTVCards"; + this.labelTVCards.Size = new System.Drawing.Size(592, 24); + this.labelTVCards.TabIndex = 5; + this.labelTVCards.Text = "TV cards:"; + this.labelTVCards.TextAlign = System.Drawing.ContentAlignment.BottomLeft; + // + // labelStreams + // + this.labelStreams.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelStreams.Location = new System.Drawing.Point(0, 136); + this.labelStreams.Name = "labelStreams"; + this.labelStreams.Size = new System.Drawing.Size(592, 24); + this.labelStreams.TabIndex = 7; + this.labelStreams.Text = "TV stream clients:"; + this.labelStreams.TextAlign = System.Drawing.ContentAlignment.BottomLeft; + // + // gridStreams + // + this.gridStreams.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.gridStreams.AutoStretchColumnsToFitWidth = true; + this.gridStreams.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.gridStreams.ColumnsCount = 5; + this.gridStreams.FixedRows = 1; + this.gridStreams.Location = new System.Drawing.Point(0, 160); + this.gridStreams.Name = "gridStreams"; + this.gridStreams.OptimizeMode = SourceGrid.CellOptimizeMode.ForRows; + this.gridStreams.SelectionMode = SourceGrid.GridSelectionMode.Row; + this.gridStreams.Size = new System.Drawing.Size(592, 112); + this.gridStreams.TabIndex = 6; + this.gridStreams.TabStop = true; + this.gridStreams.ToolTipText = ""; + // + // FullStatus + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(592, 314); + this.Controls.Add(this.labelStreams); + this.Controls.Add(this.gridStreams); + this.Controls.Add(this.labelTVCards); + this.Controls.Add(this.buttonUpdate); + this.Controls.Add(this.gridCards); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(444, 260); + this.Name = "FullStatus"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "TV Server Monitor"; + this.Load += new System.EventHandler(this.FullStatus_Load); + this.ResumeLayout(false); + + } + + #endregion + + private SourceGrid.Grid gridCards; + private System.Windows.Forms.Button buttonUpdate; + private System.Windows.Forms.Label labelTVCards; + private System.Windows.Forms.Label labelStreams; + private SourceGrid.Grid gridStreams; + } +} \ No newline at end of file Added: trunk/plugins/TVServerMonitor/FullStatus.cs =================================================================== --- trunk/plugins/TVServerMonitor/FullStatus.cs (rev 0) +++ trunk/plugins/TVServerMonitor/FullStatus.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace TVServerMonitor +{ + + public partial class FullStatus : Form + { + + public FullStatus() + { + InitializeComponent(); + } + + private void FullStatus_Load(object sender, EventArgs e) + { + CreateGrids(); + UpdateGrids(); + } + + void CreateGrids() + { + gridCards.Columns.SetCount(5); + + gridCards.Columns[0].AutoSizeMode = SourceGrid.AutoSizeMode.None; + gridCards.Columns[0].Width = 24; + gridCards.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.None; + gridCards.Columns[1].Width = 24; + gridCards.Columns[2].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridCards.Columns[3].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridCards.Columns[4].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize | SourceGrid.AutoSizeMode.EnableStretch; + gridCards.AutoStretchColumnsToFitWidth = true; + + gridCards.Rows.Insert(0); + + SourceGrid.Cells.ColumnHeader headerCell; + + headerCell = new SourceGrid.Cells.ColumnHeader(""); + headerCell.RemoveController(headerCell.FindController(typeof(SourceGrid.Cells.Controllers.SortableHeader))); + gridCards[0, 0] = headerCell; + + gridCards[0, 1] = new SourceGrid.Cells.ColumnHeader("ID"); + gridCards[0, 2] = new SourceGrid.Cells.ColumnHeader("Name"); + gridCards[0, 3] = new SourceGrid.Cells.ColumnHeader("Status"); + gridCards[0, 4] = new SourceGrid.Cells.ColumnHeader("Details"); + gridCards.FixedRows = 1; + + + gridStreams.Columns.SetCount(5); + + gridStreams.Columns[0].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridStreams.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridStreams.Columns[2].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridStreams.Columns[3].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize; + gridStreams.Columns[4].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize | SourceGrid.AutoSizeMode.EnableStretch; + gridStreams.AutoStretchColumnsToFitWidth = true; + + gridStreams.Rows.Insert(0); + + gridStreams[0, 0] = new SourceGrid.Cells.ColumnHeader("Stream"); + gridStreams[0, 1] = new SourceGrid.Cells.ColumnHeader("IP Address"); + gridStreams[0, 2] = new SourceGrid.Cells.ColumnHeader("Active"); + gridStreams[0, 3] = new SourceGrid.Cells.ColumnHeader("Connected Since"); + gridStreams[0, 4] = new SourceGrid.Cells.ColumnHeader("Description"); + gridStreams.FixedRows = 1; + + } + void UpdateGrids() + { + if (Program.TvServer == null) + return; + + if (gridCards.RowsCount > 1) + gridCards.Rows.RemoveRange(1, gridCards.RowsCount - 1); + + int row = 1; + string cardStatus; + string cardDetails; + foreach (int cardID in Program.TvServer.CardIDs) + { + Program.TvServer.GetCardStatus(cardID, out cardStatus, out cardDetails); + + if (cardStatus == "Disabled" && Program.IgnoreDisabled) + continue; + + gridCards.Rows.Insert(row); + gridCards[row, 0] = new SourceGrid.Cells.Image(); + gridCards[row, 0].Editor.EnableEdit = false; + switch (cardStatus) + { + case "Scanning": gridCards[row, 0].Value = Properties.Resources.Yellow; break; + case "Grabbing EPG": gridCards[row, 0].Value = Properties.Resources.Yellow; break; + case "Recording": gridCards[row, 0].Value = Properties.Resources.Red; break; + case "Timeshifting": gridCards[row, 0].Value = Properties.Resources.Green; break; + case "Idle": gridCards[row, 0].Value = Properties.Resources.Blue; break; + + default: gridCards[row, 0].Value = Properties.Resources.Error; break; + } + gridCards[row, 1] = new SourceGrid.Cells.Cell(cardID); + gridCards[row, 2] = new SourceGrid.Cells.Cell(Program.TvServer.Instance.CardName(cardID)); + gridCards[row, 3] = new SourceGrid.Cells.Cell(cardStatus); + gridCards[row, 4] = new SourceGrid.Cells.Cell(cardDetails); + + row++; + } + gridCards.AutoSizeCells(); + + if (gridStreams.RowsCount > 1) + gridStreams.Rows.RemoveRange(1, gridStreams.RowsCount - 1); + + List<TvLibrary.Streaming.RtspClient> streamingClients = Program.TvServer.StreamingClients; + + if (streamingClients.Count > 0) + { + for (int index = 0; index < streamingClients.Count; index++) + { + gridStreams.Rows.Insert(index + 1); + + gridStreams[index + 1, 0] = new SourceGrid.Cells.Cell(streamingClients[index].StreamName); + gridStreams[index + 1, 1] = new SourceGrid.Cells.Cell(streamingClients[index].IpAdress); + gridStreams[index + 1, 2] = new SourceGrid.Cells.Cell(streamingClients[index].IsActive); + gridStreams[index + 1, 3] = new SourceGrid.Cells.Cell(streamingClients[index].DateTimeStarted); + gridStreams[index + 1, 4] = new SourceGrid.Cells.Cell(streamingClients[index].Description); + } + } + + gridStreams.AutoSizeCells(); + } + + private void buttonUpdate_Click(object sender, EventArgs e) + { + UpdateGrids(); + } + + } + +} Added: trunk/plugins/TVServerMonitor/FullStatus.resx =================================================================== --- trunk/plugins/TVServerMonitor/FullStatus.resx (rev 0) +++ trunk/plugins/TVServerMonitor/FullStatus.resx 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,277 @@ +<?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="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAQAICAAAAEACACoCAAARgAAABAQAAABAAgAaAUAAO4IAAAgIAAAAQAgAKgQAABWDgAAEBAAAAEA + IABoBAAA/h4AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQKAAcJ + CQAKCgsACgsWAAcbFQAVFhUAORsIACMaEQA1HRgANiQdAA4OKQAeHigAFBQwABokIQAWOTYAJCQkACQk + NgAnPDoAOTk8AEYeCgBPIw0ARiYTAFInEgAMVCMALkIvACNEOwA4STkAPGc/AH5LGgAWFkMAOTlFACQq + WwA7PFsAEjZmACcnZQA8PGwAIz11AAtFSAAWSEgAIklAADZPTgAoT1AANlhYAB99TQAoYk8AMmJOAChM + ZgAiRXUAPF17AC9vYAA+YGoAO3xuAC9gcAAsfHEANn1xAE9PTwBKV1cAU1xcAGZ3XABFRXQAWWZjAFR+ + awBSeHYAYWFhAGZmcQB4eHgAm0EOAIZDFgCvRhIAjlIqAJRQIQCOTD4AiF01AKdeNQCJYD0AuWA0AMhV + HQDAYC8AwmY4ANpvOwCOXEsAkV5QAIliRACQZkQAn3NRALJpRAC4dU8AuHVQAMdySADVdEMAE5cdAA+m + DwAYpBsAGbgXABCUIgAnlSoAKIU5ACmePAAkoyQAOqk6AD+8PQAoxiYAKNIlADLaLwA7yTgAQN8+AEDo + PgAJg0QAI4xBACGVRwArjFIAN4NYACufUQA9ml8AP6FBADeFZgA2gHAALqBjACqtfQBHmkkAQ6VMAEyx + SgBQvk8ASaxTAFS/UwBHjWcAaIRoAGKcYwBuvXMAUspYAFXbVABL5UsAafBnAG7pcQCzg14Am5R8AKSC + dQC0lXQA5IdZABcclwAPIYcAJiyPACk7jgA3NosAIiKaADQzmgAMDasAGRqnABMUvgAkJqgANzemAD4/ + rAAxMrQAPUiGAEdHnABLTJsAVlqTAFFRmgBfX5sAR0ipAFdXpgBaWqEARkWwAFBPtABbW7IAaWmlAGVl + qgBqaqoAeHirAG9vsQBudL0AHh7JACsqzwA8PMsAJCTVADc20AArK+AAODjnAEREwQBYV8wAWFjMAFZW + 2QBqac0AcnLEAERE6ABRUeMASUnyAFZV8wBra+oAdXXlAGRk8wB3d/YAHY2FADSXjgA5sYkANLeVAFuQ + jwBVm5MAUaiBAE2imgBQpJwASbmXAG+jmQB5p58AS6ioAFO3twB1vroAJ8vKAC7S0QA629sAWMvLAEjT + xABF3dsAU9nYAGfi3gBi5uUAjJiYAIqKtQCUoqIAjbGxAMqljQDWqIwAy6qUAOapiQCL0Y0Ah+mGAJfy + lgC5zbkAtuu2AL7wvQDryrkA8c++APLQvgDA8b8AmJjGAIKD0ACCgd4AkJHTAIaG7wCSk+cAh4f3AJaW + 9wCgoOwAsbHnAL6+9wCB2csAlNDPANjz2QDz5NwA1dXtAMDz8gD36+QA5OT6AOT39wD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAqZ+fqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApqKnqqqnoqYAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJ6luOzu7uy4pZ4AAAAAAAAAAAAAAAAAAAAAAAAAAACbpLft8PPz8O23 + pJsAAAAAAAAAAAAAAAAAAAAAAAAAmpi0vu/y8/Py7761mKIAAAAAAAAAAAAAAAAAAAAAADOOs7a9wPHy + 8vHxvbazkgAAAAAAAAAAAAAAAAAAAAB4L5auur/AwKGepcC/uq6WqAAAAAAAAAAAAABAAAAAeHollrC5 + vL+gAQAEtry5sJacAAAAAAAAAAAAAEAAAGFkfSWUrbK7vCABHgCSu7KtlJsAAAAAAAAAAAAAOcxwYGWD + NZSssbKuBAuXAR6ysayUqAAAAAAAAAAAAAASxm9jaYN0jJWvuZAAIL0NAZmvlYwAAAAAAAAAAAAAAA/O + bWNphIIwk7DtEQGn8jwAJLCTnAAAAAAAAAAAAD0AJ9NtXWZqhHKNs9oDEfT16wMMo5EAAAAAAAAAAAAA + GgAn1nZdZmhrhHSPIQBB/f36EwAjAAAAAAAAAAAAiVQaACfWw1teZ4SFhn4EAZ3u7qsgAB8AAAAAAAAA + AABLVigAJ9XUblxp4uPjgAAOMSUiJioGBgAAAAAAAAAAU0pZKAAn0tXEX3vl6uYbAH/q5X1gADgAAAAA + AAAAAIlGTFoaACbR0tV3YuH45AYG5PjhcwAAAAETAAAAAAAAUkdOWhsAJtDV2NfKcXwcABmBeWEAAAAA + EAMAAAAAAAAJBxUXCAAFJysrK8X2xwUAGGwsAAAAAABAAEAAAAAAAAAAAAAAAAAAAAAAOvvcAg7NwcsA + AAAAAAADEAAAAAAACgcUFRcWDg8pOjrZ/ts6P8LGAAAAAAAAAEJAAAAAAACJREVNUIuHO3XJz/f3z8g2 + ywAAAAAAAAAAAAAAAAAAAABJQ0/g4ODeiD40NzItLgAAAAAAAAAAAAAAAAAAAAAAAAAdV+fo6Ojp6Ojn + WB0AAAAAAAAAAAAAAAAAAAAAAAAAAIlJ3fn5/Pz5+d1JiQAAAAAAAAAAAAAAAAAAAAAAAAAAAABLVYrf + 34pVSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJUUhIUYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + ///////////w////wD///4Af//8AD//+AAf//AAH//gAA/5wAAP+YAAD/gAAA/4AAAf+AAAH/AAAD/wA + AB/wAAAf8AAAH+AAAJ/AAAHPwAADz8AAB8fAAAfnwAAP58AAH//gAH//8AD///AA///8A////gf///// + ////////KAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDQ8AGw8JAAwY + FQAVFxEAGBgeACUQBQAlEwkAEiEUABAjHwASJB8ADw8rABUVPQAfKycAFyQvACUlJQAiKioAMzMzADE/ + PwBmOSQAHBxLACUkRAAzNEcALi5aABNcXAAsdUIAOHBtADBvcwBLTUwAT09PAE5aTQBKVFQAtFAcAIxH + JQC+aT0AlWNBAJppTQChclwAn3RhAKJ4aQCifWwAJZc3ACCeNwAjviEAMNEuACynSgAtrW0ARJFbAEGT + XQBMp04AV6RYAEuDeABdjXwAcohxAFGzfABJwUgARNRCAEbTTgBswXQAc+xyALWUdQDikWgAITSJADg4 + ogAwMKwALUqOAEZfjwBGRpEAQ0KaAFNmigBRYZYAQECiAEZGpQBUVKAAWlqlAGZmpAB1dbMAfHy0AB4e + xAArK9cAS0vFAExMxQBBQdkAbm7IAEND6QBhYesAeHjtAGRk9AAhj44AOIuKADCTkgA7l5AAWJeOAESc + nABRoZcAXqGaAD3UygCCmZYAiIigAIaGtQC257cAtei2AOTGtQCRkd4AlJT4ALHPzwDz288A89zPAMPD + 6QDS/7EA5P/RAP///wAAAAAAJi8AAEBQAABacAAAdJAAAI6wAACpzwAAwvAAANH/EQDY/zEA3v9RAOP/ + cQDp/5EA7/+xAPb/0QD///8AAAAAAC8mAABQQQAAcFsAAJB0AACwjgAAz6kAAPDDAAD/0hEA/9gxAP/d + UQD/5HEA/+qRAP/wsQD/9tEA////AAAAAAAvFAAAUCIAAHAwAACQPgAAsE0AAM9bAADwaQAA/3kRAP+K + MQD/nVEA/69xAP/BkQD/0rEA/+XRAP///wAAAAAALwMAAFAEAABwBgAAkAkAALAKAADPDAAA8A4AAP8g + EgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAAKwCwADYAzwBAAPAA + SQD/EVoA/zFwAP9RhgD/cZwA/5GyAP+xyAD/0d8A////AAAAAAAvACAAUAA2AHAATACQAGIAsAB4AM8A + jgDwAKQA/xGzAP8xvgD/UccA/3HRAP+R3AD/seUA/9HwAP///wAAAAAALAAvAEsAUABpAHAAhwCQAKUA + sADEAM8A4QDwAPAR/wDyMf8A9FH/APZx/wD3kf8A+bH/APvR/wD///8AAAAAABsALwAtAFAAPwBwAFIA + kABjALAAdgDPAIgA8ACZEf8ApjH/ALRR/wDCcf8Az5H/ANyx/wDr0f8A////AAAAAAAIAC8ADgBQABUA + cAAbAJAAIQCwACYAzwAsAPAAPhH/AFgx/wBxUf8AjHH/AKaR/wC/sf8A2tH/AP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAY0tLYwAAAAAAAAAAAAAASlNnZ1NKAAAAAAAAAAAARVBWaGhWUU0AAAAAAAAA + Mj5SV0MXVVJHAAAAAB1hLzc+T1QLDEBPPwAAAAAcGik4G05IFUkUTkwAAAAADVkqLDlBFmJsBUQAAAAA + JAlaLis7OgFGQg4AAAAAJyIKWGAtZTUeZDEAEQAAABMhBBhdXjYIGTAAAA8AAAACBgcDEB9pElsAAAAA + AAAAJiA9PDRfXDMAAAAAAAAAAAAjZmprZiMAAAAAAAAAAAAAACglJSgAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//8AAP+HAAD/AwAA/gEAAPwBAADgAQAA4AEAAOADAADABwAAgAsAAIAbAACAPwAAgH8AAMD/ + AADh/wAA//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAFUGAABgJRUVamweHnOYJSV3uiUld7oeHnOYFRVqbAAAYCUAAFUGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABMCgsLZlwpKX+yTEyY6l9fp/RubrH8bm6x/F9fqPRLS5jqKSl/sgsL + ZlwAAFUJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQkTE252NTWP3lhYsPpycsT+g4PQ/5CQ1v+QkNb/goPQ/3Jy + xP5YWLD6NTWP3hMTbnYAAFUJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgHCAhmXCwsjt5PTrX9amrN/4KC3/+Tk+f/oKDt/6Cg + 7P+Sk+f/goHe/2ppzv9PTrT9LCyO3ggIZlwAAFUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUABgAtNkUVI23TPT6s/VhXzP9xcOL/hobv/5SV + 9f+fn/j/n5/4/5SU9f+Ghu//cHHi/1hYzP89Pq76FhZ8sgAAYCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAoLYxBcFkBL0yUrj/1AQMH/V1fc/21u + 7v9/f/b/jIz4/5KS+/+Tkvv/i4v5/4CA9v9ubu3/V1fb/0BAwf4jIpXqBwdqbAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAGEAAAA8AAAAAAAAAAAAVQAJD24VdjGNM94nS2X9Jiqi/zw8 + y/9RUeP/ZWXx/3R09/94eO7/V1em/1FRmv9bW7X/dHT2/2Vl8f9SUuP/PDzL/yIjpPQKCnKYAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAA/wAAAJ4AAAAAAEgABwhjDVwpiireS7FJ/SI8 + cf8gIqv/MzTQ/0ZG5/9XV/P/Y2P3/0lJq/8DAwb/AAAA/wwMHP9UVdT/V1bz/0dG5/80NND/IB+s/AgJ + dbsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAD/AAEAnwBbURkDXzxwGHgp5jqp + Ov5UyFP/IkBz/xobrP8rKtD/Ojvl/0lJ8v9UU/X/IyNg/wQECv8aGkX/AAAB/zMzl/9JSfL/Ojrl/ysq + z/8aGaz8BgZ1uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAP8ACwqzHGtdliV4 + Sekmkyv/P7w9/1fXVv8vYHD/FRmg/x4eyf8rK+D/Nzfu/zs60f8JCRz/Dg4p/zc3pv8DAwr/EhJB/zU1 + 5v8rK+H/Hh7J/w8PofQDA3KYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjAAAA/wkh + Ht9Jl5H1K4xS/iagKf89xzv/VN9S/z2Jaf8SHJL/FBW+/yEh2P9BQOz/NzaL/wAAAf8rK2D/Zmbl/xQU + MP8FBQ3/MTK0/yEh2P8TE77+CQiU6gAAZ2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM + C3EAAAD/Fzc1+1O3t/8jjEH/Iqcg/zbLNP9K4Un/UMxd/yJLd/8LDqr/ODjQ/35+4/8kJD3/AwMG/2Zl + qv+UlPf/RUV0/wAAAP88PGz/OTjQ/wkJq/oCAnyyAABgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABOAAANDB8brgAAAP8ZQkH/WMvL/yOQQ/8cpxv/Lsks/0DfPv9P5k//PZpf/w8hh/9MTcL/ioq1/woK + Df8lJTD/sbHn/76+9/+YmMb/DQ0Q/x4eKP9FRLD9AgKM3gAAY1wAAFUGAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWgAAH18hEXMbOTD0AAAA/xlISP9X19f/LqBj/xWhG/8jwyD/Mtov/0DoPv9N507/MYFj/yk7 + jv87PFv/AAAA/2Zmcf/k5Pr/5OT6/9XV7f82Nj3/AgID/xUVYukAAG52AABVCQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFUAAB5lKRWNh1o16yBFPP8AAAD/F0tK/1Db2v85sYn/E5cd/xm4F/8o0iX/SeZH/2nw + Z/9u6XH/R41n/wYLEv8EBQn/VlqT/5CS0f+QktH/bnS9/yQqW/4AAAD/AAAQxgAAOw0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABOAAANXRwNc4NTK+uyaUT+IklA/wAAAP8US0v/Rtva/0jTxP8gm0v/D6YP/z7K + O/+H6Yb/lvGU/5nzmP9inGP/AgMC/xYjIv88XXv/JT55/xI2Zv8JQkv9AzEy2QABAuwAAADoAAAAKwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkEADlvOxnKpl0z/MdySP8jSkD/AAAA/xFKSv872Nj/Rt/c/zS3 + lf8QlCL/UL5P/7Xrtf+/8b7/vfC8/z1OPf8AAAD/aIRo/8Dxv/+367f/U79S/QmICt4AXwhfAAEAsAAA + AP8AAAB1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXh4KjIhJH/K5YDT/03VG/yZHPf8AAAD/DUhI/y7S + 0f85397/Q97b/yqtff8pnjz/i9KO/9jz2f+5zbn/FhcV/xYXFf+6zbn/2PPZ/4zQjf4klCbfAGwGdgBV + AAkAAABZAAAA+wAAAMMAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAABmHgu2k04e+8BgL//Xc0D/M0U1/wAA + AP8KRET/J8vK/0Xd3P9i5uX/Z+Le/0m5l/8rn1H/SaxT/zxnP/8AAAD/LkIv/269c/9DpUz/DHkg5gBj + BVwAVQAJAAAAAAAAABkAAADbAAAA9QAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAPCMIA+k8HAr/SSMQ/1Ip + Ff8jGhH/AAAA/wMYF/8YS0v/M1dX/zhZWf85Wlr/W5CP/4HZy/9RqIH/DB8T/wABAP8MVCP/CYNE/wpx + PekAXThwAFUABgAAAAAAAAAAAAAAAQAAAJwAAAD/AAAAnAAAAAEAAAAAAAAAAAAAAAAAAABhAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9JXFz/wPPy/42xsf8HCQn/GiEh/0uo + qP8UiYH1C2RTlgBYThoAAAAAAAAAAAAAAAAAAAAAAAAARAAAAPUAAADbAAAAHQAAAAAAAAAAAAAAAAAA + ADweCQLjNRkG/UYeCv9PIw3/UyYQ/0MpF/8fKiD/Ezg0/zZPTv9TXFz/VV1d/4yYmP/k9/f/lKKi/1Nc + XP9SeHb+LJOK9QtsXawAW1E4AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAhwAAAJ0AAAAyAAAAAAAA + AAAAAAAAAAAAAFsbA4yAOQryr0YS/8hVHf/abzv/5IdZ/7ODXv9md1z/NoBw/1CknP91vrv/lNDP/5TQ + z/91vrr/TaKa/x1zZ+4LZFOWAFtROAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWQQAOWQxBsqaPwz8wmY4/+Kigf/prY7/6K6O/9aojP+blHz/VH5r/zt8 + bv82fXH/L29g/yhiT/4kV0LuGUQ7fgBbURkAVQADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOAAANVhgCc3Q8B+u4dU/+6MW0/+7Nvf/vzr3/8s++//LQ + vv/wz77/7s29/+jFtf+4dVD+dTwI61YaBHNOAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAeXCADjYFSI+vKpY398eHZ//Xn + 3//36+T/9+vk//Xn3//x4dn/yqWN/YFSI+tcIAONVQAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaAAAfVhoCc2g4 + D8qaa0fxtJRy+8uqlP7LqpT+s5Ry+5prR/FoOA3KVhgCc1UAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABOAAANWQQAOVgbAY1iHAS2bRcFxG0XBcRiHAS2WBsBjVkEADlOAAANAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/////////////4Af//8AD//+AAf//AAD//gAA//wAAP8YAAD/EAAA/wAAAP8AAAD/AAAA/wA + AAP4AAAD8AAAB+AAAA/AAAAPwAAAD8AAAAfAAACHgAABg4AAA8OAAAPDwAAP/8AAD//AAD//4AB///AA + ///4Af////////////8oAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwNXGyIieItERJDQRESQ0CIieIsDA1oaAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJWGzAwkMttbcj9kZHe/5GR3v9tbcj9MDCPywIC + WhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1YFGxQuX7pLS8X+eHjt/5SU+P+UlPj/eXnt/0tL + xf0QD3aLAAAAAAAAAAAAAAAAAAAAAAAAAHkAAAA2AlUEGy2NLssjNIj+QUHZ/2Rk9P9GRpH/Li5a/2Fh + 6/9CQtn/FRWN0AAAAAAAAAAAAAAAAAAAAAAAAACwBzQugBl4Ns9JwUj+IDWL/ysr1/9DQ+n/Dw8r/xUV + Pf8wMKz/KyvX/wwMjdAAAAAAAAAAAAAAAAAAAAAAAAMCtC9pZvMllzf+RNRC/zBvc/8eH8T/Rkal/yUk + RP9UVKD/HBxL/x0dxP0CAnWLAAAAAAAAAAAAAAAAVwsFJwkWEug4i4r/IJ43/zDRLv9G007/LUqO/zM0 + R/+IiKD/w8Pp/xgYHv8XFoPOAABZGgAAAAAAAAAAVQkEJ4hPLtgQIx//MJOS/y2tbf8jviH/c+xy/2zB + dP8IDQ//UWGW/0Zfj/4JFyPwAAASeQAAAAAAAAAAAAAAAGspEKC+aT3+EiQf/yGPjv891Mr/LKdK/7Xo + tv9yiHH/TlpN/7bnt/4gkSLMAC0CXAAAAMwAAAADAAAAAAAAAA9WJA3mjEcl/xUXEf8TXFz/RJyc/1Gh + l/9Rs3z/EiEU/yx1Qv8WezjPAFkBGgAAAAYAAADaAAAAOAAAAAAAAAAnFAgC9yUQBf8lEwn/DBgV/yIq + Kv9KVFT/sc/P/zE/P/4ljITlAkU8OgAAAAAAAAAAAAAAcwAAAHEAAAAAAAAAAGYiBKC0UBz+4pFo/7WU + df9djXz/XqGa/1iXjv4pbF/WAls9OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTCAAngkgf2OTG + tf7z28//89zP/+TGtv6CSB/YUwgBJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQI + ACdsMBWgk1xD3JNcQ9xsMBWgUwgAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + nEH/A5xB/gGcQfwBnEHgAZxB4AGcQeABnEHAAZxBgAOcQYABnEEAAZxBABmcQYA/nEGAf5xBwP+cQf// + nEE= +</value> + </data> +</root> \ No newline at end of file Added: trunk/plugins/TVServerMonitor/Graphics/Blue.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Graphics/Blue.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Graphics/Error.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Graphics/Error.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Graphics/Green.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Graphics/Green.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Graphics/Red.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Graphics/Red.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Graphics/Yellow.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Graphics/Yellow.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Icon.ico =================================================================== (Binary files differ) Property changes on: trunk/plugins/TVServerMonitor/Icon.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/TVServerMonitor/Program.cs =================================================================== --- trunk/plugins/TVServerMonitor/Program.cs (rev 0) +++ trunk/plugins/TVServerMonitor/Program.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,285 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using System.Xml; + +using TvControl; + +namespace TVServerMonitor +{ + + static class Program + { + + #region Constants + + public static readonly string ConfigurationFile = "TVServerMonitor.xml"; + + #endregion Constants + + #region Variables + + static NotifyIcon _notifyIcon; + + static TvServerConnection _tvServerConnection; + static string _serverHost; + static bool _ignoreDisabled; + + static Thread _updateThread; + + #endregion Variables + + #region Properties + + internal static TvServerConnection TvServer + { + get { return _tvServerConnection; } + set { _tvServerConnection = value; } + } + + internal static string ServerHost + { + get { return _serverHost; } + set { _serverHost = value; } + } + + internal static bool IgnoreDisabled + { + get { return _ignoreDisabled; } + set { _ignoreDisabled = value; } + } + + #endregion Properties + + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + LoadSettings(); + + Connect(); + + ContextMenu context = new ContextMenu(); + context.MenuItems.Add("Status", new EventHandler(ShowStatus)); + context.MenuItems.Add("Setup", new EventHandler(ShowSetup)); + context.MenuItems.Add("Quit", new EventHandler(Quit)); + + _notifyIcon = new NotifyIcon(); + _notifyIcon.ContextMenu = context; + _notifyIcon.DoubleClick += new EventHandler(NotifyIcon_DoubleClick); + + StartUpdateThread(); + _notifyIcon.Visible = true; + + Application.Run(); + + StopUpdateThread(); + _notifyIcon.Visible = false; + + _notifyIcon.Dispose(); + } + + #region Event Handlers + + static void NotifyIcon_DoubleClick(object sender, EventArgs e) + { + ShowStatus(null, null); + } + + static void ShowStatus(object sender, EventArgs e) + { + _notifyIcon.Visible = false; + StopUpdateThread(); + + FullStatus statusWindow = new FullStatus(); + statusWindow.ShowDialog(); + + StartUpdateThread(); + _notifyIcon.Visible = true; + } + + static void ShowSetup(object sender, EventArgs e) + { + _notifyIcon.Visible = false; + StopUpdateThread(); + + SetupForm setupForm = new SetupForm(); + setupForm.ShowDialog(); + + Connect(); + + StartUpdateThread(); + _notifyIcon.Visible = true; + } + + static void Quit(object sender, EventArgs e) + { + Application.Exit(); + } + + #endregion Event Handlers + + static void StartUpdateThread() + { + _updateThread = new Thread(new ThreadStart(UpdateThread)); + _updateThread.Start(); + } + static void StopUpdateThread() + { + if (_updateThread != null) + _updateThread.Abort(); + } + static void UpdateThread() + { + while (true) + { + UpdateIcon(); + Thread.Sleep(5000); + } + } + + static void UpdateIcon() + { + if (_tvServerConnection == null) + { + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Error.GetHicon()); + _notifyIcon.Text = "TV Server - No connection"; + return; + } + + int highestStatus = 0; // 0 Disabled, 1 Idle, 2 Scanning/Grabbing, 3 Timeshifting, 4 Recording + string cardStatus; + string cardDetails; + + StringBuilder status = new StringBuilder(); + status.Append("TV Server"); + + foreach (int cardID in _tvServerConnection.CardIDs) + { + _tvServerConnection.GetCardStatus(cardID, out cardStatus, out cardDetails); + + switch (cardStatus) + { + case "Disabled": + if (_ignoreDisabled) + continue; + break; + + case "Idle": + if (highestStatus < 1) + highestStatus = 1; + break; + + case "Scanning": + case "Grabbing EPG": + if (highestStatus < 2) + highestStatus = 2; + break; + + case "Timeshifting": + if (highestStatus < 3) + highestStatus = 3; + break; + + case "Recording": + if (highestStatus < 4) + highestStatus = 4; + break; + } + + status.AppendFormat("\r\n{0} {1}", cardID, cardStatus); + } + + string statusString = status.ToString(); + if (statusString.Length >= 64) + statusString = statusString.Substring(0, 60) + "..."; + + _notifyIcon.Text = statusString; + + switch (highestStatus) + { + case 0: + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Error.GetHicon()); + break; + + case 1: + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Blue.GetHicon()); + break; + + case 2: + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Yellow.GetHicon()); + break; + + case 3: + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Green.GetHicon()); + break; + + case 4: + _notifyIcon.Icon = Icon.FromHandle(Properties.Resources.Red.GetHicon()); + break; + } + + } + + internal static void LoadSettings() + { + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(ConfigurationFile); + + _serverHost = doc.DocumentElement.Attributes["ServerHost"].Value; + _ignoreDisabled = bool.Parse(doc.DocumentElement.Attributes["IgnoreDisabled"].Value); + } + catch (Exception) + { + _serverHost = "127.0.0.1"; + _ignoreDisabled = true; + } + } + internal static void SaveSettings() + { + try + { + XmlTextWriter writer = new XmlTextWriter(ConfigurationFile, System.Text.Encoding.UTF8); + writer.Formatting = Formatting.Indented; + writer.Indentation = 1; + writer.IndentChar = (char)9; + writer.WriteStartDocument(true); + writer.WriteStartElement("settings"); // <settings> + + writer.WriteAttributeString("ServerHost", _serverHost); + writer.WriteAttributeString("IgnoreDisabled", _ignoreDisabled.ToString()); + + writer.WriteEndElement(); // </settings> + writer.WriteEndDocument(); + writer.Close(); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + internal static void Connect() + { + try + { + _tvServerConnection = new TvServerConnection(_serverHost); + } + catch (Exception ex) + { + _tvServerConnection = null; + MessageBox.Show(ex.Message, "TV Server Monitor Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + } + +} Added: trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/TVServerMonitor/Properties/AssemblyInfo.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,71 @@ +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Permissions; + +// +// 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("TV Server Monitor")] +[assembly: AssemblyDescription("Application for monitoring MediaPortal TV Server")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("and-81")] +[assembly: AssemblyProduct("MediaPortal TV Server")] +[assembly: AssemblyCopyright("Aaron Dinnage")] +[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)] + +// +// 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.3.0")] +[assembly: AssemblyFileVersionAttribute("1.0.3.0")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\<configuration>. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] + +[assembly: CLSCompliant(false)] + +//[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] Added: trunk/plugins/TVServerMonitor/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/TVServerMonitor/Properties/Resources.Designer.cs (rev 0) +++ trunk/plugins/TVServerMonitor/Properties/Resources.Designer.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace TVServerMonitor.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("TVServerMonitor.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 Blue { + get { + object obj = ResourceManager.GetObject("Blue", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Error { + get { + object obj = ResourceManager.GetObject("Error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Green { + get { + object obj = ResourceManager.GetObject("Green", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Red { + get { + object obj = ResourceManager.GetObject("Red", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Yellow { + get { + object obj = ResourceManager.GetObject("Yellow", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} Added: trunk/plugins/TVServerMonitor/Properties/Resources.resx =================================================================== --- trunk/plugins/TVServerMonitor/Properties/Resources.resx (rev 0) +++ trunk/plugins/TVServerMonitor/Properties/Resources.resx 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,136 @@ +<?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="Red" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Graphics\Red.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Yellow" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Graphics\Yellow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Blue" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Graphics\Blue.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Green" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Graphics\Green.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Error" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\graphics\error.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/TVServerMonitor/SetupForm.Designer.cs =================================================================== --- trunk/plugins/TVServerMonitor/SetupForm.Designer.cs (rev 0) +++ trunk/plugins/TVServerMonitor/SetupForm.Designer.cs 2007-07-01 14:56:20 UTC (rev 662) @@ -0,0 +1,117 @@ +namespace TVServerMonitor +{ + partial class SetupForm + { + /// <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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetupForm)); + this.textBoxHost = new System.Windows.Forms.TextBox(); + this.labelServer = new System.Windows.Forms.Label(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.checkBoxIgnoreDisabled = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // textBoxHost + // + this.textBoxHost.Location = new System.Drawing.Point(112, 8); + this.textBoxHost.Name = "textBoxHost"; + this.textBoxHost.Size = new System.Drawing.Size(112, 20); + this.textBoxHost.TabIndex = 5; + this.textBoxHost.Text = "localhost"; + // + // labelServer + // + this.labelServer.Location = new System.Drawing.Point(8, 8); + this.labelServer.Name = "labelServer"; + this.labelServer.Size = new System.Drawing.Size(104, 20); + this.labelServer.TabIndex = 4; + th... [truncated message content] |
From: <gre...@us...> - 2007-07-19 00:31:15
|
Revision: 745 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=745&view=rev Author: gregmac45 Date: 2007-07-18 17:30:46 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/SabNzbControl/ trunk/plugins/SabNzbControl/AssemblyInfo.cs trunk/plugins/SabNzbControl/GUISabNzb.cs trunk/plugins/SabNzbControl/MyClass.cs trunk/plugins/SabNzbControl/Runner/ trunk/plugins/SabNzbControl/Runner/AssemblyInfo.cs trunk/plugins/SabNzbControl/Runner/Main.cs trunk/plugins/SabNzbControl/Runner/Runner.csproj trunk/plugins/SabNzbControl/Runner/Runner.sln trunk/plugins/SabNzbControl/SabNzbControl.csproj trunk/plugins/SabNzbControl/SabNzbControl.sln trunk/plugins/SabNzbControl/bin/ trunk/plugins/SabNzbControl/bin/Debug/ trunk/plugins/SabNzbControl/bin/Debug/Core.DLL trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.dll trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.pdb trunk/plugins/SabNzbControl/bin/Debug/Utils.DLL trunk/plugins/SabNzbControl/obj/ trunk/plugins/SabNzbControl/obj/Debug/ trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.dll trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.pdb trunk/plugins/SabNzbControl/obj/SabNzbControl.csproj.FileList.txt Added: trunk/plugins/SabNzbControl/AssemblyInfo.cs =================================================================== --- trunk/plugins/SabNzbControl/AssemblyInfo.cs (rev 0) +++ trunk/plugins/SabNzbControl/AssemblyInfo.cs 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Information about this assembly is defined by the following +// attributes. +// +// change them to the information which is associated with the assembly +// you compile. + +[assembly: AssemblyTitle("SabNzbControl")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SabNzbControl")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// This sets the default COM visibility of types in the assembly to invisible. +// If you need to expose a type to COM, use [ComVisible(true)] on that type. +[assembly: ComVisible(false)] + +// The assembly version has following format : +// +// Major.Minor.Build.Revision +// +// You can specify all values by your own or you can build default build and revision +// numbers with the '*' character (the default): + +[assembly: AssemblyVersion("1.0.*")] Added: trunk/plugins/SabNzbControl/GUISabNzb.cs =================================================================== --- trunk/plugins/SabNzbControl/GUISabNzb.cs (rev 0) +++ trunk/plugins/SabNzbControl/GUISabNzb.cs 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,721 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using System.Xml.XPath; +using System.ComponentModel; +using System.Net; +using System.Web; +using System.IO; +using System.Text.RegularExpressions; +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +//using MediaPortal.Utils.Services; +using MediaPortal.Utils; +using MediaPortal.Player; + +namespace OnlineVideos +{ + public class GUIOnlineVideos : GUIWindow, ISetupForm + { + [SkinControlAttribute(2)] + protected GUIButtonControl btnViewAs = null; + [SkinControlAttribute(50)] + protected GUIFacadeControl facadeView = null; + //private ILog moLog; + protected View currentView = View.List; + private Dictionary<String, Site> moSiteList = new Dictionary<String, Site>(); + private String msSelectedSiteId; + private String msSelectedCategory; + private State _CurrentState = State.home; + private String msDownloadDir = Directory.GetCurrentDirectory()+"\\"; + private List<VideoInfo> moCurrentVideoList = new List<VideoInfo>(); + private String []msFilterArray; + private String msThumbLocation; + private int miSelectedIndex = 0; + private bool mbPlayFullscreen = true; + public enum State + { + home = 0, + categories = 1, + videos = 2 + } + public enum View + { + List = 0, + Icons = 1, + LargeIcons = 2, + FilmStrip = 3 + } + public class Site + { + public String name; + public String id; + public string username; + public string password; + public bool confirmAge; + public Dictionary<String, RssLink> RssList = new Dictionary<String, RssLink>(); + } + public class RssLink + { + public String name; + public Boolean isDynamic = false; + public String url; + } + public class VideoInfo + { + public String Title; + public String Description; + public String VideoUrl; + public String ImageUrl; + public int Length; + public String Tags; + public Object Other; + public VideoInfo() + { + Length = -1; + } + } + + public GUIOnlineVideos() + { + //ServiceProvider loServices = GlobalServiceProvider.Instance; + //moLog = loServices.Get<ILog>(); + } + public string PluginName() + { + + return "Online Videos"; + + } + + // Returns the description of the plugin is shown in the plugin menu + + public string Description() + { + + return "Youtube Plugin"; + + } + + // Returns the author of the plugin which is shown in the plugin menu + + public string Author() + { + + return "GregMac45"; + + } + + // 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 ID of windowplugin belonging to this setup + + public int GetWindowId() + { + + return GetID; + + } + + // Indicates if plugin is enabled by default; + + public bool DefaultEnabled() + { + + return true; + + } + + // indicates if a plugin has its own setup screen + + public bool HasSetup() + { + + return false; + + } + public override int GetID + { + get + { + return 4755; + } + set + { + } + } + + public override bool Init() + { + LoadSettings(); + return Load(GUIGraphicsContext.Skin + @"\myonlinevideos.xml"); + + } + 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; + } + public bool ShowDefaultHome() + { + return true; + } + protected override void OnPageLoad() + { + if (_CurrentState == State.home) + { + //_log.Info("onPageLoad state home"); + GUIPropertyManager.SetProperty("#header.label","Online Videos"); + DisplaySites(); + } + else if (_CurrentState == State.categories) + { + GUIPropertyManager.SetProperty("#header.label", moSiteList[msSelectedSiteId].name); + DisplayCategories(); + } + else + { + GUIPropertyManager.SetProperty("#header.label", moSiteList[msSelectedSiteId].name); + DisplayVideos(false); + facadeView.SelectedListItemIndex = miSelectedIndex; + } + base.OnPageLoad(); + } + protected override void OnShowContextMenu() + { + int liSelected = facadeView.SelectedListItemIndex-1; + if (liSelected < 0 || msSelectedSiteId=="99" || _CurrentState!=State.videos) + { + return; + } + + GUIListItem loListItem = facadeView.SelectedListItem; + GUIDialogMenu dlgSel = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); + dlgSel.Reset(); + if (dlgSel != null) + { + dlgSel.Add("Save"); // Save + if(msSelectedSiteId=="1"){ + dlgSel.Add("Related Videos"); // Related Videos + } + if(isSiteFavoriteEnabled()){ + if(msSelectedCategory.StartsWith("fav:") ==false){ + dlgSel.Add("Add to favorites"); + } + else{ + dlgSel.Add("Remove from favorites"); + } + } + } + dlgSel.DoModal(GetID); + int liSelectedIdx = dlgSel.SelectedId; + Log.Info("Selected id {0}",liSelectedIdx); + switch(liSelectedIdx){ + case 1: + SaveVideo(loListItem); + break; + case 2: + Log.Info("Getting related videos on {0} using tags:{1}",SiteUtilFactory.getSiteUtil(msSelectedSiteId),moCurrentVideoList[liSelected].Tags); + SiteUtilBase site = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + Log.Info("VideoList before:"); + foreach(VideoInfo video in moCurrentVideoList){ + Log.Info(video.Title); + } + moCurrentVideoList = site.getRelatedVideos(moCurrentVideoList[liSelected].Tags); + Log.Info("VideoList after:"); + foreach(VideoInfo video in moCurrentVideoList){ + Log.Info(video.Title); + } + DisplayVideos(false); + break; + case 3: + SiteUtilBase siteUtil = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + Site loSite = moSiteList [msSelectedSiteId]; + if(msSelectedCategory.StartsWith("fav:") == false){ + siteUtil.addFavorite(moCurrentVideoList[liSelected].VideoUrl,loSite.username,loSite.password); + }else{ + siteUtil.removeFavorite(moCurrentVideoList[liSelected].VideoUrl,loSite.username,loSite.password); + } + break; + } + base.OnShowContextMenu(); + } + public override void OnAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_PREVIOUS_MENU) + { + if (_CurrentState == State.videos) + { + DisplayCategories(); + _CurrentState = State.categories; + return; + } + else if (_CurrentState == State.categories) + { + DisplaySites(); + _CurrentState = State.home; + return; + } + } + base.OnAction(action); + } + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + Log.Info("Onclicked action type:{0}",actionType); + if (control == facadeView) + { + + if (_CurrentState == State.home) + { + msSelectedSiteId = facadeView.SelectedListItem.Path; + GUIPropertyManager.SetProperty("#header.label", moSiteList[msSelectedSiteId].name); + DisplayCategories(); + _CurrentState = State.categories; + } + else if (_CurrentState == State.categories) + { + if (facadeView.SelectedListItemIndex == 0) + { + DisplaySites(); + _CurrentState = State.home; + } + else + { + msSelectedCategory = facadeView.SelectedListItem.Path; + DisplayVideos(true); + _CurrentState = State.videos; + } + } + else if (_CurrentState == State.videos) + { + ImageDownloader._stopDownload = true; + if (facadeView.SelectedListItemIndex == 0) + { + DisplayCategories(); + _CurrentState = State.categories; + } + else + { + miSelectedIndex = facadeView.SelectedListItemIndex; + //play the video + Play(moCurrentVideoList[facadeView.SelectedListItemIndex -1]); + } + } + } + else if (control == btnViewAs) + { + //bool shouldContinue = false; + //do + //{ + //shouldContinue = false; + switch (currentView) + { + case View.List: + currentView = View.Icons; + //if (!AllowView(CurrentView) || facadeView.ThumbnailView == null) + // shouldContinue = true; + //else + facadeView.View = GUIFacadeControl.ViewMode.SmallIcons; + break; + case View.Icons: + currentView = View.LargeIcons; + //if (!AllowView(CurrentView) || facadeView.ThumbnailView == null) + // shouldContinue = true; + //else + facadeView.View = GUIFacadeControl.ViewMode.LargeIcons; + //facadeView. + break; + case View.LargeIcons: + currentView = View.FilmStrip; + //if (!AllowView(CurrentView) || facadeView.FilmstripView == null) + // shouldContinue = true; + //else + facadeView.View = GUIFacadeControl.ViewMode.Filmstrip; + break; + case View.FilmStrip: + currentView = View.List; + //if (!AllowView(CurrentView) || facadeView.ListView == null) + // shouldContinue = true; + //else + facadeView.View = GUIFacadeControl.ViewMode.List; + break; + } + //} while (shouldContinue); + //SelectCurrentItem(); + GUIControl.FocusControl(GetID, controlId); + + string strLine = String.Empty; + View view = currentView; + switch (view) + { + case View.List: + strLine = GUILocalizeStrings.Get(101); + break; + case View.Icons: + strLine = GUILocalizeStrings.Get(100); + break; + case View.LargeIcons: + strLine = GUILocalizeStrings.Get(417); + break; + case View.FilmStrip: + strLine = GUILocalizeStrings.Get(733); + break; + } + GUIControl.SetControlLabel(GetID, btnViewAs.GetID, strLine); + + return; + }//if (control == btnViewAs) + base.OnClicked(controlId, control, actionType); + } + #region new methods + private void LoadSettings() + { + XmlDocument doc = new XmlDocument(); + try + { + doc.Load("OnlineVideoSettings.xml"); + XmlNode filter = doc.SelectSingleNode("//settings/filter"); + String lsFilter = filter.InnerText; + msFilterArray = lsFilter.Split(new char[] { ',' }); + if (msFilterArray.Length == 1 && msFilterArray[0] == "") + { + msFilterArray = null; + } + XmlNode thumbNode = doc.SelectSingleNode("//settings/thumbLocation"); + msThumbLocation = thumbNode.InnerText; + + //lsFilterArray + //Log.Write("filter value {0}",filter.InnerText); + + XmlNode root = doc.SelectSingleNode("//settings/sites/site"); + XmlNodeList nodeList; + nodeList = root.SelectNodes("//settings/sites/site"); + List<Site> loSiteList = new List<Site>(); + Site loSite; + XmlNodeList RssNodeList; + RssLink loRssData; + bool lbDonwloadDirSet = false; + foreach (XmlNode chileNode in nodeList) + { + loSite = new Site(); + + XmlNode node = chileNode.SelectSingleNode("name"); + loSite.name = node.InnerText; + + node = chileNode.SelectSingleNode("id"); + loSite.id = node.InnerText; + + node = chileNode.SelectSingleNode("user"); + if(node!=null) + loSite.username = node.InnerText; + + node = chileNode.SelectSingleNode("password"); + if(node!=null) + loSite.password = node.InnerText; + + node = chileNode.SelectSingleNode("confirmAge"); + if(node!=null) + loSite.confirmAge = node.InnerText == "yes"; + + //Console.WriteLine("site Node:{0}", loSite.ToString()); + RssNodeList = chileNode.SelectNodes("rss"); + foreach (XmlNode RssNode in RssNodeList) + { + loRssData = new RssLink(); + //node = chileNode.SelectSingleNode("d"); + + loRssData.name = RssNode.Attributes["name"].InnerText; + try{ + loRssData.isDynamic = RssNode.Attributes["dynamic"].InnerText.Equals("yes"); + Log.Info("Found a dynamic category for site {0}",loSite.name); + }catch(Exception){} + loRssData.url = RssNode.InnerText; + if (lbDonwloadDirSet==false && loSite.id == "99") + { + msDownloadDir = loRssData.url; + lbDonwloadDirSet = true; + } + //Console.WriteLine("rss Node:{0}", loRssData.ToString()); + loSite.RssList.Add(loRssData.name, loRssData); + } + moSiteList.Add(loSite.id, loSite); + } + } + catch (Exception e) + { + //moLog.Error(e); + Log.Error(e); + } + } + private void DisplaySites() + { + //facadeView.Clear(); + GUIControl.ClearControl(GetID, facadeView.GetID); + + GUIListItem loListItem; + foreach (Site loSite in moSiteList.Values) + { + loListItem = new GUIListItem(loSite.name); + loListItem.Path = loSite.id; + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + } + //GUIPropertyManager.SetProperty("#itemcount", facadeView.Count-1 + ""); + } + private void DisplayCategories() + { + // facadeView.Clear(); + GUIControl.ClearControl(GetID, facadeView.GetID); + + GUIListItem loListItem; + loListItem = new GUIListItem(".."); + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + Site loSite = moSiteList[msSelectedSiteId]; + SiteUtilBase loSiteUtil = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + foreach (RssLink loCat in loSite.RssList.Values) + { + if (loCat.isDynamic) + { + Log.Info("Looking for dynamic categories for {0}",loCat.name); + List<RssLink> loNewCatList= loSiteUtil.getDynamicCategories(loCat.url); + Log.Info("Found {0} dynamic categoties.", loNewCatList.Count); + foreach (RssLink loNewCat in loNewCatList) + { + loListItem = new GUIListItem(loNewCat.name); + loListItem.Path = loNewCat.url; + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + } + } + else + { + loListItem = new GUIListItem(loCat.name); + loListItem.Path = loCat.url; + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + } + } + //GUIPropertyManager.SetProperty("#itemcount", facadeView.Count-1 + ""); + //SiteUtilBase loSiteUtil = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + if (isSiteFavoriteEnabled()) + { + loListItem = new GUIListItem("Favorites"); + loListItem.Path = "fav:"+loSite.username; + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + //loSiteUtil.getSiteFavorites(); + } + } + private bool isSiteFavoriteEnabled(){ + Site loSite = moSiteList[msSelectedSiteId]; + SiteUtilBase loSiteUtil = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + return (loSiteUtil.isSiteFavoritesEnabled() && String.IsNullOrEmpty(loSite.username) == false); + } + + private void DisplayVideos(bool fbRefresh) + { + List<VideoInfo> loListItems; + GUIListItem loListItem; + GUIControl.ClearControl(GetID, facadeView.GetID); + loListItem = new GUIListItem(".."); + loListItem.IsFolder = true; + MediaPortal.Util.Utils.SetDefaultIcons(loListItem); + facadeView.Add(loListItem); + + if (fbRefresh) + { + SiteUtilBase loSiteUtil = SiteUtilFactory.getSiteUtil(msSelectedSiteId); + + if (msSelectedCategory.Contains("{0}")) + { + String lsSearchStr = String.Empty; + GetUserInputString(ref lsSearchStr); + if (FilterOut(lsSearchStr)) + { + return; + } + lsSearchStr = lsSearchStr.Replace(" ", "+"); + msSelectedCategory = String.Format(msSelectedCategory, lsSearchStr); + } + loListItems = loSiteUtil.getVideoList(msSelectedCategory); + moCurrentVideoList.Clear(); + } + else + { + loListItems = moCurrentVideoList; + } + //facadeView.Clear(); + + //GUIListItem loListItem; + List<String> loImageUrlList = new List<string>(); + + foreach (VideoInfo loVideoInfo in loListItems) + { + loVideoInfo.Description = cleanString(loVideoInfo.Description); + if (FilterOut(loVideoInfo.Title) || FilterOut(loVideoInfo.Description)) + { + continue; + } + loListItem = new GUIListItem(loVideoInfo.Title); + loListItem.Path = loVideoInfo.VideoUrl; + facadeView.Add(loListItem); + loImageUrlList.Add(loVideoInfo.ImageUrl); + if (fbRefresh) + { + moCurrentVideoList.Add(loVideoInfo); + } + } + //GUIPropertyManager.SetProperty("#itemcount", facadeView.Count-1 +""); + + + BackgroundWorker worker = new BackgroundWorker(); + Object[] loParms = new Object[4]; + loParms[0] = facadeView; + loParms[1] = loImageUrlList; + loParms[2] = miSelectedIndex+""; + loParms[3] = msThumbLocation; + + worker.DoWork += new DoWorkEventHandler(ImageDownloader.DownloadImages); + worker.RunWorkerAsync(loParms); + + using (WaitCursor cursor = new WaitCursor()) + { + while (ImageDownloader._imagesDone == false) + { + GUIWindowManager.Process(); + } + facadeView.SelectedListItemIndex = miSelectedIndex; + } + + + } + private bool GetUserInputString(ref string sString) + { + VirtualKeyboard keyBoard = (VirtualKeyboard)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_VIRTUAL_KEYBOARD); + keyBoard.Reset(); + keyBoard.IsSearchKeyboard = true; + keyBoard.Text = sString; + keyBoard.DoModal(GetID); // show it... + if (keyBoard.IsConfirmed) sString = keyBoard.Text; + return keyBoard.IsConfirmed; + } + private void Play(VideoInfo foListItem) + { + //foListItem. + Site loSite = moSiteList[msSelectedSiteId]; + String lsUrl = SiteUtilFactory.getSiteUtil(msSelectedSiteId).getUrl(foListItem,loSite); + if (mbPlayFullscreen) + { + g_Player.Play(lsUrl); + GUIGraphicsContext.IsFullScreenVideo = true; + GUIWindowManager.ActivateWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); + } + else + { + GUIWindowManager.ActivateWindow(4760); + String[] loParms = new String[2]; + loParms[0] = "1"; + loParms[1] = ""; + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_PLAYBACK_STARTED, 4760, 4750, 0, 0, 0, loParms); + msg.Label = moSiteList[msSelectedSiteId].name; + msg.Label2 = foListItem.Title; + //Log.Write("itemid = {0}", foListItem.ItemId); + //Log.Write("url = {0}", lsUrl); + msg.Label3 = foListItem.Description; + msg.Label4 = lsUrl; + + GUIWindowManager.SendThreadMessage(msg); + } + } + private void SaveVideo(GUIListItem foListItem) + { + String lsUrl = SiteUtilFactory.getSiteUtil(msSelectedSiteId).getUrl(foListItem.Path); + WebClient loClient = new WebClient(); + loClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); + loClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted); + String lsFileName = msDownloadDir+foListItem.Label; + loClient.DownloadFileAsync(new Uri(lsUrl), lsFileName + ".flv", foListItem.Label); + } + + private void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) + { + GUIDialogNotify loDlgNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + loDlgNotify.SetText(e.UserState+" Download Complete"); + loDlgNotify.DoModal(GetID); + } + private bool FilterOut(String fsStr) + { + if (fsStr == String.Empty) + { + return false; + } + if (msFilterArray != null) + { + foreach (String lsFilter in msFilterArray) + { + if (fsStr.IndexOf(lsFilter, StringComparison.OrdinalIgnoreCase) >= 0) + { + Log.Info("Filtering out:{0}\n based on filter:{1}", fsStr, lsFilter); + return true; + //return false; + } + } + + } + return false; + } + private String cleanString(String fsStr) + { + if (fsStr != null) + { + // Strip \n's + fsStr = Regex.Replace(fsStr, @"(\n|\r)", "", RegexOptions.Multiline); + + // Remove whitespace (double spaces) + fsStr = Regex.Replace(fsStr, @" +", "", RegexOptions.Multiline); + + // Remove + fsStr = Regex.Replace(fsStr, @" ", " ", RegexOptions.Multiline); + + + // Replace <br/> with \n + fsStr = Regex.Replace(fsStr, @"< *br */*>", "\n", RegexOptions.IgnoreCase & RegexOptions.Multiline); + + // Remove remaining HTML tags + fsStr = Regex.Replace(fsStr, @"<[^>]*>", "", RegexOptions.Multiline); + } + return fsStr; + } + #endregion + } +} Added: trunk/plugins/SabNzbControl/MyClass.cs =================================================================== --- trunk/plugins/SabNzbControl/MyClass.cs (rev 0) +++ trunk/plugins/SabNzbControl/MyClass.cs 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,418 @@ +/* + * Created by SharpDevelop. + * User: GZamor1 + * Date: 4/17/2007 + * Time: 10:04 AM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Net; +using System.Xml; +using System.IO; +using System.Text; +using System.Text.RegularExpressions; +using System.Collections.Generic; +using MediaPortal.GUI.Library; +//using MediaPortal.Dialogs; +using MediaPortal.Utils; + +namespace SabNzbControl +{ + /// <summary> + /// Description of MyClass. + /// </summary> + public class GUISabNzb : GUIWindow, ISetupForm + { + #region SkinControlAttributes + [SkinControlAttribute(2)] protected GUIButtonControl btnQueue = null; + [SkinControlAttribute(7)] protected GUIButtonControl btnHistory = null; + [SkinControlAttribute(8)] protected GUIButtonControl btnNewzbin = 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(39)] protected GUIButtonControl btnMyPlaylists = null; + */ + [SkinControlAttribute(50)] protected GUIFacadeControl facadeView = null; + #endregion + #region member variables + private String _SabNzbHost = String.Empty; + private String _SabNzbPort = String.Empty; + private String _SabNzbUser = String.Empty; + private String _SabNzbPass = String.Empty; + private String _NewzbinUser = String.Empty; + private String _NewzbinPass = String.Empty; + private String _NewzbinBaseUrl = "http://v3.newzbin.com"; + private String _NewzbinSearchUrl = "/search/query/?q={0}&area={1}&fpn=p&searchaction=go&areadone={1}&ss={2}&feed=rss"; + private String _NewzbinLoginUrl = "/account/login/"; + private String _AreaEverything = "-1"; + private String _SabNzbContext = "/sabnzbd/"; + private String _SabNzbQueueUrl = "queue/"; + private String _SabNzbHistoryUrl = "history/"; + private CookieCollection _SabLoginCookies; + private CookieCollection _NewzbinLoginCookies; + #endregion + public class NzbReport{ + public String title; + public String id; + public String url; + public String size; + public String moreInfoUrl; + public String nfoUrl; + + } + public class SabEntry{ + public String title; + public String option; + public String uid; + public String remain; + public String total; + public String eta; + } + + public string PluginName() + { + + return "SabNZB Controller"; + + } + + // Returns the description of the plugin is shown in the plugin menu + + public string Description() + { + + return "SabNzbd Controller Plugin"; + + } + + // Returns the author of the plugin which is shown in the plugin menu + + public string Author() + { + + return "GregMac45"; + + } + + // 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 ID of windowplugin belonging to this setup + + public int GetWindowId() + { + + return GetID; + + } + + // Indicates if plugin is enabled by default; + + public bool DefaultEnabled() + { + + return true; + + } + + // indicates if a plugin has its own setup screen + + public bool HasSetup() + { + + return false; + + } + public override int GetID + { + get + { + return 4756; + } + set + { + } + } + + public override bool Init() + { + LoadSettings(); + return Load(GUIGraphicsContext.Skin + @"\mysabnzb.xml"); + + } + 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; + } + public bool ShowDefaultHome() + { + return true; + } + protected override void OnPageLoad() + { + + } + protected override void OnShowContextMenu() + { + + } + public override void OnAction(Action action){ + + } + protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) + { + if(control == btnQueue){ + + } + + } + + #region user methods + private void LoadSettings(){ + XmlDocument doc = new XmlDocument(); + try + { + doc.Load("SabNZBControlSettings.xml"); + XmlNode node = doc.SelectSingleNode("//settings/sabnzb/host"); + _SabNzbHost = node.InnerText; + + node = doc.SelectSingleNode("//settings/sabnzb/user"); + _SabNzbUser = node.InnerText; + + node = doc.SelectSingleNode("//settings/sabnzb/password"); + _SabNzbPass = node.InnerText; + + node = doc.SelectSingleNode("//settings/sabnzb/port"); + _SabNzbPort = node.InnerText; + + node = doc.SelectSingleNode("//settings/newzbin/user"); + _NewzbinUser = node.InnerText; + node = doc.SelectSingleNode("//settings/newzbin/password"); + _NewzbinPass = node.InnerText; + + }catch (Exception e) + { + //moLog.Error(e); + Log.Error(e); + } + } + private void showQueue(){ + try{ + if(isLoggedInToSab() ==false){ + SabLogin(); + } + String url = BuildSabUrl(_SabNzbQueueUrl); + String html = getHtml(url,"","","",ref _SabLoginCookies); + List<SabEntry> queue = parseSabQueue(html); + + }catch(Exception e){ + + Log.Error(e); + + } + } + private List<SabEntry> parseSabQueue(String html){ + Regex regex = new Regex("<tr class=\"(odd|even)\">.*?<option value=\"change_.*?pp=(?<option>[0-9])\" selected>.*?<td><a href=\"\\./SAB(.*?)/\">(?<title>.*?)</td>.*?<td[^>]*?>(?<remain>.*?)/(?<total>.*?)</td>.*?<td>(?<eta>.*?)</td>.*?<td>(?<age>.*?)</td>.*?</tr>", RegexOptions.Singleline); + MatchCollection matches = regex.Matches(html); + SabEntry queueItem; + List<SabEntry>queueList = new List<SabEntry>(); + foreach(Match match in matches){ + queueItem = new SabEntry(); + queueItem.eta = match.Groups["eta"].Value; + queueItem.title = match.Groups["title"].Value; + queueItem.option = match.Groups["option"].Value; + queueItem.remain = match.Groups["remain"].Value; + queueItem.total = match.Groups["total"].Value; + queueItem.uid = match.Groups["uid"].Value; + queueList.Add(queueItem); + } + return queueList; + } + private void showHistory(){ + try{ + if(isLoggedInToSab() ==false){ + SabLogin(); + } + String url = BuildSabUrl(_SabNzbHistoryUrl); + getHtml(url,ref _SabLoginCookies); + + }catch(Exception e){ + + Log.Error(e); + + } + } + private void searchNewzbin(String area){ + //prompt for query string + String q = "test"; + + if(isLoggedInToNewzbin() ==false){ + NewzbinLogin(); + } + String url = _NewzbinBaseUrl+String.Format(_NewzbinSearchUrl,q,_AreaEverything); + + String rss = getHtml(url,ref _NewzbinLoginCookies); + + + } + private bool SabLogin(){ + if(String.IsNullOrEmpty(_SabNzbUser)){ + return true; + } + String url = BuildSabUrl(_SabNzbContext); + CookieCollection cookies = new CookieCollection(); + if(_SabLoginCookies!=null){ + cookies.Add(_SabLoginCookies); + } + String postData = ""; + String lsResult = getHtml(url,_SabNzbUser,_SabNzbPass,postData,ref cookies); + if(lsResult.IndexOf("<title>Login</title>")>-1){ + _SabLoginCookies = cookies; + return true; + } + return false; + + } + private bool NewzbinLogin(){ + return NewzbinLogin("/"); + } + private bool NewzbinLogin(String nextUrl){ + if(String.IsNullOrEmpty(_NewzbinUser) || String.IsNullOrEmpty(_NewzbinPass)){ + return false; + } + String url = _NewzbinBaseUrl+_NewzbinLoginUrl; + String Postdata = "username={0}&password={1}&ret_url={2}&Submit=Login"; + CookieCollection cookies = new CookieCollection(); + if(_NewzbinLoginCookies!=null){ + cookies.Add(_NewzbinLoginCookies); + } + String lsResult = getHtml(url,_NewzbinUser,_NewzbinPass,Postdata,ref cookies); + if(lsResult.IndexOf("<a title=\"Log Out\" href=\"/account/logout/\">Log Out</a>")>-1){ + _NewzbinLoginCookies = cookies; + return true; + } + return false; + } + private String getHtml(String url,ref CookieCollection cookies){ + return getHtml(url,"","","",ref cookies); + } + private String getHtml(String url,String fsUser,String fsPassword,String fsPostData,ref CookieCollection cookies){ + HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url); + Request.Method = "POST"; + Request.ContentType = "application/x-www-form-urlencoded"; + Request.CookieContainer = new CookieContainer(); + Request.CookieContainer.Add(cookies); + + Stream RequestStream = Request.GetRequestStream(); + ASCIIEncoding ASCIIEncoding = new ASCIIEncoding(); + //Byte [] PostData = ASCIIEncoding.GetBytes("username=" + fsUser +"&password="+ fsPassword); + Byte [] PostData = ASCIIEncoding.GetBytes(fsPostData); + RequestStream.Write(PostData, 0, PostData.Length); + RequestStream.Close(); + HttpWebResponse response = (HttpWebResponse)Request.GetResponse(); + StreamReader Reader = new StreamReader(Request.GetResponse().GetResponseStream()); + String ResultHTML = Reader.ReadToEnd(); + response.Cookies = Request.CookieContainer.GetCookies(Request.RequestUri); + cookies = response.Cookies; + + return ResultHTML; + } + private bool isLoggedInToSab(){ + return _SabLoginCookies!=null && _SabLoginCookies["session_id"]!=null&&!_SabLoginCookies["session_id"].Expired ; + } + + private bool isLoggedInToNewzbin(){ + return _NewzbinLoginCookies!=null && _NewzbinLoginCookies["NzbSessionID"]!=null&&!_SabLoginCookies["NzbSessionID"].Expired ; + } + + + private String BuildSabUrl(String relativeUrl){ + + String url = String.Format("http://{0}:{1}{2}",_SabNzbHost,_SabNzbPort,relativeUrl); + return url; + + + } + public void parseNewzbinRss(String rssData){ + StringReader reader = new StringReader(rssData); + + XmlDocument doc = new XmlDocument(); + doc.Load(reader); + XmlNamespaceManager expr = new XmlNamespaceManager(doc.NameTable); + expr.AddNamespace("report=","http://www.newzbin.com/DTD/2007/feeds/report/"); + //Create the root XmlNode and generate an XmlNodeList from it. + XmlNode root = doc.SelectSingleNode("//rss/channel/item", expr); + XmlNodeList nodeList; + nodeList = root.SelectNodes("//rss/channel/item"); + //XmlAttributeCollection ac; + List<NzbReport> loRssItemList = new List<NzbReport>(); + NzbReport loRssItem; + //GUIListItem loListItem; + foreach (XmlNode chileNode in nodeList) + { + loRssItem = new NzbReport(); + + for (int i = 0; i < chileNode.ChildNodes.Count; i++) + { + XmlNode n = chileNode.ChildNodes[i]; + + switch (n.Name) + { + + case "title": + loRssItem.title = n.InnerText; + break; + case "link": + loRssItem.url = n.InnerText; + break; + case "report:id": + loRssItem.id = n.InnerText; + break; + case "report:moreinfo": + loRssItem.moreInfoUrl = n.InnerText; + break; + case "report:nfo": + loRssItem.url = n.InnerText; + break; + case "report:size": + loRssItem.size = n.InnerText; + break; + } + loRssItemList.Add(loRssItem); + } + } + } + #endregion + } +} Added: trunk/plugins/SabNzbControl/Runner/AssemblyInfo.cs =================================================================== --- trunk/plugins/SabNzbControl/Runner/AssemblyInfo.cs (rev 0) +++ trunk/plugins/SabNzbControl/Runner/AssemblyInfo.cs 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Information about this assembly is defined by the following +// attributes. +// +// change them to the information which is associated with the assembly +// you compile. + +[assembly: AssemblyTitle("Runner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Runner")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// This sets the default COM visibility of types in the assembly to invisible. +// If you need to expose a type to COM, use [ComVisible(true)] on that type. +[assembly: ComVisible(false)] + +// The assembly version has following format : +// +// Major.Minor.Build.Revision +// +// You can specify all values by your own or you can build default build and revision +// numbers with the '*' character (the default): + +[assembly: AssemblyVersion("1.0.*")] Added: trunk/plugins/SabNzbControl/Runner/Main.cs =================================================================== --- trunk/plugins/SabNzbControl/Runner/Main.cs (rev 0) +++ trunk/plugins/SabNzbControl/Runner/Main.cs 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,21 @@ +/* + * Created by SharpDevelop. + * User: GZamor1 + * Date: 4/23/2007 + * Time: 9:30 AM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; + +namespace Runner +{ + class MainClass + { + public static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} \ No newline at end of file Added: trunk/plugins/SabNzbControl/Runner/Runner.csproj =================================================================== --- trunk/plugins/SabNzbControl/Runner/Runner.csproj (rev 0) +++ trunk/plugins/SabNzbControl/Runner/Runner.csproj 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,34 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{3344BB6A-77FC-449B-AADA-2C73E8045773}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <OutputType>Exe</OutputType> + <RootNamespace>Runner</RootNamespace> + <AssemblyName>Runner</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> + <OutputPath>bin\Debug\</OutputPath> + <DebugSymbols>True</DebugSymbols> + <DebugType>Full</DebugType> + <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> + <DefineConstants>DEBUG;TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> + <OutputPath>bin\Release\</OutputPath> + <DebugSymbols>False</DebugSymbols> + <DebugType>None</DebugType> + <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="AssemblyInfo.cs" /> + <Compile Include="Main.cs" /> + </ItemGroup> +</Project> \ No newline at end of file Added: trunk/plugins/SabNzbControl/Runner/Runner.sln =================================================================== --- trunk/plugins/SabNzbControl/Runner/Runner.sln (rev 0) +++ trunk/plugins/SabNzbControl/Runner/Runner.sln 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +# SharpDevelop 2.1.0.2429 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Runner", "Runner.csproj", "{3344BB6A-77FC-449B-AADA-2C73E8045773}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3344BB6A-77FC-449B-AADA-2C73E8045773}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3344BB6A-77FC-449B-AADA-2C73E8045773}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3344BB6A-77FC-449B-AADA-2C73E8045773}.Release|Any CPU.Build.0 = Release|Any CPU + {3344BB6A-77FC-449B-AADA-2C73E8045773}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection +EndGlobal Added: trunk/plugins/SabNzbControl/SabNzbControl.csproj =================================================================== --- trunk/plugins/SabNzbControl/SabNzbControl.csproj (rev 0) +++ trunk/plugins/SabNzbControl/SabNzbControl.csproj 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,41 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{4AD8C154-32DC-46FF-AE56-8EBF39948EF3}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <OutputType>Library</OutputType> + <RootNamespace>SabNzbControl</RootNamespace> + <AssemblyName>SabNzbControl</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> + <OutputPath>bin\Debug\</OutputPath> + <DebugSymbols>True</DebugSymbols> + <DebugType>Full</DebugType> + <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> + <DefineConstants>DEBUG;TRACE</DefineConstants> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> + <OutputPath>bin\Release\</OutputPath> + <DebugSymbols>False</DebugSymbols> + <DebugType>None</DebugType> + <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> + <DefineConstants>TRACE</DefineConstants> + </PropertyGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> + <ItemGroup> + <Reference Include="Core"> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.DLL</HintPath> + <SpecificVersion>False</SpecificVersion> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils"> + <HintPath>..\..\MediaPortal\Utils\bin\Release\Utils.DLL</HintPath> + <SpecificVersion>False</SpecificVersion> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AssemblyInfo.cs" /> + <Compile Include="MyClass.cs" /> + </ItemGroup> +</Project> \ No newline at end of file Added: trunk/plugins/SabNzbControl/SabNzbControl.sln =================================================================== --- trunk/plugins/SabNzbControl/SabNzbControl.sln (rev 0) +++ trunk/plugins/SabNzbControl/SabNzbControl.sln 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +# SharpDevelop 2.1.0.2429 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabNzbControl", "SabNzbControl.csproj", "{4AD8C154-32DC-46FF-AE56-8EBF39948EF3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4AD8C154-32DC-46FF-AE56-8EBF39948EF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AD8C154-32DC-46FF-AE56-8EBF39948EF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AD8C154-32DC-46FF-AE56-8EBF39948EF3}.Release|Any CPU.Build.0 = Release|Any CPU + {4AD8C154-32DC-46FF-AE56-8EBF39948EF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection +EndGlobal Added: trunk/plugins/SabNzbControl/bin/Debug/Core.DLL =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/bin/Debug/Core.DLL ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/bin/Debug/SabNzbControl.pdb ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/bin/Debug/Utils.DLL =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/bin/Debug/Utils.DLL ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.pdb =================================================================== (Binary files differ) Property changes on: trunk/plugins/SabNzbControl/obj/Debug/SabNzbControl.pdb ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/SabNzbControl/obj/SabNzbControl.csproj.FileList.txt =================================================================== --- trunk/plugins/SabNzbControl/obj/SabNzbControl.csproj.FileList.txt (rev 0) +++ trunk/plugins/SabNzbControl/obj/SabNzbControl.csproj.FileList.txt 2007-07-19 00:30:46 UTC (rev 745) @@ -0,0 +1,7 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SabNzbControl.dll +bin\Debug\SabNzbControl.pdb +bin\Debug\Core.DLL +bin\Debug\Utils.DLL +obj\Debug\SabNzbControl.dll +obj\Debug\SabNzbControl.pdb This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gib...@us...> - 2007-08-21 18:41:41
|
Revision: 850 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=850&view=rev Author: gibman_dk Date: 2007-08-21 11:41:02 -0700 (Tue, 21 Aug 2007) Log Message: ----------- skinchanger plugin added. making it possible to change skins on the fly. it reacts on ; ACTION_SKIN_NEXT=9989, ACTION_SKIN_PREVIOUS=9990 Added Paths: ----------- trunk/plugins/SkinChanger/ trunk/plugins/SkinChanger/SkinChanger/ trunk/plugins/SkinChanger/SkinChanger/SkinChanger.cs trunk/plugins/SkinChanger/SkinChanger/SkinChanger.csproj trunk/plugins/SkinChanger/SkinChanger/bin/ trunk/plugins/SkinChanger/SkinChanger/bin/Debug/ trunk/plugins/SkinChanger/SkinChanger/bin/Release/ trunk/plugins/SkinChanger/SkinChanger/obj/ trunk/plugins/SkinChanger/SkinChanger.sln trunk/plugins/SkinChanger/SkinChanger.suo Added: trunk/plugins/SkinChanger/SkinChanger/SkinChanger.cs =================================================================== --- trunk/plugins/SkinChanger/SkinChanger/SkinChanger.cs (rev 0) +++ trunk/plugins/SkinChanger/SkinChanger/SkinChanger.cs 2007-08-21 18:41:02 UTC (rev 850) @@ -0,0 +1,238 @@ +using System; +using System.Collections; +using System.IO; +using MediaPortal.GUI.Library; +using MediaPortal.Configuration; +using System.Windows.Forms; + +namespace MediaPortal.GUI.SkinChanger +{ + public class SkinChanger : ISetupForm, IPluginReceiver + { + + private string _originalSkin; + private ArrayList _skins = new ArrayList(); + private int _activeSkinIndex = -1; + + + public SkinChanger() + { + } + + #region ISetupForm Members + + public bool CanEnable() + { + return true; + } + + public string Description() + { + return "Making it possible to change skin by input device."; + } + + public bool DefaultEnabled() + { + return false; + } + + public int GetWindowId() + { + return 0; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = null; + strButtonImage = null; + strButtonImageFocus = null; + strPictureImage = null; + return false; + } + + public string Author() + { + return "gibman"; + } + + public string PluginName() + { + return "SkinChanger"; + } + + public bool HasSetup() + { + return false; + } + + public void ShowPlugin() + { + } + + #endregion + + #region IPluginReceiver Members + + public bool WndProc(ref System.Windows.Forms.Message msg) + { + return false; + } + + #endregion + + #region IPlugin Members + + public void Start() + { + //System.Diagnostics.Debugger.Launch(); + SetSkins(); + GUIWindowManager.OnNewAction += new OnActionHandler(OnNewAction); + } + + public void Stop() + { + GUIWindowManager.OnNewAction -= new OnActionHandler(OnNewAction); + } + + #endregion + + #region OnGlobalMessage routines + private void OnGlobalMessage(GUIMessage message) + { + } + + + + #endregion + + #region MediaPortal events + + void OnNewAction(Action action) + { + if (action.wID == Action.ActionType.ACTION_SKIN_NEXT) + { + SwitchToNextSkin(); + } + + if (action.wID == Action.ActionType.ACTION_SKIN_PREVIOUS) + { + SwitchToPrevSkin(); + } + } + + #endregion + + #region Private Methods + + void SaveSettings() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlwriter.SetValue("skin", "name", GUIGraphicsContext.Skin); + } + } + + private void SetSkins() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + _originalSkin = xmlreader.GetValueAsString("skin", "name", "BlueTwo"); + } + + DirectoryInfo skinFolder = new DirectoryInfo(Config.GetFolder(Config.Dir.Skin)); + if (skinFolder.Exists) + { + DirectoryInfo[] skinDirList = skinFolder.GetDirectories(); + foreach (DirectoryInfo skinDir in skinDirList) + { + // + // Check if we have a home.xml located in the directory, if so we consider it as a + // valid skin directory + // + FileInfo refFile = new FileInfo(Config.GetFile(Config.Dir.Skin, skinDir.Name, "references.xml")); + if (refFile.Exists) + { + _skins.Add(skinDir.Name); + if (skinDir.FullName == GUIGraphicsContext.Skin) + { + _activeSkinIndex = _skins.Count-1; + } + } + } + } + } + + private void SwitchToNextSkin() + { + + if (_activeSkinIndex == -1 || _skins.Count == 0) + { + return; + } + string newSkin = _originalSkin; + + if (_activeSkinIndex + 1 == _skins.Count) + { + newSkin = (string)_skins[0]; + _activeSkinIndex = 0; + } + else + { + newSkin = (string)_skins[_activeSkinIndex + 1]; + _activeSkinIndex++; + } + + SwitchToSkin(newSkin); + + } + + private void SwitchToPrevSkin() + { + + if (_activeSkinIndex == -1 || _skins.Count == 0) + { + return; + } + string newSkin = _originalSkin; + + if (_activeSkinIndex - 1 == -1) + { + newSkin = (string)_skins[_skins.Count - 1]; + _activeSkinIndex = _skins.Count - 1; + } + else + { + newSkin = (string)_skins[_activeSkinIndex - 1]; + _activeSkinIndex--; + } + SwitchToSkin(newSkin); + + } + + private void SwitchToSkin(string newSkin) + { + + + // Set the skin to the selected skin and reload GUI + GUIGraphicsContext.Skin = newSkin; + SaveSettings(); + GUITextureManager.Clear(); + GUITextureManager.Init(); + GUIFontManager.LoadFonts(GUIGraphicsContext.Skin + @"\fonts.xml"); + GUIFontManager.InitializeDeviceObjects(); + GUIControlFactory.ClearReferences(); + GUIControlFactory.LoadReferences(GUIGraphicsContext.Skin + @"\references.xml"); + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlreader.SetValue("general", "skinobsoletecount", 0); + bool autosize = xmlreader.GetValueAsBool("general", "autosize", true); + if (autosize && !GUIGraphicsContext.Fullscreen) + Form.ActiveForm.Size = new System.Drawing.Size(GUIGraphicsContext.SkinSize.Width, GUIGraphicsContext.SkinSize.Height); + } + GUIWindowManager.OnResize(); + } + + #endregion + + } +} Added: trunk/plugins/SkinChanger/SkinChanger/SkinChanger.csproj =================================================================== --- trunk/plugins/SkinChanger/SkinChanger/SkinChanger.csproj (rev 0) +++ trunk/plugins/SkinChanger/SkinChanger/SkinChanger.csproj 2007-08-21 18:41:02 UTC (rev 850) @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<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>{05B44048-280D-4BED-B64E-6F0A248503B2}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>SkinChanger</RootNamespace> + <AssemblyName>SkinChanger</AssemblyName> + <StartupObject> + </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="$(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> + --> + <ItemGroup> + <Reference Include="Core, Version=0.2.2.9991, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\MediaPortal\Core\bin\Release\Core.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.1.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\mediaportal\Core\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="SkinChanger.cs" /> + </ItemGroup> +</Project> \ No newline at end of file Added: trunk/plugins/SkinChanger/SkinChanger.sln =================================================================== --- trunk/plugins/SkinChanger/SkinChanger.sln (rev 0) +++ trunk/plugins/SkinChanger/SkinChanger.sln 2007-08-21 18:41:02 UTC (rev 850) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkinChanger", "SkinChanger\SkinChanger.csproj", "{05B44048-280D-4BED-B64E-6F0A248503B2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {05B44048-280D-4BED-B64E-6F0A248503B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05B44048-280D-4BED-B64E-6F0A248503B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05B44048-280D-4BED-B64E-6F0A248503B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05B44048-280D-4BED-B64E-6F0A248503B2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/SkinChanger/SkinChanger.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/SkinChanger/SkinChanger.suo ___________________________________________________________________ Name: 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: <ide...@us...> - 2007-09-06 21:27:43
|
Revision: 899 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=899&view=rev Author: ideasdigger Date: 2007-09-06 14:26:56 -0700 (Thu, 06 Sep 2007) Log Message: ----------- Visit the forum: http://forum.team-mediaportal.com/myorganizer-t27651.html MyOrganizer ----------- v1.0 Supports Google calendar. The calendar feed is configured. Supports adding and deleting of the events. Supports MediaPortal 0.2.3.0 RC1 Description: ------------ MyOrganizer is a plug-in that should bring together and give you control over the different calendars inside the MediaPortal. It is planned to support Google and Outlook for starters. The plug-in has an extendable architecture so, if you want to give a hand with developing connectors to different calendars out there, you are more than welcome to join in. Installation Instructions ------------------------- Place all the bits inside the Windows directory. Place all the skins in the BlueTwo skin folder. NOTE: Please do not criticize the skins, but just fix them. Please send me the fixes for testing. Configuration ------------- Google feeds: Default Feed URI - http://www.google.com/calendar/feeds/default/private/full Other calendar - http://www.google.com/calendar/feeds/<calendar_id>/private/full Added Paths: ----------- trunk/plugins/MyOrganizer/ trunk/plugins/MyOrganizer/Plugins/ trunk/plugins/MyOrganizer/Plugins/Windows/ trunk/plugins/MyOrganizer/Readme.txt trunk/plugins/MyOrganizer/Release/ trunk/plugins/MyOrganizer/Release/Plugins/ trunk/plugins/MyOrganizer/Release/Plugins/Windows/ trunk/plugins/MyOrganizer/Release/Plugins/Windows/GoogleConnectorLib.dll trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizer.dll trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizerLib.dll trunk/plugins/MyOrganizer/Release/Skin/ trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/ trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizer.xml trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizercreate.xml trunk/plugins/MyOrganizer/Skin/ trunk/plugins/MyOrganizer/Skin/BlueTwo/ trunk/plugins/MyOrganizer/Skin/BlueTwo/Media/ trunk/plugins/MyOrganizer/Skin/BlueTwo/myorganizer.xml trunk/plugins/MyOrganizer/Skin/BlueTwo/myorganizercreate.xml trunk/plugins/MyOrganizer/Sources/ trunk/plugins/MyOrganizer/Sources/GoogleConnector/ trunk/plugins/MyOrganizer/Sources/GoogleConnector/GoogleConnector.cs trunk/plugins/MyOrganizer/Sources/GoogleConnector/GoogleConnectorLib.csproj trunk/plugins/MyOrganizer/Sources/GoogleConnector/Properties/ trunk/plugins/MyOrganizer/Sources/GoogleConnector/Properties/AssemblyInfo.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/ trunk/plugins/MyOrganizer/Sources/MyOrganizer/Config.Designer.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/Config.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/Config.resx trunk/plugins/MyOrganizer/Sources/MyOrganizer/CreateNewEvent.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/IOrganizerService.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/MyOrganizer.csproj trunk/plugins/MyOrganizer/Sources/MyOrganizer/Organizer.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/OrganizerService.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/Properties/ trunk/plugins/MyOrganizer/Sources/MyOrganizer/Properties/AssemblyInfo.cs trunk/plugins/MyOrganizer/Sources/MyOrganizer/Skin/ trunk/plugins/MyOrganizer/Sources/MyOrganizer.sln trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/ trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/Event.cs trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/IConnector.cs trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/IEventReader.cs trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/MyOrganizerLib.csproj trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/Properties/ trunk/plugins/MyOrganizer/Sources/MyOrganizerLib/Properties/AssemblyInfo.cs Added: trunk/plugins/MyOrganizer/Readme.txt =================================================================== --- trunk/plugins/MyOrganizer/Readme.txt (rev 0) +++ trunk/plugins/MyOrganizer/Readme.txt 2007-09-06 21:26:56 UTC (rev 899) @@ -0,0 +1,38 @@ +Visit the forum: +http://forum.team-mediaportal.com/myorganizer-t27651.html + +MyOrganizer +----------- + +v1.0 +Supports Google calendar. The calendar feed is configured. +Supports adding and deleting of the events. +Supports MediaPortal 0.2.3.0 RC1 + +Description: +------------ + +MyOrganizer is a plug-in that should bring together and give you control +over the different calendars inside the MediaPortal. It is planned to +support Google and Outlook for starters. + + The plug-in has an extendable architecture so, if you want to give a hand +with developing connectors to different calendars out there, you are more +than welcome to join in. + + +Installation Instructions +------------------------- + +Place all the bits inside the Windows directory. + +Place all the skins in the BlueTwo skin folder. + +NOTE: Please do not criticize the skins, but just fix them. Please send me the fixes for testing. + + +Configuration +------------- +Google feeds: +Default Feed URI - http://www.google.com/calendar/feeds/default/private/full +Other calendar - http://www.google.com/calendar/feeds/<calendar_id>/private/full Added: trunk/plugins/MyOrganizer/Release/Plugins/Windows/GoogleConnectorLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MyOrganizer/Release/Plugins/Windows/GoogleConnectorLib.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizer.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizer.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizerLib.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MyOrganizer/Release/Plugins/Windows/MyOrganizerLib.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizer.xml =================================================================== --- trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizer.xml (rev 0) +++ trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizer.xml 2007-09-06 21:26:56 UTC (rev 899) @@ -0,0 +1,839 @@ +<window> + <id>7333</id> + <defaultcontrol>49</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <controls> + <control> + <type>image</type> + <description>BackGround</description> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <texture>background.png</texture> + </control> + + <control> + <type>label</type> + <description>Selected Date</description> + <id>68</id> + <posX>251</posX> + <posY>90</posY> + <label>#date</label> + <align>right</align> + </control> + <control> + <type>image</type> + <description>Logo Image</description> + <id>1</id> + <posX>24</posX> + <posY>368</posY> + <texture>hover_my planner.png</texture> + </control> + <control> + <type>image</type> + <id>129</id> + <posX>40</posX> + <posY>20</posY> + <texture>myorganizer_logo.png</texture> + </control> + <control> + <type>label</type> + <description>text label</description> + <id>130</id> + <posX>265</posX> + <posY>60</posY> + <label>My Organizer</label> + <font>font16</font> + <align>right</align> + </control> + + <control> + <type>group</type> + <description>Main buttons group</description> + <id>45</id> + <posX>48</posX> + <posY>120</posY> + <width>198</width> + <height>142</height> + <animation>None</animation> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>0</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + + <!-- control> + <type>button</type> + <description>Next-Month</description> + <id>2</id> + <posX>52</posX> + <posY>124</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>45</onup> + <ondown>3</ondown> + <label>Next Month</label> + </control> + <control> + <type>button</type> + <description>Previous-Month</description> + <id>3</id> + <posX>52</posX> + <posY>158</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>2</onup> + <ondown>49</ondown> + <label>Previous Month</label> + </control --> + <control> + <type>button</type> + <description>Today Button</description> + <id>49</id> + <posX>52</posX> + <posY>124</posY> + <onleft>3</onleft> + <onright>3</onright> + <onup>51</onup> + <ondown>51</ondown> + <label>Goto Today</label> + </control> + <control> + <type>button</type> + <description>Add Event Button</description> + <id>51</id> + <posX>52</posX> + <posY>158</posY> + <onleft>3</onleft> + <onright>3</onright> + <onup>49</onup> + <ondown>49</ondown> + <label>Add Event</label> + </control> + <!-- control> + <type>togglebutton</type> + <description>ShowDates-Button</description> + <id>48</id> + <posX>52</posX> + <posY>226</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>44</onup> + <ondown>43</ondown> + <label>Show dates</label> + </control --> + </control> + <control> + <type>group</type> + <description>Dates group</description> + <id>5</id> + <posX>320</posX> + <posY>16</posY> + <width>392</width> + <height>304</height> + <visible>true</visible> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>5</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + <control> + <type>image</type> + <description>MenuBackgroundImage</description> + <id>80</id> + <posX>320</posX> + <posY>16</posY> + <width>392</width> + <height>304</height> + <visible>true</visible> + <texture>background_glass_menu_area.png</texture> + </control> + + <control> + <type>button</type> + <description>Previous-Month</description> + <id>3</id> + <posX>400</posX> + <posY>25</posY> + <width>40</width> + <onleft>49</onleft> + <onright>2</onright> + <onup>49</onup> + <ondown>70</ondown> + <label><<</label> + </control> + <control> + <type>label</type> + <description>Current Month</description> + <id>4</id> + <posX>465</posX> + <posY>25</posY> + <colordiffuse>ffe0e0e0</colordiffuse> + <label>Month</label> + <font>font18</font> + <!-- align>left</align --> + </control> + <control> + <type>button</type> + <description>Next-Month</description> + <id>2</id> + <posX>600</posX> + <posY>25</posY> + <width>40</width> + <onleft>3</onleft> + <onright>70</onright> + <onup>49</onup> + <!-- ondown>3</ondown --> + <label>>></label> + </control> + + <control> + <type>label</type> + <description>label</description> + <id>70</id> + <posX>355</posX> + <posY>58</posY> + <label>S</label> + <font>font18</font> + <textcolor>Red</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>71</id> + <posX>405</posX> + <posY>58</posY> + <label>M</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>72</id> + <posX>455</posX> + <posY>58</posY> + <label>T</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>73</id> + <posX>505</posX> + <posY>58</posY> + <label>W</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>74</id> + <posX>555</posX> + <posY>58</posY> + <label>T</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>75</id> + <posX>605</posX> + <posY>58</posY> + <label>F</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>76</id> + <posX>655</posX> + <posY>58</posY> + <label>S</label> + <font>font18</font> + <textcolor>Red</textcolor> + </control> + + <control> + <type>button</type> + <id>7</id> + <posX>345</posX> + <posY>88</posY> + <onleft>3</onleft> + <onright>8</onright> + <onup>3</onup> + <ondown>14</ondown> + <label>01.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>8</id> + <posX>395</posX> + <posY>88</posY> + <onleft>7</onleft> + <onright>9</onright> + <onup>3</onup> + <ondown>15</ondown> + <label>02.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>9</id> + <posX>445</posX> + <posY>88</posY> + <onleft>8</onleft> + <onright>10</onright> + <onup>3</onup> + <ondown>16</ondown> + <label>03.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>10</id> + <posX>495</posX> + <posY>88</posY> + <onleft>9</onleft> + <onright>11</onright> + <onup>3</onup> + <ondown>17</ondown> + <label>04.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>11</id> + <posX>545</posX> + <posY>88</posY> + <onleft>10</onleft> + <onright>12</onright> + <onup>3</onup> + <ondown>18</ondown> + <label>05.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>12</id> + <posX>595</posX> + <posY>88</posY> + <onleft>11</onleft> + <onright>13</onright> + <onup>3</onup> + <ondown>19</ondown> + <label>06.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>13</id> + <posX>645</posX> + <posY>88</posY> + <onleft>12</onleft> + <onright>14</onright> + <onup>3</onup> + <ondown>20</ondown> + <label>07.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>14</id> + <posX>345</posX> + <posY>123</posY> + <onleft>3</onleft> + <onright>15</onright> + <onup>7</onup> + <ondown>21</ondown> + <label>08.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>15</id> + <posX>395</posX> + <posY>123</posY> + <onleft>14</onleft> + <onright>16</onright> + <onup>8</onup> + <ondown>22</ondown> + <label>09.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>16</id> + <posX>445</posX> + <posY>123</posY> + <onleft>15</onleft> + <onright>17</onright> + <onup>9</onup> + <ondown>23</ondown> + <label>10.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>17</id> + <posX>495</posX> + <posY>123</posY> + <onleft>16</onleft> + <onright>18</onright> + <onup>10</onup> + <ondown>24</ondown> + <label>11.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>18</id> + <posX>545</posX> + <posY>123</posY> + <onleft>17</onleft> + <onright>19</onright> + <onup>11</onup> + <ondown>25</ondown> + <label>12.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>19</id> + <posX>595</posX> + <posY>123</posY> + <onleft>18</onleft> + <onright>20</onright> + <onup>12</onup> + <ondown>26</ondown> + <label>13.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>20</id> + <posX>645</posX> + <posY>123</posY> + <onleft>19</onleft> + <onright>21</onright> + <onup>13</onup> + <ondown>27</ondown> + <label>14.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>21</id> + <posX>345</posX> + <posY>158</posY> + <onleft>3</onleft> + <onright>22</onright> + <onup>14</onup> + <ondown>28</ondown> + <label>15.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>22</id> + <posX>395</posX> + <posY>158</posY> + <onleft>21</onleft> + <onright>23</onright> + <onup>15</onup> + <ondown>29</ondown> + <label>16.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>23</id> + <posX>445</posX> + <posY>158</posY> + <onleft>22</onleft> + <onright>24</onright> + <onup>16</onup> + <ondown>30</ondown> + <label>17.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>24</id> + <posX>495</posX> + <posY>158</posY> + <onleft>23</onleft> + <onright>25</onright> + <onup>17</onup> + <ondown>31</ondown> + <label>18.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>25</id> + <posX>545</posX> + <posY>158</posY> + <onleft>24</onleft> + <onright>26</onright> + <onup>18</onup> + <ondown>32</ondown> + + <label>19.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>26</id> + <posX>595</posX> + <posY>158</posY> + <onleft>25</onleft> + <onright>27</onright> + <onup>19</onup> + <ondown>33</ondown> + + <label>20.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>27</id> + <posX>645</posX> + <posY>158</posY> + <onleft>26</onleft> + <onright>28</onright> + <onup>20</onup> + <ondown>34</ondown> + + <label>21.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>28</id> + <posX>345</posX> + <posY>193</posY> + <onleft>3</onleft> + <onright>29</onright> + <onup>21</onup> + <ondown>35</ondown> + + <label>23.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>29</id> + <posX>395</posX> + <posY>193</posY> + <onleft>28</onleft> + <onright>30</onright> + <onup>22</onup> + <ondown>36</ondown> + + <label>23.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>30</id> + <posX>445</posX> + <posY>193</posY> + <onleft>29</onleft> + <onright>31</onright> + <onup>23</onup> + <ondown>37</ondown> + + <label>24.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>31</id> + <posX>495</posX> + <posY>193</posY> + <onleft>30</onleft> + <onright>32</onright> + <onup>24</onup> + <ondown>38</ondown> + <label>25.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>32</id> + <posX>545</posX> + <posY>193</posY> + <onleft>31</onleft> + <onright>33</onright> + <onup>25</onup> + <ondown>39</ondown> + <label>26.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>33</id> + <posX>595</posX> + <posY>193</posY> + <onleft>32</onleft> + <onright>34</onright> + <onup>26</onup> + <ondown>40</ondown> + <label>27.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>34</id> + <posX>645</posX> + <posY>193</posY> + <onleft>33</onleft> + <onright>35</onright> + <onup>27</onup> + <ondown>41</ondown> + <label>28.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>35</id> + <posX>345</posX> + <posY>228</posY> + <onleft>3</onleft> + <onright>36</onright> + <onup>28</onup> + <ondown>42</ondown> + <label>29.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>36</id> + <posX>395</posX> + <posY>228</posY> + <onleft>35</onleft> + <onright>37</onright> + <onup>29</onup> + <ondown>43</ondown> + <label>30.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>37</id> + <posX>445</posX> + <posY>228</posY> + <onleft>36</onleft> + <onright>38</onright> + <onup>30</onup> + <ondown>43</ondown> + <label>31.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>38</id> + <posX>495</posX> + <posY>228</posY> + <onleft>37</onleft> + <onright>39</onright> + <onup>31</onup> + <ondown>43</ondown> + <label>32.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>39</id> + <posX>545</posX> + <posY>228</posY> + <onleft>38</onleft> + <onright>40</onright> + <onup>32</onup> + <ondown>42</ondown> + <label>33.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>40</id> + <posX>595</posX> + <posY>228</posY> + <onleft>39</onleft> + <onright>41</onright> + <onup>33</onup> + <ondown>43</ondown> + <label>34.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>41</id> + <posX>645</posX> + <posY>228</posY> + <onleft>40</onleft> + <onright>42</onright> + <onup>34</onup> + <ondown>43</ondown> + <label>35.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>42</id> + <posX>345</posX> + <posY>263</posY> + <onleft>3</onleft> + <onright>43</onright> + <onup>35</onup> + <ondown>50</ondown> + <label>36.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>43</id> + <posX>395</posX> + <posY>263</posY> + <onleft>42</onleft> + <onright>2</onright> + <onup>36</onup> + <ondown>50</ondown> + <label>37.</label> + <width>40</width> + <height>32</height> + </control> + + <!-- control> + <type>button</type> + <description>OKButton</description> + <id>46</id> + <posX>470</posX> + <posY>272</posY> + <label>OK</label> + <width>100</width> + <height>32</height> + </control> + <control> + <type>button</type> + <description>CancelButton</description> + <id>47</id> + <posX>580</posX> + <posY>272</posY> + <label>Cancel</label> + <width>100</width> + <height>32</height> + </control --> + </control> + + <control> + <type>label</type> + <description>Events</description> + <id>69</id> + <posX>144</posX> + <posY>296</posY> + <label>Events:</label> + <align>left</align> + </control> + <control> + <type>listcontrol</type> + <description>events listcontrol</description> + <id>50</id> + <posX>144</posX> + <posY>328</posY> + <width>568</width> + <height>236</height> + <onleft>5</onleft> + <onright>5</onright> + <onup>49</onup> + <ondown>5</ondown> + <textureDown>page_down_nofocus.png</textureDown> + <remoteColor>ffFFA075</remoteColor> + <textureDownFocus>page_down_focus.png</textureDownFocus> + <shadedColor>20ffffff</shadedColor> + <textureHeight>32</textureHeight> + <font>font13</font> + <playedColor>ffa0d0ff</playedColor> + <IconYOff>8</IconYOff> + <IconXOff>8</IconXOff> + <textXOff>5</textXOff> + <textYOff>4</textYOff> + <textureUp>page_up_nofocus.png</textureUp> + <spinHeight>27</spinHeight> + <textureNoFocus>list_sub_nofocus.png</textureNoFocus> + <spinPosY>530</spinPosY> + <textXOff2>0</textXOff2> + <animation>WindowClose</animation> + <textYOff2>4</textYOff2> + <downloadColor>ff80ff80</downloadColor> + <spinPosX>590</spinPosX> + <suffix>|</suffix> + <textureUpFocus>page_up_focus.png</textureUpFocus> + <image>folder_focus.png</image> + <selectedColor>FFF8BC70</selectedColor> + <spinWidth>26</spinWidth> + <textureFocus>list_sub_focus.png</textureFocus> + </control> + + </controls> +</window> \ No newline at end of file Added: trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizercreate.xml =================================================================== --- trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizercreate.xml (rev 0) +++ trunk/plugins/MyOrganizer/Release/Skin/BlueTwo/myorganizercreate.xml 2007-09-06 21:26:56 UTC (rev 899) @@ -0,0 +1,402 @@ +<window> + <id>7334</id> + <defaultcontrol>67</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <controls> + <control> + <type>image</type> + <description>BackGround</description> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <texture>background.png</texture> + </control> + + <control> + <type>group</type> + <description>Time group</description> + <id>10</id> + <posX>8</posX> + <posY>176</posY> + <width>500</width> + <height>344</height> + <animation>None</animation> + <visible>true</visible> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>5</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + <control> + <type>image</type> + <description>MenuBackgroundImage</description> + <id>11</id> + <posX>8</posX> + <posY>176</posY> + <width>704</width> + <height>344</height> + <visible>true</visible> + <texture>background_glass_menu_area.png</texture> + </control> + + <control> + <type>label</type> + <description>DateLabel</description> + <id>35</id> + <posX>50</posX> + <posY>75</posY> + <label>Date:</label> + </control> + <control> + <type>spincontrol</type> + <description>DateSpin</description> + <id>36</id> + <posX>160</posX> + <posY>80</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>int</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>22</onright> + </control> + <control> + <type>spincontrol</type> + <description>MonthSpin</description> + <id>37</id> + <posX>240</posX> + <posY>80</posY> + <width>16</width> + <height>16</height> + <digits>4</digits> + <spintype>disc</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>24</onright> + </control> + <control> + <type>spincontrol</type> + <description>YearSpin</description> + <id>38</id> + <posX>340</posX> + <posY>80</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>int</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>24</onright> + </control> + + <control> + <type>label</type> + <description>TimeLabel</description> + <id>20</id> + <posX>50</posX> + <posY>110</posY> + <label>Time Start:</label> + </control> + <control> + <type>spincontrol</type> + <description>TimeHourSpin</description> + <id>21</id> + <posX>160</posX> + <posY>115</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>int</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>22</onright> + </control> + <control> + <type>spincontrol</type> + <description>TimeMinuteSpin</description> + <id>22</id> + <posX>240</posX> + <posY>115</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>disc</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>24</onright> + </control> + + <control> + <type>label</type> + <description>Time End Label</description> + <id>30</id> + <posX>350</posX> + <posY>110</posY> + <label>Ends:</label> + </control> + <control> + <type>spincontrol</type> + <description>TimeEndHourSpin</description> + <id>31</id> + <posX>440</posX> + <posY>115</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>int</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>22</onright> + </control> + <control> + <type>spincontrol</type> + <description>TimeEndMinuteSpin</description> + <id>32</id> + <posX>520</posX> + <posY>115</posY> + <width>16</width> + <height>16</height> + <digits>2</digits> + <spintype>disc</spintype> + <showrange>no</showrange> + <onleft>21</onleft> + <onright>24</onright> + </control> + + <control> + <type>label</type> + <description>Reminder</description> + <id>23</id> + <posX>50</posX> + <posY>135</posY> + <label>Reminder:</label> + </control> + <control> + <type>spincontrol</type> + <description>RemindSpin</description> + <id>24</id> + <posX>160</posX> + <posY>135</posY> + <width>16</width> + <height>16</height> + <spintype>disc</spintype> + <showrange>no</showrange> + <onleft>22</onleft> + <onright>50</onright> + </control> + + <!-- control> + <type>togglebutton</type> + <description>ReccuringDateButton</description> + <id>26</id> + <posX>500</posX> + <posY>65</posY> + <onleft>8</onleft> + <onright>7</onright> + <onup>22</onup> + <ondown>24</ondown> + <animation>unfocus</animation> + <label>Reccuring date</label> + <textcolor>ffffffff</textcolor> + </control> + <control> + <type>button</type> + <description>ShowAddedDatesButton</description> + <id>27</id> + <posX>500</posX> + <posY>100</posY> + <onleft>8</onleft> + <onright>7</onright> + <onup>23</onup> + <ondown>11</ondown> + <animation>unfocus</animation> + <label>Show/add dates</label> + <textcolor>ff000000</textcolor> + </control --> + </control> + + <control> + <type>group</type> + <description>Information group</description> + <id>50</id> + <posX>8</posX> + <posY>400</posY> + <width>500</width> + <height>128</height> + <visible>true</visible> + <animation>None</animation> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>5</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + <control> + <type>image</type> + <description>MenuBackgroundImage</description> + <id>51</id> + <posX>16</posX> + <posY>48</posY> + <width>704</width> + <height>128</height> + <visible>true</visible> + <texture>album_background_nofocus.png</texture> + </control> + + <control> + <type>label</type> + <description>SubjectLabel</description> + <id>65</id> + <posX>48</posX> + <posY>192</posY> + <label>Subject:</label> + </control> + <control> + <type>textbox</type> + <description>SubjectText</description> + <id>66</id> + <posX>48</posX> + <posY>224</posY> + <width>624</width> + <height>90</height> + <image>icon-folder.png</image> + <label>Subject</label> + <text>-</text> + <SpinPosX>48</SpinPosX> + <SpinPosY>314</SpinPosY> + </control> + <control> + <type>button</type> + <description>Subject Edit Button</description> + <id>67</id> + <posX>160</posX> + <posY>192</posY> + <onleft>10</onleft> + <onright>60</onright> + <onup>21</onup> + <ondown>60</ondown> + <animation>unfocus</animation> + <label>Edit</label> + <width>75</width> + <height>32</height> + </control> + + <control> + <type>label</type> + <description>DescriptionLabel</description> + <id>55</id> + <posX>48</posX> + <posY>282</posY> + <label>Description:</label> + </control> + <control> + <type>textbox</type> + <description>DescriptionText</description> + <id>56</id> + <posX>48</posX> + <posY>314</posY> + <width>624</width> + <height>90</height> + <image>icon-folder.png</image> + <label>Description</label> + <text>-</text> + <SpinPosX>48</SpinPosX> + <SpinPosY>314</SpinPosY> + </control> + <control> + <type>button</type> + <description>Description Edit Button</description> + <id>57</id> + <posX>160</posX> + <posY>282</posY> + <onleft>10</onleft> + <onright>60</onright> + <onup>66</onup> + <ondown>60</ondown> + <animation>unfocus</animation> + <label>Edit</label> + <width>75</width> + <height>32</height> + </control> + + <control> + <type>label</type> + <description>LocationLabel</description> + <id>58</id> + <posX>50</posX> + <posY>350</posY> + <label>Location:</label> + </control> + <control> + <type>textbox</type> + <description>Location Text</description> + <id>59</id> + <posX>200</posX> + <posY>350</posY> + <width>480</width> + <height>26</height> + <image>icon-folder.png</image> + <text>-</text> + <SpinPosX>200</SpinPosX> + <SpinPosY>376</SpinPosY> + </control> + <control> + <type>button</type> + <description>Location Edit Button</description> + <id>60</id> + <posX>48</posX> + <posY>376</posY> + <onleft>57</onleft> + <onright>200</onright> + <onup>57</onup> + <ondown>200</ondown> + <label>Edit</label> + <width>75</width> + <height>32</height> + </control> + </control> + + <control> + <type>button</type> + <description>OKButton</description> + <id>200</id> + <posX>472</posX> + <posY>528</posY> + <onleft>8</onleft> + <onright>201</onright> + <onup>57</onup> + <ondown>21</ondown> + <animation>unfocus</animation> + <label>OK</label> + <width>100</width> + <height>32</height> + </control> + <control> + <type>button</type> + <description>CancelButton</description> + <id>201</id> + <posX>584</posX> + <posY>528</posY> + <onleft>200</onleft> + <onright>21</onright> + <onup>57</onup> + <ondown>21</ondown> + <animation>unfocus</animation> + <label>Cancel</label> + <width>100</width> + <height>32</height> + </control> + </controls> +</window> \ No newline at end of file Added: trunk/plugins/MyOrganizer/Skin/BlueTwo/myorganizer.xml =================================================================== --- trunk/plugins/MyOrganizer/Skin/BlueTwo/myorganizer.xml (rev 0) +++ trunk/plugins/MyOrganizer/Skin/BlueTwo/myorganizer.xml 2007-09-06 21:26:56 UTC (rev 899) @@ -0,0 +1,839 @@ +<window> + <id>7333</id> + <defaultcontrol>49</defaultcontrol> + <allowoverlay>yes</allowoverlay> + <controls> + <control> + <type>image</type> + <description>BackGround</description> + <id>1</id> + <posX>0</posX> + <posY>0</posY> + <texture>background.png</texture> + </control> + + <control> + <type>label</type> + <description>Selected Date</description> + <id>68</id> + <posX>251</posX> + <posY>90</posY> + <label>#date</label> + <align>right</align> + </control> + <control> + <type>image</type> + <description>Logo Image</description> + <id>1</id> + <posX>24</posX> + <posY>368</posY> + <texture>hover_my planner.png</texture> + </control> + <control> + <type>image</type> + <id>129</id> + <posX>40</posX> + <posY>20</posY> + <texture>myorganizer_logo.png</texture> + </control> + <control> + <type>label</type> + <description>text label</description> + <id>130</id> + <posX>265</posX> + <posY>60</posY> + <label>My Organizer</label> + <font>font16</font> + <align>right</align> + </control> + + <control> + <type>group</type> + <description>Main buttons group</description> + <id>45</id> + <posX>48</posX> + <posY>120</posY> + <width>198</width> + <height>142</height> + <animation>None</animation> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>0</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + + <!-- control> + <type>button</type> + <description>Next-Month</description> + <id>2</id> + <posX>52</posX> + <posY>124</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>45</onup> + <ondown>3</ondown> + <label>Next Month</label> + </control> + <control> + <type>button</type> + <description>Previous-Month</description> + <id>3</id> + <posX>52</posX> + <posY>158</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>2</onup> + <ondown>49</ondown> + <label>Previous Month</label> + </control --> + <control> + <type>button</type> + <description>Today Button</description> + <id>49</id> + <posX>52</posX> + <posY>124</posY> + <onleft>3</onleft> + <onright>3</onright> + <onup>51</onup> + <ondown>51</ondown> + <label>Goto Today</label> + </control> + <control> + <type>button</type> + <description>Add Event Button</description> + <id>51</id> + <posX>52</posX> + <posY>158</posY> + <onleft>3</onleft> + <onright>3</onright> + <onup>49</onup> + <ondown>49</ondown> + <label>Add Event</label> + </control> + <!-- control> + <type>togglebutton</type> + <description>ShowDates-Button</description> + <id>48</id> + <posX>52</posX> + <posY>226</posY> + <onleft>13</onleft> + <onright>7</onright> + <onup>44</onup> + <ondown>43</ondown> + <label>Show dates</label> + </control --> + </control> + <control> + <type>group</type> + <description>Dates group</description> + <id>5</id> + <posX>320</posX> + <posY>16</posY> + <width>392</width> + <height>304</height> + <visible>true</visible> + <mpe> + <layout>Grid</layout> + <spring>no</spring> + <spacing>5</spacing> + <padding> + <top>0</top> + <right>0</right> + <bottom>0</bottom> + <left>0</left> + </padding> + </mpe> + <control> + <type>image</type> + <description>MenuBackgroundImage</description> + <id>80</id> + <posX>320</posX> + <posY>16</posY> + <width>392</width> + <height>304</height> + <visible>true</visible> + <texture>background_glass_menu_area.png</texture> + </control> + + <control> + <type>button</type> + <description>Previous-Month</description> + <id>3</id> + <posX>400</posX> + <posY>25</posY> + <width>40</width> + <onleft>49</onleft> + <onright>2</onright> + <onup>49</onup> + <ondown>70</ondown> + <label><<</label> + </control> + <control> + <type>label</type> + <description>Current Month</description> + <id>4</id> + <posX>465</posX> + <posY>25</posY> + <colordiffuse>ffe0e0e0</colordiffuse> + <label>Month</label> + <font>font18</font> + <!-- align>left</align --> + </control> + <control> + <type>button</type> + <description>Next-Month</description> + <id>2</id> + <posX>600</posX> + <posY>25</posY> + <width>40</width> + <onleft>3</onleft> + <onright>70</onright> + <onup>49</onup> + <!-- ondown>3</ondown --> + <label>>></label> + </control> + + <control> + <type>label</type> + <description>label</description> + <id>70</id> + <posX>355</posX> + <posY>58</posY> + <label>S</label> + <font>font18</font> + <textcolor>Red</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>71</id> + <posX>405</posX> + <posY>58</posY> + <label>M</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>72</id> + <posX>455</posX> + <posY>58</posY> + <label>T</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>73</id> + <posX>505</posX> + <posY>58</posY> + <label>W</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>74</id> + <posX>555</posX> + <posY>58</posY> + <label>T</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>75</id> + <posX>605</posX> + <posY>58</posY> + <label>F</label> + <font>font18</font> + <textcolor>Gold</textcolor> + </control> + <control> + <type>label</type> + <description>label</description> + <id>76</id> + <posX>655</posX> + <posY>58</posY> + <label>S</label> + <font>font18</font> + <textcolor>Red</textcolor> + </control> + + <control> + <type>button</type> + <id>7</id> + <posX>345</posX> + <posY>88</posY> + <onleft>3</onleft> + <onright>8</onright> + <onup>3</onup> + <ondown>14</ondown> + <label>01.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>8</id> + <posX>395</posX> + <posY>88</posY> + <onleft>7</onleft> + <onright>9</onright> + <onup>3</onup> + <ondown>15</ondown> + <label>02.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>9</id> + <posX>445</posX> + <posY>88</posY> + <onleft>8</onleft> + <onright>10</onright> + <onup>3</onup> + <ondown>16</ondown> + <label>03.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>10</id> + <posX>495</posX> + <posY>88</posY> + <onleft>9</onleft> + <onright>11</onright> + <onup>3</onup> + <ondown>17</ondown> + <label>04.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>11</id> + <posX>545</posX> + <posY>88</posY> + <onleft>10</onleft> + <onright>12</onright> + <onup>3</onup> + <ondown>18</ondown> + <label>05.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>12</id> + <posX>595</posX> + <posY>88</posY> + <onleft>11</onleft> + <onright>13</onright> + <onup>3</onup> + <ondown>19</ondown> + <label>06.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>13</id> + <posX>645</posX> + <posY>88</posY> + <onleft>12</onleft> + <onright>14</onright> + <onup>3</onup> + <ondown>20</ondown> + <label>07.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>14</id> + <posX>345</posX> + <posY>123</posY> + <onleft>3</onleft> + <onright>15</onright> + <onup>7</onup> + <ondown>21</ondown> + <label>08.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>15</id> + <posX>395</posX> + <posY>123</posY> + <onleft>14</onleft> + <onright>16</onright> + <onup>8</onup> + <ondown>22</ondown> + <label>09.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>16</id> + <posX>445</posX> + <posY>123</posY> + <onleft>15</onleft> + <onright>17</onright> + <onup>9</onup> + <ondown>23</ondown> + <label>10.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>17</id> + <posX>495</posX> + <posY>123</posY> + <onleft>16</onleft> + <onright>18</onright> + <onup>10</onup> + <ondown>24</ondown> + <label>11.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>18</id> + <posX>545</posX> + <posY>123</posY> + <onleft>17</onleft> + <onright>19</onright> + <onup>11</onup> + <ondown>25</ondown> + <label>12.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>19</id> + <posX>595</posX> + <posY>123</posY> + <onleft>18</onleft> + <onright>20</onright> + <onup>12</onup> + <ondown>26</ondown> + <label>13.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>20</id> + <posX>645</posX> + <posY>123</posY> + <onleft>19</onleft> + <onright>21</onright> + <onup>13</onup> + <ondown>27</ondown> + <label>14.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>21</id> + <posX>345</posX> + <posY>158</posY> + <onleft>3</onleft> + <onright>22</onright> + <onup>14</onup> + <ondown>28</ondown> + <label>15.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>22</id> + <posX>395</posX> + <posY>158</posY> + <onleft>21</onleft> + <onright>23</onright> + <onup>15</onup> + <ondown>29</ondown> + <label>16.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>23</id> + <posX>445</posX> + <posY>158</posY> + <onleft>22</onleft> + <onright>24</onright> + <onup>16</onup> + <ondown>30</ondown> + <label>17.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>24</id> + <posX>495</posX> + <posY>158</posY> + <onleft>23</onleft> + <onright>25</onright> + <onup>17</onup> + <ondown>31</ondown> + <label>18.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>25</id> + <posX>545</posX> + <posY>158</posY> + <onleft>24</onleft> + <onright>26</onright> + <onup>18</onup> + <ondown>32</ondown> + + <label>19.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>26</id> + <posX>595</posX> + <posY>158</posY> + <onleft>25</onleft> + <onright>27</onright> + <onup>19</onup> + <ondown>33</ondown> + + <label>20.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>27</id> + <posX>645</posX> + <posY>158</posY> + <onleft>26</onleft> + <onright>28</onright> + <onup>20</onup> + <ondown>34</ondown> + + <label>21.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>28</id> + <posX>345</posX> + <posY>193</posY> + <onleft>3</onleft> + <onright>29</onright> + <onup>21</onup> + <ondown>35</ondown> + + <label>23.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>29</id> + <posX>395</posX> + <posY>193</posY> + <onleft>28</onleft> + <onright>30</onright> + <onup>22</onup> + <ondown>36</ondown> + + <label>23.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>30</id> + <posX>445</posX> + <posY>193</posY> + <onleft>29</onleft> + <onright>31</onright> + <onup>23</onup> + <ondown>37</ondown> + + <label>24.</label> + + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>31</id> + <posX>495</posX> + <posY>193</posY> + <onleft>30</onleft> + <onright>32</onright> + <onup>24</onup> + <ondown>38</ondown> + <label>25.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>32</id> + <posX>545</posX> + <posY>193</posY> + <onleft>31</onleft> + <onright>33</onright> + <onup>25</onup> + <ondown>39</ondown> + <label>26.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>33</id> + <posX>595</posX> + <posY>193</posY> + <onleft>32</onleft> + <onright>34</onright> + <onup>26</onup> + <ondown>40</ondown> + <label>27.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>34</id> + <posX>645</posX> + <posY>193</posY> + <onleft>33</onleft> + <onright>35</onright> + <onup>27</onup> + <ondown>41</ondown> + <label>28.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>35</id> + <posX>345</posX> + <posY>228</posY> + <onleft>3</onleft> + <onright>36</onright> + <onup>28</onup> + <ondown>42</ondown> + <label>29.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>36</id> + <posX>395</posX> + <posY>228</posY> + <onleft>35</onleft> + <onright>37</onright> + <onup>29</onup> + <ondown>43</ondown> + <label>30.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>37</id> + <posX>445</posX> + <posY>228</posY> + <onleft>36</onleft> + <onright>38</onright> + <onup>30</onup> + <ondown>43</ondown> + <label>31.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>38</id> + <posX>495</posX> + <posY>228</posY> + <onleft>37</onleft> + <onright>39</onright> + <onup>31</onup> + <ondown>43</ondown> + <label>32.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>39</id> + <posX>545</posX> + <posY>228</posY> + <onleft>38</onleft> + <onright>40</onright> + <onup>32</onup> + <ondown>42</ondown> + <label>33.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>40</id> + <posX>595</posX> + <posY>228</posY> + <onleft>39</onleft> + <onright>41</onright> + <onup>33</onup> + <ondown>43</ondown> + <label>34.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>41</id> + <posX>645</posX> + <posY>228</posY> + <onleft>40</onleft> + <onright>42</onright> + <onup>34</onup> + <ondown>43</ondown> + <label>35.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>42</id> + <posX>345</posX> + <posY>263</posY> + <onleft>3</onleft> + <onright>43</onright> + <onup>35</onup> + <ondown>50</ondown> + <label>36.</label> + <width>40</width> + <height>32</height> + </control> + <control> + <type>button</type> + <id>43</id> + <posX>395</posX> + <posY>263</posY> + <onleft>42</onleft> + <onright>2</onright> + <onup>36</onup> + <ondown>50</ondown> + <label>37.</label> + <width>40</width> + <height>32</height> + </control> + + <!-- control> + <type>button</type> + <description>OKButton</description> + <id>46</id> + <posX>470</posX> + <posY>272</posY> + <label>OK</label> + <width>100</width> + <height>32</height> + </control> + <control> + <type>button</type> + <description>CancelButton</description> + <id>47</id> + <posX>580</posX> + <posY>272</posY> + <label>Cancel</label> + <width>100</width> + <height>32</height> + </control --> + </control> + + <control> + <type>label</type> + <description>Events</description> ... [truncated message content] |
From: <fc...@us...> - 2007-10-02 22:54:31
|
Revision: 970 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=970&view=rev Author: fcsobel Date: 2007-10-02 15:54:23 -0700 (Tue, 02 Oct 2007) Log Message: ----------- Added Paths: ----------- trunk/plugins/RSS Plugins/ Removed Paths: ------------- trunk/plugins/MyTorrents/ Copied: trunk/plugins/RSS Plugins (from rev 969, trunk/plugins/MyTorrents) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-10-04 07:02:58
|
Revision: 973 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=973&view=rev Author: and-81 Date: 2007-10-04 00:02:56 -0700 (Thu, 04 Oct 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/GetKeyCodeForm.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Setup.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ServerAddress.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPCommands.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/Common/MPUtils/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Program.cs trunk/plugins/IR Server Suite/Input Service/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.Designer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.resx trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.Designer.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.resx trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.cs trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Girder Plugin.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Girder Plugin/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Configure.Designer.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Configure.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Configure.resx trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Properties/ trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/NativeMethods.cs trunk/plugins/IR Server Suite/Input Service/Icon.ico Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -145,9 +145,9 @@ comboBoxComputer.Items.Clear(); comboBoxComputer.Items.Add("localhost"); - ArrayList networkPCs = IrssUtils.Win32.GetNetworkComputers(); + string[] networkPCs = IrssUtils.Win32.GetNetworkComputers(false); if (networkPCs != null) - comboBoxComputer.Items.AddRange(networkPCs.ToArray()); + comboBoxComputer.Items.AddRange(networkPCs); comboBoxComputer.Text = _serverHost; } Added: trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.Designer.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -0,0 +1,180 @@ +namespace IRServer +{ + partial class Advanced + { + /// <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.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Advanced)); + this.groupBoxMode = new System.Windows.Forms.GroupBox(); + this.labelComputer = new System.Windows.Forms.Label(); + this.radioButtonRepeater = new System.Windows.Forms.RadioButton(); + this.radioButtonRelay = new System.Windows.Forms.RadioButton(); + this.radioButtonServer = new System.Windows.Forms.RadioButton(); + this.comboBoxComputer = new System.Windows.Forms.ComboBox(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.groupBoxMode.SuspendLayout(); + this.SuspendLayout(); + // + // groupBoxMode + // + this.groupBoxMode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxMode.Controls.Add(this.labelComputer); + this.groupBoxMode.Controls.Add(this.radioButtonRepeater); + this.groupBoxMode.Controls.Add(this.radioButtonRelay); + this.groupBoxMode.Controls.Add(this.radioButtonServer); + this.groupBoxMode.Controls.Add(this.comboBoxComputer); + this.groupBoxMode.Location = new System.Drawing.Point(8, 8); + this.groupBoxMode.Name = "groupBoxMode"; + this.groupBoxMode.Size = new System.Drawing.Size(384, 120); + this.groupBoxMode.TabIndex = 0; + this.groupBoxMode.TabStop = false; + this.groupBoxMode.Text = "IR Server Mode"; + // + // labelComputer + // + this.labelComputer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelComputer.Location = new System.Drawing.Point(168, 56); + this.labelComputer.Name = "labelComputer"; + this.labelComputer.Size = new System.Drawing.Size(208, 32); + this.labelComputer.TabIndex = 3; + this.labelComputer.Text = "Input Relay / Repeater host computer:"; + this.labelComputer.TextAlign = System.Drawing.ContentAlignment.BottomLeft; + // + // radioButtonRepeater + // + this.radioButtonRepeater.AutoSize = true; + this.radioButtonRepeater.Location = new System.Drawing.Point(16, 88); + this.radioButtonRepeater.Name = "radioButtonRepeater"; + this.radioButtonRepeater.Size = new System.Drawing.Size(98, 17); + this.radioButtonRepeater.TabIndex = 2; + this.radioButtonRepeater.TabStop = true; + this.radioButtonRepeater.Text = "Repeater mode"; + this.toolTips.SetToolTip(this.radioButtonRepeater, "All output commands from a host IR Server are repeated"); + this.radioButtonRepeater.UseVisualStyleBackColor = true; + this.radioButtonRepeater.CheckedChanged += new System.EventHandler(this.radioButtonRepeater_CheckedChanged); + // + // radioButtonRelay + // + this.radioButtonRelay.AutoSize = true; + this.radioButtonRelay.Location = new System.Drawing.Point(16, 56); + this.radioButtonRelay.Name = "radioButtonRelay"; + this.radioButtonRelay.Size = new System.Drawing.Size(103, 17); + this.radioButtonRelay.TabIndex = 1; + this.radioButtonRelay.TabStop = true; + this.radioButtonRelay.Text = "Input relay mode"; + this.toolTips.SetToolTip(this.radioButtonRelay, "All input is relayed to another IR Server instance"); + this.radioButtonRelay.UseVisualStyleBackColor = true; + this.radioButtonRelay.CheckedChanged += new System.EventHandler(this.radioButtonRelay_CheckedChanged); + // + // radioButtonServer + // + this.radioButtonServer.AutoSize = true; + this.radioButtonServer.Location = new System.Drawing.Point(16, 24); + this.radioButtonServer.Name = "radioButtonServer"; + this.radioButtonServer.Size = new System.Drawing.Size(126, 17); + this.radioButtonServer.TabIndex = 0; + this.radioButtonServer.TabStop = true; + this.radioButtonServer.Text = "Server mode (default)"; + this.toolTips.SetToolTip(this.radioButtonServer, "IR Server operates as a device server (default)"); + this.radioButtonServer.UseVisualStyleBackColor = true; + this.radioButtonServer.CheckedChanged += new System.EventHandler(this.radioButtonServer_CheckedChanged); + // + // comboBoxComputer + // + this.comboBoxComputer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxComputer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.comboBoxComputer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.comboBoxComputer.Enabled = false; + this.comboBoxComputer.FormattingEnabled = true; + this.comboBoxComputer.Location = new System.Drawing.Point(168, 88); + this.comboBoxComputer.Name = "comboBoxComputer"; + this.comboBoxComputer.Size = new System.Drawing.Size(208, 21); + this.comboBoxComputer.TabIndex = 4; + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(328, 144); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(64, 24); + this.buttonCancel.TabIndex = 2; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOK + // + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(256, 144); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(64, 24); + this.buttonOK.TabIndex = 1; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // Advanced + // + this.AcceptButton = this.buttonOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(402, 177); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.groupBoxMode); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(418, 213); + this.Name = "Advanced"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "IR Server - Advanced Configuration"; + this.groupBoxMode.ResumeLayout(false); + this.groupBoxMode.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBoxMode; + private System.Windows.Forms.Label labelComputer; + private System.Windows.Forms.RadioButton radioButtonRepeater; + private System.Windows.Forms.RadioButton radioButtonRelay; + private System.Windows.Forms.RadioButton radioButtonServer; + private System.Windows.Forms.ComboBox comboBoxComputer; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.ToolTip toolTips; + } +} \ No newline at end of file Added: trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -0,0 +1,98 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IRServer +{ + + partial class Advanced : Form + { + + #region Properties + + public IRServerMode Mode + { + get + { + if (radioButtonRelay.Checked) + return IRServerMode.RelayMode; + else if (radioButtonRepeater.Checked) + return IRServerMode.RepeaterMode; + else + return IRServerMode.ServerMode; + } + set + { + switch (value) + { + case IRServerMode.ServerMode: + radioButtonServer.Checked = true; + break; + + case IRServerMode.RelayMode: + radioButtonRelay.Checked = true; + break; + + case IRServerMode.RepeaterMode: + radioButtonRepeater.Checked = true; + break; + } + } + } + public string HostComputer + { + get { return comboBoxComputer.Text; } + set { comboBoxComputer.Text = value; } + } + + #endregion Properties + + #region Constructor + + public Advanced() + { + InitializeComponent(); + + string[] networkPCs = IrssUtils.Win32.GetNetworkComputers(false); + if (networkPCs != null) + comboBoxComputer.Items.AddRange(networkPCs); + } + + #endregion Constructor + + #region Controls + + private void buttonOK_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + private void buttonCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void radioButtonServer_CheckedChanged(object sender, EventArgs e) + { + comboBoxComputer.Enabled = false; + } + private void radioButtonRelay_CheckedChanged(object sender, EventArgs e) + { + comboBoxComputer.Enabled = true; + } + private void radioButtonRepeater_CheckedChanged(object sender, EventArgs e) + { + comboBoxComputer.Enabled = true; + } + + #endregion Controls + + } + +} Added: trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.resx =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.resx (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Advanced.resx 2007-10-04 07:02:56 UTC (rev 973) @@ -0,0 +1,171 @@ +<?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> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAIAICAAAAEACACoCAAAJgAAABAQEAABAAQAKAEAAM4IAAAoAAAAIAAAAEAAAAABAAgAAAAAAIAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwADA3MAA8MqmANTw + /wCx4v8AjtT/AGvG/wBIuP8AJar/AACq/wAAktwAAHq5AABilgAASnMAADJQANTj/wCxx/8Ajqv/AGuP + /wBIc/8AJVf/AABV/wAASdwAAD25AAAxlgAAJXMAABlQANTU/wCxsf8Ajo7/AGtr/wBISP8AJSX/AAAA + /gAAANwAAAC5AAAAlgAAAHMAAABQAOPU/wDHsf8Aq47/AI9r/wBzSP8AVyX/AFUA/wBJANwAPQC5ADEA + lgAlAHMAGQBQAPDU/wDisf8A1I7/AMZr/wC4SP8AqiX/AKoA/wCSANwAegC5AGIAlgBKAHMAMgBQAP/U + /wD/sf8A/47/AP9r/wD/SP8A/yX/AP4A/gDcANwAuQC5AJYAlgBzAHMAUABQAP/U8AD/seIA/47UAP9r + xgD/SLgA/yWqAP8AqgDcAJIAuQB6AJYAYgBzAEoAUAAyAP/U4wD/sccA/46rAP9rjwD/SHMA/yVXAP8A + VQDcAEkAuQA9AJYAMQBzACUAUAAZAP/U1AD/sbEA/46OAP9rawD/SEgA/yUlAP4AAADcAAAAuQAAAJYA + AABzAAAAUAAAAP/j1AD/x7EA/6uOAP+PawD/c0gA/1clAP9VAADcSQAAuT0AAJYxAABzJQAAUBkAAP/w + 1AD/4rEA/9SOAP/GawD/uEgA/6olAP+qAADckgAAuXoAAJZiAABzSgAAUDIAAP//1AD//7EA//+OAP// + awD//0gA//8lAP7+AADc3AAAubkAAJaWAABzcwAAUFAAAPD/1ADi/7EA1P+OAMb/awC4/0gAqv8lAKr/ + AACS3AAAerkAAGKWAABKcwAAMlAAAOP/1ADH/7EAq/+OAI//awBz/0gAV/8lAFX/AABJ3AAAPbkAADGW + AAAlcwAAGVAAANT/1ACx/7EAjv+OAGv/awBI/0gAJf8lAAD+AAAA3AAAALkAAACWAAAAcwAAAFAAANT/ + 4wCx/8cAjv+rAGv/jwBI/3MAJf9XAAD/VQAA3EkAALk9AACWMQAAcyUAAFAZANT/8ACx/+IAjv/UAGv/ + xgBI/7gAJf+qAAD/qgAA3JIAALl6AACWYgAAc0oAAFAyANT//wCx//8Ajv//AGv//wBI//8AJf//AAD+ + /gAA3NwAALm5AACWlgAAc3MAAFBQAPLy8gDm5uYA2traAM7OzgDCwsIAtra2AKqqqgCenp4AkpKSAIaG + hgB6enoAbm5uAGJiYgBWVlYASkpKAD4+PgAyMjIAJiYmABoaGgAODg4A8Pv/AKSgoACAgIAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + /PwAAPz8/PwA/AAA/AAAAPwAAAD8/Pz8APwAAPwAAAAAAPwA/AAAAAD8AAD8AAD8APwAAPwAAAAA/AAA + /AAAAAAA/AD8AAAAAPwAAPwAAPwA/AAA/AAAAAD8AAD8AAAAAAD8APwAAAAA/AAA/AD8AAAA/AD8AAAA + APwAAPwAAAAAAPwA/AAAAAD8AAD8APwAAAD8APwAAAAA/AAA/AAAAPz8AAD8/PwAAPz8/AAA/AAAAPwA + /Pz8AAD8/PwAAAD8AAAAAPwAAAAA/AAA/AD8AAAA/AD8AAAAAPwAAPwAAPwAAAAA/AAAAAD8AAD8APwA + AAD8APwAAAAA/AAA/AAA/AAAAAD8AAAAAPwAAPwA/AAAAPwA/AAAAAD8AAD8AAD8AAAAAPwAAAAA/AAA + /AD8AAAA/AD8AAAAAPwAAPwAAAD8/AAA/Pz8/AD8/PwAAPwAAAD8APz8/PwA/Pz8AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + APn5+fn5+fn5AAAA+fn5AAAAAAD5+fkAAAAAAAAAAAAAAPn5+fn5+QAAAAAA+fkAAAAAAPn5AAAAAAAA + AAAAAAAAAAD5+QAAAAAAAAD5+QAAAAAA+fkAAAAAAAAAAAAAAAAAAPn5AAAAAAAAAPn5+fn5+fn5AAAA + AAAAAAAAAAAAAAAA+fkAAAAAAAAA+fn5+fn5+fkAAAAAAAAAAAAAAAAAAAD5+QAAAAAAAAD5+QAAAAAA + +fkAAAAAAAAAAAAAAAAAAPn5AAAAAAAAAPn5AAAAAAD5+QAAAAAAAAAAAAAAAAAA+fkAAAAAAAAA+fkA + AAAAAPn5AAAAAAAAAAAAAAAA+fn5+fn5AAAAAAD5+fn5+fn5+fkAAAAAAAAAAAAAAPn5+fn5+fn5AAAA + +fn5+fn5+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAP/////MLdwt9e2t7fXtre317XXt9e117cxj + dGO97XXtve117b3tde297XXtzCN0I//////////////////////gHHx/8D58//z+fP/8/gH//P4B//z+ + fP/8/nz//P58//A+AP/gHAH///////////8AAAAf/////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAKq77t2ZzAAAAAAAAAAAAAAAAAAAAAAAAAzMDAwAwAAAAA + wMDAwMAAAMzAzADAwAAAwADAwMDAAADMwMwAwMAAAAAAAAAAAAAAmZCQCQAAAAAJAJCQAAAAAAkAmQAA + AAAACQCQkAAAAACZkJmQAAAAAAAAAAAAAAD//wAAgAcAAP//AAD//wAAxW8AAPVXAADE1wAA3VcAAMTX + AAD//wAAxb8AAO1/AADs/wAA7X8AAMR/AAD//wAA +</value> + </data> +</root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -65,7 +65,7 @@ IRServerMode _mode; string _hostComputer; - bool _registered = false; // Used for relay and repeater modes. + bool _registered; // Used for relay and repeater modes. string[] _pluginNameReceive; IRServerPluginBase[] _pluginReceive; Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -2,12 +2,11 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +//using System.Security.Permissions; -// // 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("IR Server")] [assembly: AssemblyDescription("Provides multiple connections for local and network access to a remote control transceiver")] [assembly: AssemblyConfiguration("")] @@ -22,7 +21,9 @@ // 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: GuidAttribute("a94fbaf3-2d68-45da-8f4f-7dee41f00040")] + // Version information for an assembly consists of the following four values: // // Major Version @@ -38,4 +39,4 @@ [assembly: CLSCompliant(true)] -[assembly: GuidAttribute("a94fbaf3-2d68-45da-8f4f-7dee41f00040")] +//[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] Modified: trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Translator/ButtonMapping.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -55,7 +55,7 @@ #region Constructors - public ButtonMapping() : this(String.Empty, String.Empty, String.Empty) { } + public ButtonMapping() { } public ButtonMapping(string keyCode, string description, string command) { _keyCode = keyCode; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -92,7 +92,7 @@ /// <param name="config">Configuration to save.</param> /// <param name="fileName">File to save to.</param> /// <returns>Success.</returns> - public static bool Save(Configuration config, string fileName) + internal static bool Save(Configuration config, string fileName) { try { @@ -114,7 +114,7 @@ /// </summary> /// <param name="fileName">File to load from.</param> /// <returns>Loaded Configuration.</returns> - public static Configuration Load(string fileName) + internal static Configuration Load(string fileName) { try { Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -253,7 +253,9 @@ { for (int index = 0; index < args.Length; index++) { - switch (args[index].ToLowerInvariant()) + string command = args[index].ToLowerInvariant(); + + switch (command) { case "-macro": SendCopyDataMessage("Translator", Common.CmdPrefixMacro + args[++index]); @@ -303,7 +305,7 @@ copyData.lpData = Win32.VarPtr(data).ToInt32(); copyData.cbData = data.Length; - IntPtr windowHandle = Win32.FindWindow(null, targetWindow); + IntPtr windowHandle = Win32.FindWindowByTitle(targetWindow); if (windowHandle != IntPtr.Zero) { IntPtr result; Modified: trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Translator/ProgramSettings.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -144,7 +144,7 @@ /// Get the Command String to launch the program. /// </summary> /// <returns>Returns the Command String to launch the program.</returns> - public string LaunchCommand() + internal string LaunchCommand() { return String.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}", _filename, Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/GetKeyCodeForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/GetKeyCodeForm.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/GetKeyCodeForm.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -30,7 +30,7 @@ #endregion Properties delegate void DelegateKeyCodeSet(); - DelegateKeyCodeSet _keyCodeSet = null; + DelegateKeyCodeSet _keyCodeSet; void KeyCodeSet() { timer.Stop(); @@ -55,7 +55,7 @@ timer.Start(); } - + void MessageReceiver(IrssMessage received) { if (received.Type == MessageType.RemoteEvent) @@ -70,7 +70,7 @@ { KeyCodeSet(); } - + } } Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Setup.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Setup.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Setup.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -66,9 +66,10 @@ comboBoxComputer.Items.Clear(); comboBoxComputer.Items.Add("localhost"); - ArrayList networkPCs = IrssUtils.Win32.GetNetworkComputers(); + + string[] networkPCs = IrssUtils.Win32.GetNetworkComputers(false); if (networkPCs != null) - comboBoxComputer.Items.AddRange(networkPCs.ToArray()); + comboBoxComputer.Items.AddRange(networkPCs); } #endregion Constructor Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -30,11 +30,11 @@ #region Variables - static ClientMessageSink _handleMessage = null; + static ClientMessageSink _handleMessage; Client _client; - static bool _registered = false; + static bool _registered; string _serverHost; string _programFile; @@ -44,7 +44,7 @@ NotifyIcon _notifyIcon; - bool _inConfiguration = false; + bool _inConfiguration; #endregion Variables Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -184,7 +184,7 @@ } } - void ButtonPress(string keyCode) + static void ButtonPress(string keyCode) { if (!Program.Registered) return; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -33,10 +33,9 @@ static Client _client; - static bool _registered = false; + static bool _registered; static string _serverHost; - static string _lastKeyCode = String.Empty; static string _installFolder; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.Designer.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.Designer.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -55,6 +55,7 @@ this.connectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.disconnectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.changeServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.timerFlash = new System.Windows.Forms.Timer(this.components); this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); this.buttonAddButton = new System.Windows.Forms.Button(); @@ -62,7 +63,6 @@ this.buttonSetCode = new System.Windows.Forms.Button(); this.buttonSetShortcut = new System.Windows.Forms.Button(); this.comboBoxShortcut = new System.Windows.Forms.ComboBox(); - this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panelRemote.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxRemote)).BeginInit(); this.menuStrip.SuspendLayout(); @@ -216,42 +216,42 @@ // newToolStripMenuItem // this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.newToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.newToolStripMenuItem.Text = "New"; this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); // // openToolStripMenuItem // this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.openToolStripMenuItem.Text = "Open"; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // saveToolStripMenuItem // this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.saveToolStripMenuItem.Text = "Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // // saveAsToolStripMenuItem // this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.saveAsToolStripMenuItem.Text = "Save as ..."; this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); // // closeToolStripMenuItem // this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; - this.closeToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.closeToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.closeToolStripMenuItem.Text = "Close"; this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); // // quitToolStripMenuItem // this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; - this.quitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.quitToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.quitToolStripMenuItem.Text = "Quit"; this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); // @@ -286,9 +286,16 @@ this.changeServerToolStripMenuItem.Text = "Change Server"; this.changeServerToolStripMenuItem.Click += new System.EventHandler(this.changeServerToolStripMenuItem_Click); // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.helpToolStripMenuItem.Text = "Help"; + this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click); + // // timerFlash // - this.timerFlash.Interval = 750; + this.timerFlash.Interval = 1250; this.timerFlash.Tick += new System.EventHandler(this.timerFlash_Tick); // // saveFileDialog @@ -347,13 +354,6 @@ this.comboBoxShortcut.Size = new System.Drawing.Size(112, 21); this.comboBoxShortcut.TabIndex = 9; // - // helpToolStripMenuItem - // - this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); - this.helpToolStripMenuItem.Text = "Help"; - this.helpToolStripMenuItem.Click += new System.EventHandler(this.helpToolStripMenuItem_Click); - // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -28,20 +28,20 @@ #region Variables - Client _client = null; + Client _client; - bool _registered = false; + bool _registered; - string _serverHost = String.Empty; + string _serverHost = String.Empty; - bool _unsavedChanges = false; - //bool _fileOpen = false; + bool _unsavedChanges; + //bool _fileOpen; string _fileName = String.Empty; Label _currentButton = null; Point _mouseOffset; - bool _isMouseDown = false; + bool _isMouseDown; #endregion Variables Modified: trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj 2007-10-04 07:02:56 UTC (rev 973) @@ -44,11 +44,13 @@ </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\x86\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> + <DefineConstants> + </DefineConstants> <Optimize>true</Optimize> - <DebugType>pdbonly</DebugType> + <DebugType>none</DebugType> <PlatformTarget>x86</PlatformTarget> <ErrorReport>prompt</ErrorReport> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> <ItemGroup> <Reference Include="System" /> Modified: trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -62,10 +62,12 @@ /// <returns>true if the current object is equal to the other parameter; otherwise, false.</returns> public override bool Equals(object obj) { - if (!(obj is MessageManagerCombo)) + MessageManagerCombo asCombo = obj as MessageManagerCombo; + + if (asCombo == null) return false; - return Equals((MessageManagerCombo)obj); + return Equals(asCombo); } /// <summary> Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Properties/AssemblyInfo.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -2,6 +2,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +//using System.Security.Permissions; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -36,3 +37,5 @@ [assembly: AssemblyFileVersion("1.0.3.4")] [assembly: CLSCompliant(true)] + +//[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-03 03:14:49 UTC (rev 972) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -408,11 +408,11 @@ break; case "class": - windowHandle = Win32.FindWindow(commands[1], null); + windowHandle = Win32.FindWindowByClass(commands[1]); break; case "window": - windowHandle = Win32.FindWindow(null, commands[1]); + windowHandle = Win32.FindWindowByTitle(commands[1]); break; } Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.Designer.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.Designer.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -0,0 +1,174 @@ +namespace IrssUtils.Forms +{ + + partial class BlastCommand + { + /// <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.components = new System.ComponentModel.Container(); + this.labelIRFile = new System.Windows.Forms.Label(); + this.labelBlasterPort = new System.Windows.Forms.Label(); + this.comboBoxPort = new System.Windows.Forms.ComboBox(); + this.labelIRCommandFile = new System.Windows.Forms.Label(); + this.buttonTest = new System.Windows.Forms.Button(); + this.buttonOK = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.checkBoxUseForAll = new System.Windows.Forms.CheckBox(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.SuspendLayout(); + // + // labelIRFile + // + this.labelIRFile.Location = new System.Drawing.Point(8, 8); + this.labelIRFile.Name = "labelIRFile"; + this.labelIRFile.Size = new System.Drawing.Size(88, 20); + this.labelIRFile.TabIndex = 0; + this.labelIRFile.Text = "IR Command:"; + this.labelIRFile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // labelBlasterPort + // + this.labelBlasterPort.Location = new System.Drawing.Point(8, 40); + this.labelBlasterPort.Name = "labelBlasterPort"; + this.labelBlasterPort.Size = new System.Drawing.Size(88, 21); + this.labelBlasterPort.TabIndex = 2; + this.labelBlasterPort.Text = "Blaster port:"; + this.labelBlasterPort.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // comboBoxPort + // + this.comboBoxPort.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxPort.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxPort.FormattingEnabled = true; + this.comboBoxPort.Location = new System.Drawing.Point(96, 40); + this.comboBoxPort.Name = "comboBoxPort"; + this.comboBoxPort.Size = new System.Drawing.Size(160, 21); + this.comboBoxPort.TabIndex = 3; + this.toolTips.SetToolTip(this.comboBoxPort, "Choose the blaster port to transmit this command to"); + // + // labelIRCommandFile + // + this.labelIRCommandFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelIRCommandFile.AutoEllipsis = true; + this.labelIRCommandFile.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.labelIRCommandFile.Location = new System.Drawing.Point(96, 8); + this.labelIRCommandFile.Name = "labelIRCommandFile"; + this.labelIRCommandFile.Size = new System.Drawing.Size(248, 20); + this.labelIRCommandFile.TabIndex = 1; + this.labelIRCommandFile.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // buttonTest + // + this.buttonTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonTest.Location = new System.Drawing.Point(8, 72); + this.buttonTest.Name = "buttonTest"; + this.buttonTest.Size = new System.Drawing.Size(56, 24); + this.buttonTest.TabIndex = 4; + this.buttonTest.Text = "Test"; + this.toolTips.SetToolTip(this.buttonTest, "Test this blast command"); + this.buttonTest.UseVisualStyleBackColor = true; + this.buttonTest.Click += new System.EventHandler(this.buttonTest_Click); + // + // buttonOK + // + this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOK.Location = new System.Drawing.Point(224, 72); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(56, 24); + this.buttonOK.TabIndex = 6; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(288, 72); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(56, 24); + this.buttonCancel.TabIndex = 7; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // checkBoxUseForAll + // + this.checkBoxUseForAll.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.checkBoxUseForAll.Location = new System.Drawing.Point(72, 72); + this.checkBoxUseForAll.Name = "checkBoxUseForAll"; + this.checkBoxUseForAll.Size = new System.Drawing.Size(144, 24); + this.checkBoxUseForAll.TabIndex = 5; + this.checkBoxUseForAll.Text = "Use this port for all"; + this.toolTips.SetToolTip(this.checkBoxUseForAll, "Use the selected blaster port for all blast commands in this group"); + this.checkBoxUseForAll.UseVisualStyleBackColor = true; + this.checkBoxUseForAll.Visible = false; + // + // BlastCommand + // + this.AcceptButton = this.buttonOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.buttonCancel; + this.ClientSize = new System.Drawing.Size(352, 105); + this.Controls.Add(this.checkBoxUseForAll); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.buttonTest); + this.Controls.Add(this.labelIRCommandFile); + this.Controls.Add(this.labelBlasterPort); + this.Controls.Add(this.comboBoxPort); + this.Controls.Add(this.labelIRFile); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(360, 132); + this.Name = "BlastCommand"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Blast Command"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label labelIRFile; + private System.Windows.Forms.Label labelBlasterPort; + private System.Windows.Forms.ComboBox comboBoxPort; + private System.Windows.Forms.Label labelIRCommandFile; + private System.Windows.Forms.Button buttonTest; + private System.Windows.Forms.Button buttonOK; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.CheckBox checkBoxUseForAll; + private System.Windows.Forms.ToolTip toolTips; + } + +} Added: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs (rev 0) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs 2007-10-04 07:02:56 UTC (rev 973) @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IrssUtils.Forms +{ + + public partial class BlastCommand : Form + { + + #region Properties + + public string CommandString + { + get + { + return String.Format("{0}|{1}", + labelIRCommandFile.Text, + comboBoxPort.SelectedItem as string); + } + } + + public string BlasterPort + { + get { return comboBoxPort.SelectedItem as string; } + set { comboBoxPort.SelectedItem = value; } + } + + public bool UseForAll + { + get { return checkBoxUseForAll.Checked; } + } + + #endregion Properties + + #region Variables + + string _baseFolder; + + BlastIrDelegate _blastIrDelegate; + + #endregion Variables + + #region Constructors + + BlastCommand(BlastIrDelegate blastIrDelegate, string baseFolder, string[] ports) + { + if (blastIrDelegate == null) + throw new ArgumentNullException("blastIrDelegate"); + + if (String.IsNullOrEmpty(baseFolder)) + throw new ArgumentNullException("baseFolder"); + + if (ports == null) + throw new ArgumentNullException("ports"); + + InitializeComponent(); + + _blastIrDelegate = blastIrDelegate; + + _baseFolder = baseFolder; + + comboBoxPort.Items.AddRange(ports); + comboBoxPort.SelectedIndex = 0; + } + + public BlastCommand(BlastIrDelegate blastIrDelegate, string baseFolder, string[] ports, string name) + : this(blastIrDelegate, baseFolder, ports) + { + if (String.IsNullOrEmpty(name)) + throw new ArgumentNullException("fileName"); + + labelIRCommandFile.Text = name; + } + + public BlastCommand(BlastIrDelegate blastIrDelegate, string baseFolder, string[] ports, string[] commands) + : this(blastIrDelegate, baseFolder, ports) + { + if (commands == null) + throw new ArgumentNullException("commands"); + + labelIRCommandFile.Text = commands[0]; + + if (comboBoxPort.Items.Contains(commands[1])) + comboBoxPort.SelectedItem = commands[1]; + } + + public BlastCommand(BlastIrDelegate blastIrDelegate, string baseFolder, string[] ports, string name, bool useAllCheckBoxVisible, int commandCount) + : this(blastIrDelegate, baseFolder, ports, name) + { + checkBoxUseForAll.Text = String.Format("Use this port for all ({0})", commandCount); + checkBoxUseForAll.Visible = true; + } + + public BlastCommand(BlastIrDelegate blastIrDelegate, string baseFolder, string[] ports, string[] commands, bool useAllCheckBoxVisible, int commandCount) + : this(blastIrDelegate, baseFolder, ports, commands) + { + checkBoxUseForAll.Text = String.Format("Use this port for all ({0})", commandCount); + checkBoxUseForAll.Visible = true; + } + + #endregion Constructors + + #region Buttons + + private void buttonOK_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void buttonCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void buttonTest_Click(object sender, EventArgs e) + { + string name = labelIRCommandFile.Text.Trim(); + + if (name.Length == 0) + return; + + tr... [truncated message content] |
From: <an...@us...> - 2007-10-05 14:43:45
|
Revision: 975 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=975&view=rev Author: and-81 Date: 2007-10-05 07:43:44 -0700 (Fri, 05 Oct 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/MCEReplacement.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -105,12 +105,12 @@ #region Variables - Client _client = null; + Client _client; string _serverHost = "localhost"; string _learnIRFilename = null; - bool _registered = false; + bool _registered; IRServerInfo _irServerInfo = new IRServerInfo(); Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -21,9 +21,9 @@ #region Variables - static Client _client = null; + static Client _client; - static bool _registered = false; + static bool _registered; static string _serverHost = null; Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -22,9 +22,9 @@ #region Variables - static Client _client = null; + static Client _client; - static bool _registered = false; + static bool _registered; static string _serverHost = null; Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-10-05 14:43:44 UTC (rev 975) @@ -120,6 +120,9 @@ <ItemGroup> <Content Include="Icon.ico" /> <Content Include="Icon16.ico" /> + <Content Include="IRServer.exe.manifest"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> </ItemGroup> <ItemGroup> <EmbeddedResource Include="Advanced.resx"> Added: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.exe.manifest 2007-10-05 14:43:44 UTC (rev 975) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" > + <assemblyIdentity version="1.0.3.4" processorArchitecture="X86" name="IRServer" type="win32" /> + <description>Provides multiple connections for local and network access to a remote control transceiver</description> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="requireAdministrator" /> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -164,8 +164,23 @@ List<string> receivers = new List<string>(); foreach (IRServerPluginBase plugin in plugins) - if ((plugin is IRemoteReceiver || plugin is IKeyboardReceiver || plugin is IMouseReceiver) && plugin.Detect()) - receivers.Add(plugin.Name); + { + try + { + if ((plugin is IRemoteReceiver || plugin is IKeyboardReceiver || plugin is IMouseReceiver) && plugin.Detect()) + receivers.Add(plugin.Name); + } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine("IRServer: " + ex.ToString()); + } +#else + catch + { + } +#endif + } if (receivers.Count > 0) return receivers.ToArray(); Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Properties/AssemblyInfo.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -2,7 +2,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -//using System.Security.Permissions; +using System.Security.Permissions; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -39,4 +39,4 @@ [assembly: CLSCompliant(true)] -//[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] +[assembly: SecurityPermission(SecurityAction.RequestMinimum, Unrestricted = true)] Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -67,7 +67,11 @@ comboBoxCommands.Items.Add(Common.UITextHibernate); comboBoxCommands.Items.Add(Common.UITextReboot); comboBoxCommands.Items.Add(Common.UITextShutdown); - + + string[] macroList = Program.GetMacroList(true); + if (macroList != null && macroList.Length > 0) + comboBoxCommands.Items.AddRange(macroList); + string[] irList = Common.GetIRList(true); if (irList != null && irList.Length > 0) comboBoxCommands.Items.AddRange(irList); @@ -93,8 +97,13 @@ { writer.WriteStartElement("action"); - if (item.StartsWith(Common.CmdPrefixBlast)) + if (item.StartsWith(Common.CmdPrefixMacro)) { + writer.WriteAttributeString("command", Common.XmlTagMacro); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMacro.Length)); + } + else if (item.StartsWith(Common.CmdPrefixBlast)) + { writer.WriteAttributeString("command", Common.XmlTagBlast); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixBlast.Length)); } @@ -193,6 +202,10 @@ switch (item.Attributes["command"].Value) { + case Common.XmlTagMacro: + listBoxMacro.Items.Add(Common.CmdPrefixMacro + commandProperty); + break; + case Common.XmlTagBlast: listBoxMacro.Items.Add(Common.CmdPrefixBlast + commandProperty); break; @@ -332,6 +345,10 @@ if (blastCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixBlast + blastCommand.CommandString); } + else if (selected.StartsWith(Common.CmdPrefixMacro)) + { + listBoxMacro.Items.Add(selected); + } else { throw new ApplicationException(String.Format("Unknown command in macro command list \"{0}\"", selected)); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -33,13 +33,13 @@ #region Variables - static Client _client = null; + static Client _client; static Configuration _config; static string _learnIRFilename = null; - static bool _registered = false; + static bool _registered; static bool _firstConnection = true; @@ -52,6 +52,8 @@ //static Thread _focusWatcher; static IntPtr _currentForegroundWindow = IntPtr.Zero; + static List<string> _macroStack; + #endregion Variables #region Properties @@ -290,7 +292,7 @@ { UpdateForegroundWindow(); - //Program._mainForm.Focus(); + //_mainForm.Focus(); _notifyIcon.ContextMenuStrip.Show(Screen.PrimaryScreen.Bounds.Width / 4, Screen.PrimaryScreen.Bounds.Height / 4); @@ -433,13 +435,10 @@ { IntPtr result; Win32.SendMessageTimeout(hWnd, (int)msg, new IntPtr(wParam), new IntPtr(lParam), Win32.SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); + int lastError = Marshal.GetLastWin32Error(); - if (result == IntPtr.Zero) - { - int lastError = Marshal.GetLastWin32Error(); - if (lastError != 0) - throw new Win32Exception(lastError); - } + if (result == IntPtr.Zero && lastError != 0) + throw new Win32Exception(lastError); return true; } @@ -500,11 +499,11 @@ if (menuItem == null) return; - string fileName = Program.FolderMacros + menuItem.Text + Common.FileExtensionMacro; + string fileName = FolderMacros + menuItem.Text + Common.FileExtensionMacro; try { - Program.ProcessMacro(fileName); + ProcessMacro(fileName); } catch (Exception ex) { @@ -990,7 +989,6 @@ Win32.ExitWindowsEx(Win32.ExitWindows.ShutDown | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); } - static void MapEvent(MappingEvent theEvent) { if (_inConfiguration) @@ -1023,108 +1021,162 @@ } } + static void MacroStackAdd(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack == null) + { + _macroStack = new List<string>(); + } + else if (_macroStack.Contains(lowerCasedFileName)) + { + StringBuilder macroStackTrace = new StringBuilder(); + macroStackTrace.AppendLine("Macro infinite loop detected!"); + macroStackTrace.AppendLine(); + macroStackTrace.AppendLine("Stack trace:"); + + foreach (string macro in _macroStack) + { + if (macro.Equals(lowerCasedFileName)) + macroStackTrace.AppendLine(String.Format("--> {0}", macro)); + else + macroStackTrace.AppendLine(macro); + } + + macroStackTrace.AppendLine(String.Format("--> {0}", lowerCasedFileName)); + + throw new ApplicationException(macroStackTrace.ToString()); + } + + _macroStack.Add(lowerCasedFileName); + } + static void MacroStackRemove(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack.Contains(lowerCasedFileName)) + _macroStack.Remove(lowerCasedFileName); + + if (_macroStack.Count == 0) + _macroStack = null; + } + /// <summary> /// Process the supplied Macro file. /// </summary> /// <param name="fileName">Macro file to process (absolute path).</param> internal static void ProcessMacro(string fileName) { - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); + MacroStackAdd(fileName); - if (doc.DocumentElement.InnerText.Contains(Common.XmlTagBlast) && !_registered) - throw new ApplicationException("Cannot process Macro with Blast commands when not registered to an active IR Server"); + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(fileName); - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); - string commandProperty; - string commandName; + if (doc.DocumentElement.InnerText.Contains(Common.XmlTagBlast) && !_registered) + throw new ApplicationException("Cannot process Macro with Blast commands when not registered to an active IR Server"); - foreach (XmlNode item in commandSequence) - { - commandName = item.Attributes["command"].Value; - commandProperty = item.Attributes["cmdproperty"].Value; + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); + string commandProperty; - switch (commandName) + foreach (XmlNode item in commandSequence) { - case Common.XmlTagBlast: - { - string[] commands = Common.SplitBlastCommand(commandProperty); - BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); - break; - } + commandProperty = item.Attributes["cmdproperty"].Value; - case Common.XmlTagPause: - { - int sleep = int.Parse(commandProperty); - Thread.Sleep(sleep); - break; - } + switch (item.Attributes["command"].Value) + { + case Common.XmlTagMacro: + { + ProcessMacro(FolderMacros + commandProperty + Common.FileExtensionMacro); + break; + } - case Common.XmlTagRun: - { - string[] commands = Common.SplitRunCommand(commandProperty); - Common.ProcessRunCommand(commands); - break; - } + case Common.XmlTagBlast: + { + string[] commands = Common.SplitBlastCommand(commandProperty); + BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); + break; + } - case Common.XmlTagSerial: - { - string[] commands = Common.SplitSerialCommand(commandProperty); - Common.ProcessSerialCommand(commands); - break; - } + case Common.XmlTagPause: + { + int sleep = int.Parse(commandProperty); + Thread.Sleep(sleep); + break; + } - case Common.XmlTagWindowMsg: - { - string[] commands = Common.SplitWindowMessageCommand(commandProperty); - Common.ProcessWindowMessageCommand(commands); - break; - } + case Common.XmlTagRun: + { + string[] commands = Common.SplitRunCommand(commandProperty); + Common.ProcessRunCommand(commands); + break; + } - case Common.XmlTagTcpMsg: - { - string[] commands = Common.SplitTcpMessageCommand(commandProperty); - Common.ProcessTcpMessageCommand(commands); - break; - } + case Common.XmlTagSerial: + { + string[] commands = Common.SplitSerialCommand(commandProperty); + Common.ProcessSerialCommand(commands); + break; + } - case Common.XmlTagKeys: - { - Common.ProcessKeyCommand(commandProperty); - break; - } + case Common.XmlTagWindowMsg: + { + string[] commands = Common.SplitWindowMessageCommand(commandProperty); + Common.ProcessWindowMessageCommand(commands); + break; + } - case Common.XmlTagEject: - { - Common.ProcessEjectCommand(commandProperty); - break; - } + case Common.XmlTagTcpMsg: + { + string[] commands = Common.SplitTcpMessageCommand(commandProperty); + Common.ProcessTcpMessageCommand(commands); + break; + } - case Common.XmlTagStandby: - { - Standby(); - break; - } + case Common.XmlTagKeys: + { + Common.ProcessKeyCommand(commandProperty); + break; + } - case Common.XmlTagHibernate: - { - Hibernate(); - break; - } + case Common.XmlTagEject: + { + Common.ProcessEjectCommand(commandProperty); + break; + } - case Common.XmlTagShutdown: - { - ShutDown(); - break; - } + case Common.XmlTagStandby: + { + Standby(); + break; + } - case Common.XmlTagReboot: - { - Reboot(); - break; - } + case Common.XmlTagHibernate: + { + Hibernate(); + break; + } + + case Common.XmlTagShutdown: + { + ShutDown(); + break; + } + + case Common.XmlTagReboot: + { + Reboot(); + break; + } + } } } + finally + { + MacroStackRemove(fileName); + } } /// <summary> Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; using System.IO; using System.IO.Ports; @@ -115,6 +116,7 @@ #region XML Tags + public const string XmlTagMacro = "MACRO"; public const string XmlTagBlast = "BLAST"; public const string XmlTagPause = "PAUSE"; public const string XmlTagRun = "RUN"; @@ -427,7 +429,7 @@ int lastError = Marshal.GetLastWin32Error(); if (result == IntPtr.Zero) - Marshal.ThrowExceptionForHR(lastError); + throw new Win32Exception(lastError); } /// <summary> Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -70,7 +70,7 @@ if (String.IsNullOrEmpty(name)) throw new ArgumentNullException("name"); - Registry.SetValue(AutoRunPath, name, null); + Registry.SetValue(AutoRunPath, name, String.Empty, RegistryValueKind.String); } #endregion Methods Modified: trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -204,12 +204,19 @@ public override bool Detect() { - Guid hidGuid = new Guid(); - HidD_GetHidGuid(ref hidGuid); + try + { + Guid hidGuid = new Guid(); + HidD_GetHidGuid(ref hidGuid); - string devicePath = FindDevice(hidGuid, DeviceID); + string devicePath = FindDevice(hidGuid, DeviceID); - return (devicePath != null); + return (devicePath != null); + } + catch + { + return false; + } } public override bool Start() Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Advanced.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -12,18 +12,20 @@ namespace MicrosoftMceTransceiver { + [RegistryPermission(SecurityAction.Demand, + Read = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HidIr", + Write = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HidIr")] partial class Advanced : Form { #region Constants - const string HidIrRegKey = "SYSTEM\\CurrentControlSet\\Services\\HidIr"; + const string RegKey = "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\HidIr"; + const string RegValue = "Start"; - const string StartValue = "Start"; + const int SetEnabled = 3; + const int SetDisabled = 4; - const int HidIrEnabled = 3; - const int HidIrDisabled = 4; - #endregion Constants #region Constructor @@ -32,46 +34,42 @@ { InitializeComponent(); - using (RegistryKey regKey = Registry.LocalMachine.CreateSubKey(HidIrRegKey)) - { - if ((int)regKey.GetValue(StartValue, HidIrDisabled) == HidIrDisabled) - radioButtonDisabled.Checked = true; - else - radioButtonEnabled.Checked = true; - } + int currentValue = (int)Registry.GetValue(RegKey, RegValue, SetDisabled); + + if (currentValue == SetDisabled) + radioButtonDisabled.Checked = true; + else + radioButtonEnabled.Checked = true; } #endregion Constructor private void buttonOK_Click(object sender, EventArgs e) { - using (RegistryKey regKey = Registry.LocalMachine.CreateSubKey(HidIrRegKey)) - { - int currentValue = (int)regKey.GetValue(StartValue, HidIrDisabled); + int currentValue = (int)Registry.GetValue(RegKey, RegValue, SetDisabled); - bool changedValue = false; + bool changedValue = false; - if (radioButtonEnabled.Checked) + if (radioButtonEnabled.Checked) + { + if (currentValue == SetDisabled) { - if (currentValue == HidIrDisabled) - { - regKey.SetValue(StartValue, HidIrEnabled); - changedValue = true; - } + Registry.SetValue(RegKey, RegValue, SetEnabled, RegistryValueKind.DWord); + changedValue = true; } - else if (radioButtonDisabled.Checked) + } + else if (radioButtonDisabled.Checked) + { + if (currentValue != SetDisabled) { - if (currentValue != HidIrDisabled) - { - regKey.SetValue(StartValue, HidIrDisabled); - changedValue = true; - } + Registry.SetValue(RegKey, RegValue, SetDisabled, RegistryValueKind.DWord); + changedValue = true; } - - if (changedValue) - MessageBox.Show(this, "You must reboot for changes to take effect", "Reboot required", MessageBoxButtons.OK, MessageBoxIcon.Information); } + if (changedValue) + MessageBox.Show(this, "You must reboot for changes to take effect", "Reboot required", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.Close(); } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -611,14 +611,14 @@ _learningCode = null; return status; } - + public override void Send(IrCode code, uint port) { byte[] data = DataPacket(code); TransmitIR(data, code.Carrier, port); } - + #endregion Driver overrides #region Implementation Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -116,10 +116,17 @@ public override bool Detect() { - Guid deviceGuid; - string devicePath; + try + { + Guid deviceGuid; + string devicePath; - return FindDevice(out deviceGuid, out devicePath); + return FindDevice(out deviceGuid, out devicePath); + } + catch + { + return false; + } } public override bool Start() Modified: trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -125,7 +125,9 @@ return true; } } - catch { } + catch + { + } return false; } Modified: trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -46,7 +46,14 @@ public override bool Detect() { - return WinLircServer.IsServerRunning(); + try + { + return WinLircServer.IsServerRunning(); + } + catch + { + return false; + } } public override bool Start() Modified: trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -48,19 +48,18 @@ try { test = new X10Interface(); - if (test == null) - return false; + if (test != null) + return true; } catch { - return false; } finally { test = null; } - return true; + return false; } public override bool Start() Modified: trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -204,12 +204,19 @@ public override bool Detect() { - Guid guid = new Guid(); - HidD_GetHidGuid(ref guid); + try + { + Guid guid = new Guid(); + HidD_GetHidGuid(ref guid); - string devicePath = FindDevice(guid); + string devicePath = FindDevice(guid); - return (devicePath != null); + return (devicePath != null); + } + catch + { + return false; + } } public override bool Start() Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -73,9 +73,9 @@ comboBoxCommands.Items.Add(Common.UITextReboot); comboBoxCommands.Items.Add(Common.UITextShutdown); - string[] irList = Common.GetIRList(true); - if (irList != null && irList.Length > 0) - comboBoxCommands.Items.AddRange(irList); + string[] fileList = MPBlastZonePlugin.GetFileList(true); + if (fileList != null && fileList.Length > 0) + comboBoxCommands.Items.AddRange(fileList); } /// <summary> @@ -98,8 +98,13 @@ { writer.WriteStartElement("action"); - if (item.StartsWith(Common.CmdPrefixBlast)) + if (item.StartsWith(Common.CmdPrefixMacro)) { + writer.WriteAttributeString("command", Common.XmlTagMacro); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMacro.Length)); + } + else if (item.StartsWith(Common.CmdPrefixBlast)) + { writer.WriteAttributeString("command", Common.XmlTagBlast); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixBlast.Length)); } @@ -134,11 +139,11 @@ writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixPopup.Length)); } /* - else if (item.StartsWith(Common.CmdPrefixWindowState)) - { - writer.WriteAttributeString("command", Common.XmlTagWindowState); - writer.WriteAttributeString("cmdproperty", String.Empty); - } + else if (item.StartsWith(Common.CmdPrefixWindowState)) + { + writer.WriteAttributeString("command", Common.XmlTagWindowState); + writer.WriteAttributeString("cmdproperty", String.Empty); + } */ else if (item.StartsWith(Common.CmdPrefixFocus)) { @@ -210,6 +215,10 @@ switch (item.Attributes["command"].Value) { + case Common.XmlTagMacro: + listBoxMacro.Items.Add(Common.CmdPrefixMacro + commandProperty); + break; + case Common.XmlTagBlast: listBoxMacro.Items.Add(Common.CmdPrefixBlast + commandProperty); break; @@ -323,10 +332,10 @@ listBoxMacro.Items.Add(Common.CmdPrefixPopup + popupMessage.CommandString); } /* - else if (selected == Common.UITextWindowState) - { - listBoxMacro.Items.Add(Common.CmdPrefixWindowState); - } + else if (selected == Common.UITextWindowState) + { + listBoxMacro.Items.Add(Common.CmdPrefixWindowState); + } */ else if (selected == Common.UITextFocus) { @@ -363,6 +372,10 @@ if (blastCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixBlast + blastCommand.CommandString); } + else if (selected.StartsWith(Common.CmdPrefixMacro)) + { + listBoxMacro.Items.Add(selected); + } else { throw new ApplicationException(String.Format("Unknown command in macro command list \"{0}\"", selected)); Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -72,6 +72,8 @@ static IRServerInfo _irServerInfo = new IRServerInfo(); + static List<string> _macroStack; + #endregion Variables #region Properties @@ -505,180 +507,236 @@ } } + static void MacroStackAdd(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack == null) + { + _macroStack = new List<string>(); + } + else if (_macroStack.Contains(lowerCasedFileName)) + { + StringBuilder macroStackTrace = new StringBuilder(); + macroStackTrace.AppendLine("Macro infinite loop detected!"); + macroStackTrace.AppendLine(); + macroStackTrace.AppendLine("Stack trace:"); + + foreach (string macro in _macroStack) + { + if (macro.Equals(lowerCasedFileName)) + macroStackTrace.AppendLine(String.Format("--> {0}", macro)); + else + macroStackTrace.AppendLine(macro); + } + + macroStackTrace.AppendLine(String.Format("--> {0}", lowerCasedFileName)); + + throw new ApplicationException(macroStackTrace.ToString()); + } + + _macroStack.Add(lowerCasedFileName); + } + static void MacroStackRemove(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack.Contains(lowerCasedFileName)) + _macroStack.Remove(lowerCasedFileName); + + if (_macroStack.Count == 0) + _macroStack = null; + } + /// <summary> /// Process the supplied Macro file. /// </summary> /// <param name="fileName">Macro file to process (absolute path).</param> internal static void ProcessMacro(string fileName) { - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); + MacroStackAdd(fileName); - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); - string commandProperty; - string commandName; - - foreach (XmlNode item in commandSequence) + try { - commandName = item.Attributes["command"].Value; - commandProperty = item.Attributes["cmdproperty"].Value; + XmlDocument doc = new XmlDocument(); + doc.Load(fileName); - switch (commandName) + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); + string commandProperty; + string commandName; + + foreach (XmlNode item in commandSequence) { - case Common.XmlTagBlast: - { - string[] commands = Common.SplitBlastCommand(commandProperty); - BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); - break; - } + commandName = item.Attributes["command"].Value; + commandProperty = item.Attributes["cmdproperty"].Value; - case Common.XmlTagPause: - { - int sleep = int.Parse(commandProperty); - Thread.Sleep(sleep); - break; - } + switch (commandName) + { + case Common.XmlTagMacro: + { + ProcessMacro(FolderMacros + commandProperty + Common.FileExtensionMacro); + break; + } - case Common.XmlTagRun: - { - string[] commands = Common.SplitRunCommand(commandProperty); - Common.ProcessRunCommand(commands); - break; - } + case Common.XmlTagBlast: + { + string[] commands = Common.SplitBlastCommand(commandProperty); + BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); + break; + } - case Common.XmlTagSerial: - { - string[] commands = Common.SplitSerialCommand(commandProperty); - Common.ProcessSerialCommand(commands); - break; - } + case Common.XmlTagPause: + { + int sleep = int.Parse(commandProperty); + Thread.Sleep(sleep); + break; + } - case Common.XmlTagGoto: - { - if (InConfiguration) - MessageBox.Show(commandProperty, "Go To Window", MessageBoxButtons.OK, MessageBoxIcon.Information); - else - MPCommands.ProcessGoTo(commandProperty, MP_BasicHome); - break; - } + case Common.XmlTagRun: + { + string[] commands = Common.SplitRunCommand(commandProperty); + Common.ProcessRunCommand(commands); + break; + } - case Common.XmlTagPopup: - { - string[] commands = Common.SplitPopupCommand(commandProperty); + case Common.XmlTagSerial: + { + string[] commands = Common.SplitSerialCommand(commandProperty); + Common.ProcessSerialCommand(commands); + break; + } - if (InConfiguration) - MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); - else - MPCommands.ShowNotifyDialog(commands[0], commands[1], int.Parse(commands[2])); + case Common.XmlTagGoto: + { + if (InConfiguration) + MessageBox.Show(commandProperty, "Go To Window", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + MPCommands.ProcessGoTo(commandProperty, MP_BasicHome); + break; + } - break; - } + case Common.XmlTagPopup: + { + string[] commands = Common.SplitPopupCommand(commandProperty); - case Common.XmlTagWindowMsg: - { - string[] commands = Common.SplitWindowMessageCommand(commandProperty); - Common.ProcessWindowMessageCommand(commands); - break; - } + if (InConfiguration) + MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); + else + MPCommands.ShowNotifyDialog(commands[0], commands[1], int.Parse(commands[2])); - /* - case Common.XmlTagWindowState: - { - if (InConfiguration) - { - MessageBox.Show("Command to toggle the window state cannot be processed in configuration.", "Window State Toggle Command", MessageBoxButtons.OK, MessageBoxIcon.Information); - break; - } + break; + } - GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SWITCH_FULL_WINDOWED, 0, 0, 0, 0, 0, null); - - if (GUIGraphicsContext.DX9Device.PresentationParameters.Windowed) - msg.Param1 = 1; - - GUIWindowManager.SendMessage(msg); - break; - } - */ - case Common.XmlTagFocus: - { - if (InConfiguration) + case Common.XmlTagWindowMsg: { - MessageBox.Show("Command to get focus cannot be processed in configuration.", "Get Focus Command", MessageBoxButtons.OK, MessageBoxIcon.Information); + string[] commands = Common.SplitWindowMessageCommand(commandProperty); + Common.ProcessWindowMessageCommand(commands); break; } - GUIGraphicsContext.ResetLastActivity(); - GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GETFOCUS, 0, 0, 0, 0, 0, null); - GUIWindowManager.SendThreadMessage(msg); - break; - } + /* + case Common.XmlTagWindowState: + { + if (InConfiguration) + { + MessageBox.Show("Command to toggle the window state cannot be processed in configuration.", "Window State Toggle Command", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } - case Common.XmlTagExit: - { - if (!InConfiguration) - GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_EXIT, 0, 0)); - break; - } + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SWITCH_FULL_WINDOWED, 0, 0, 0, 0, 0, null); - case Common.XmlTagStandby: - { - if (!InConfiguration) + if (GUIGraphicsContext.DX9Device.PresentationParameters.Windowed) + msg.Param1 = 1; + + GUIWindowManager.SendMessage(msg); + break; + } + */ + case Common.XmlTagFocus: { + if (InConfiguration) + { + MessageBox.Show("Command to get focus cannot be processed in configuration.", "Get Focus Command", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } + GUIGraphicsContext.ResetLastActivity(); - // Stop all media before suspending or hibernating - g_Player.Stop(); + GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GETFOCUS, 0, 0, 0, 0, 0, null); + GUIWindowManager.SendThreadMessage(msg); + break; + } - GUIMessage msg; + case Common.XmlTagExit: + { + if (!InConfiguration) + GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_EXIT, 0, 0)); + break; + } - if (_mpBasicHome) - msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_SECOND_HOME, 0, null); - else - msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_HOME, 0, null); + case Common.XmlTagStandby: + { + if (!InConfiguration) + { + GUIGraphicsContext.ResetLastActivity(); + // Stop all media before suspending or hibernating + g_Player.Stop(); - GUIWindowManager.SendThreadMessage(msg); + GUIMessage msg; - WindowsController.ExitWindows(RestartOptions.Suspend, true); + if (_mpBasicHome) + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_SECOND_HOME, 0, null); + else + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_HOME, 0, null); + + GUIWindowManager.SendThreadMessage(msg); + + WindowsController.ExitWindows(RestartOptions.Suspend, true); + } + break; } - break; - } - case Common.XmlTagHibernate: - { - if (!InConfiguration) + case Common.XmlTagHibernate: { - GUIGraphicsContext.ResetLastActivity(); - // Stop all media before suspending or hibernating - g_Player.Stop(); + if (!InConfiguration) + { + GUIGraphicsContext.ResetLastActivity(); + // Stop all media before suspending or hibernating + g_Player.Stop(); - GUIMessage msg; + GUIMessage msg; - if (_mpBasicHome) - msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_SECOND_HOME, 0, null); - else - msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_HOME, 0, null); + if (_mpBasicHome) + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_SECOND_HOME, 0, null); + else + msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, (int)GUIWindow.Window.WINDOW_HOME, 0, null); - GUIWindowManager.SendThreadMessage(msg); + GUIWindowManager.SendThreadMessage(msg); - WindowsController.ExitWindows(RestartOptions.Hibernate, true); + WindowsController.ExitWindows(RestartOptions.Hibernate, true); + } + break; } - break; - } - case Common.XmlTagReboot: - { - if (!InConfiguration) - GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_REBOOT, 0, 0)); - break; - } + case Common.XmlTagReboot: + { + if (!InConfiguration) + GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_REBOOT, 0, 0)); + break; + } - case Common.XmlTagShutdown: - { - if (!InConfiguration) - GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_SHUTDOWN, 0, 0)); - break; - } + case Common.XmlTagShutdown: + { + if (!InConfiguration) + GUIGraphicsContext.OnAction(new Action(Action.ActionType.ACTION_SHUTDOWN, 0, 0)); + break; + } + } } } + finally + { + MacroStackRemove(fileName); + } } /// <summary> Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -77,9 +77,9 @@ comboBoxCommands.Items.Add(Common.UITextReboot); comboBoxCommands.Items.Add(Common.UITextShutdown); - string[] irList = Common.GetIRList(true); - if (irList != null && irList.Length > 0) - comboBoxCommands.Items.AddRange(irList); + string[] fileList = MPControlPlugin.GetFileList(true); + if (fileList != null && fileList.Length > 0) + comboBoxCommands.Items.AddRange(fileList); } /// <summary> @@ -102,8 +102,13 @@ { writer.WriteStartElement("action"); - if (item.StartsWith(Common.CmdPrefixBlast)) + if (item.StartsWith(Common.CmdPrefixMacro)) { + writer.WriteAttributeString("command", Common.XmlTagMacro); + writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMacro.Length)); + } + else if (item.StartsWith(Common.CmdPrefixBlast)) + { writer.WriteAttributeString("command", Common.XmlTagBlast); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixBlast.Length)); } @@ -158,11 +163,11 @@ writer.WriteAttributeString("cmdproperty", String.Empty); } /* - else if (item.StartsWith(Common.CmdPrefixWindowState)) - { - writer.WriteAttributeString("command", Common.XmlTagWindowState); - writer.WriteAttributeString("cmdproperty", String.Empty); - } + else if (item.StartsWith(Common.CmdPrefixWindowState)) + { + writer.WriteAttributeString("command", Common.XmlTagWindowState); + writer.WriteAttributeString("cmdproperty", String.Empty); + } */ else if (item.StartsWith(Common.CmdPrefixFocus)) { @@ -234,6 +239,10 @@ switch (item.Attributes["command"].Value) { + case Common.XmlTagMacro: + listBoxMacro.Items.Add(Common.CmdPrefixMacro + commandProperty); + break; + case Common.XmlTagBlast: listBoxMacro.Items.Add(Common.CmdPrefixBlast + commandProperty); break; @@ -389,10 +398,10 @@ listBoxMacro.Items.Add(Common.CmdPrefixInputLayer); } /* - else if (selected == Common.UITextWindowState) - { - listBoxMacro.Items.Add(Common.CmdPrefixWindowState); - } + else if (selected == Common.UITextWindowState) + { + listBoxMacro.Items.Add(Common.CmdPrefixWindowState); + } */ else if (selected == Common.UITextFocus) { @@ -429,6 +438,10 @@ if (blastCommand.ShowDialog(this) == DialogResult.OK) listBoxMacro.Items.Add(Common.CmdPrefixBlast + blastCommand.CommandString); } + else if (selected.StartsWith(Common.CmdPrefixMacro)) + { + listBoxMacro.Items.Add(selected); + } else { throw new ApplicationException(String.Format("Unknown command in macro command list \"{0}\"", selected)); Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs 2007-10-04 20:30:23 UTC (rev 974) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs 2007-10-05 14:43:44 UTC (rev 975) @@ -53,12 +53,12 @@ #region Variables - static Client _client = null; + static Client _client; static string _serverHost; static string _learnIRFilename = null; - static bool _registered = false; + static bool _registered; static bool _logVerbose; static bool _requireFocus; @@ -97,6 +97,8 @@ static IRServerInfo _irServerInfo = new IRServerInfo(); + static List<string> _macroStack; + #endregion Variables #region Properties @@ -1045,281 +1047,337 @@ MapEvent(MappedEvent.MappingEvent.PC_Resume); } + static void MacroStackAdd(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack == null) + { + _macroStack = new List<string>(); + } + else if (_macroStack.Contains(lowerCasedFileName)) + { + StringBuilder macroStackTrace = new StringBuilder(); + macroStackTrace.AppendLine("Macro infinite loop detected!"); + macroStackTrace.AppendLine(); + macroStackTrace.AppendLine("Stack trace:"); + + foreach (string macro in _macroStack) + { + if (macro.Equals(lowerCasedFileName)) + macroStackTrace.AppendLine(String.Format("--> {0}", macro)); + else + macroStackTrace.AppendLine(macro); + } + + macroStackTrace.AppendLine(String.Format("--> {0}", lowerCasedFileName)); + + throw new ApplicationException(macroStackTrace.ToString()); + } + + _macroStack.Add(lowerCasedFileName); + } + static void MacroStackRemove(string fileName) + { + string lowerCasedFileName = fileName.ToLowerInvariant(); + + if (_macroStack.Contains(lowerCasedFileName)) + _macroStack.Remove(lowerCasedFileName); + + if (_macroStack.Count == 0) + _macroStack = null; + } + /// <summary> /// Process the supplied Macro file. /// </summary> /// <param name="fileName">Macro file to process (absolute path).</param> internal static void ProcessMacro(string fileName) { - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); + MacroStackAdd(fileName); - XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); - string commandProperty; - string commandName; - - foreach (XmlNode item in commandSequence) + try { - commandName = item.Attributes["command"].Value; - commandProperty = item.Attributes["cmdproperty"].Value; + XmlDocument doc = new XmlDocument(); + doc.Load(fileName); - switch (commandName) + XmlNodeList commandSequence = doc.DocumentElement.SelectNodes("action"); + string commandProperty; + string commandName; + + foreach (XmlNode item in commandSequence) { - case Common.XmlTagBlast: - { - string[] commands = Common.SplitBlastCommand(commandProperty); - BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); - break; - } + commandName = item.Attributes["command"].Value; + commandProperty = item.Attributes["cmdproperty"].Value; - case Common.XmlTagPause: - { - int sleep = int.Parse(commandProperty); - Thread.Sleep(sleep); - break; - } + switch (commandName) + { + case Common.XmlTagMacro: + { + ProcessMacro(FolderMacros + commandProperty + Common.FileExtensionMacro); + break; + } - case Common.XmlTagRun: - { - string[] commands = Common.SplitRunCommand(commandProperty); - Common.ProcessRunCommand(commands); - break; - } + case Common.XmlTagBlast: + { + string[] commands = Common.SplitBlastCommand(commandProperty); + BlastIR(Common.FolderIRCommands + commands[0] + Common.FileExtensionIR, commands[1]); + break; + } - case Common.XmlTagSerial: - { - string[] commands = Common.SplitSerialCommand(commandProperty); - Common.ProcessSerialCommand(commands); - break; - } + case Common.XmlTagPause: + { + int sleep = int.Parse(commandProperty); + Thread.Sleep(sleep); + break; + } - case Common.XmlTagGoto: - { - if (InConfiguration) - MessageBox.Show(commandProperty, "Go To Window", MessageBoxButtons.OK, MessageBoxIcon.Information); - else - MPCommands.ProcessGoTo(commandProperty, MP_BasicHome); - break; - } + case Common.XmlTagRun: + { + string[] commands = Common.SplitRunCommand(commandProperty); + Common.ProcessRunCommand(commands); + break; + } - case Common.XmlTagPopup: - { - string[] commands = Common.SplitPopupCommand(commandProperty); + case Common.XmlTagSerial: + { + string[] commands = Common.SplitSerialCommand(commandProperty); + Common.ProcessSerialCommand(commands); + break; + } - if (InConfiguration) - MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); - else - MPCommands.ShowNotifyDialog(commands[0], commands[1], int.Parse(commands[2])); + case Common.XmlTagGoto: + { + if (InConfiguration) + MessageBox.Show(commandProperty, "Go To Window", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + MPCommands.ProcessGoTo(commandProperty, MP_BasicHome); + break; + } - break; - } + case Common.XmlTagPopup: + { + string[] commands = Common.SplitPopupCommand(commandProperty); - case Common.XmlTagWindowMsg: - { - string[] commands = Common.SplitWindowMessageCommand(commandProperty); - Common.ProcessWindowMessageCommand(commands); - break; - } + if (InConfiguration) + MessageBox.Show(commands[1], commands[0], MessageBoxButtons.OK, MessageBoxIcon.Information); + else + MPCommands.ShowNotifyDialog(commands[0], commands[1], int.Parse(commands[2])); - case Common.XmlTagKeys: - { - if (InConfiguration) - MessageBox.Show(commandProperty, "Keystroke Command", MessageBoxButtons.OK, MessageBoxIcon.Information); - else - Common.ProcessKeyCommand(commandProperty); - break; - } + break; + } - case Common.XmlTagMultiMap: - { - if (InConfiguration) - ... [truncated message content] |
From: <an...@us...> - 2007-10-09 07:36:04
|
Revision: 982 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=982&view=rev Author: and-81 Date: 2007-10-09 00:36:01 -0700 (Tue, 09 Oct 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.resx trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Common/IrssComms/Client.cs trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs trunk/plugins/IR Server Suite/Common/IrssComms/Server.cs trunk/plugins/IR Server Suite/Common/IrssUtils/CDRom.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/EjectCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ExternalProgram.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/KeysCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/MouseCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/PauseTime.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/PopupMessage.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/SerialCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/ServerAddress.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/TcpMessageCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/WindowList.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IRServerInfo.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Keyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32ErrorCodes.cs trunk/plugins/IR Server Suite/Common/MPUtils/ExternalChannelConfig.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionREMOTE Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IKeyboardReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IMouseReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IRServerPluginBase.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IRemoteReceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/ITransmitIR.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/CSocketPacket.cs trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTrans Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrCode.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MceDetectionData.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/NotifyWindow.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/RemoteDetectionData.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/NativeMethods.cs trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/UirtTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10 Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10Transceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.csproj trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MPControlPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/StbSetup.cs trunk/plugins/MCEReplacement/MCEReplacement.cs trunk/plugins/MCEReplacement/MCEReplacement.csproj trunk/plugins/MCEReplacement/MappedEvent.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Delete.png trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Plus.png Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -110,9 +110,9 @@ GC.SuppressFinalize(this); } - protected virtual void Dispose(bool disposeManagedResources) + protected virtual void Dispose(bool disposing) { - if (disposeManagedResources) + if (disposing) { // Dispose managed resources ... @@ -718,15 +718,31 @@ { foreach (IRServerPluginBase plugin in _pluginReceive) { - if (_pluginTransmit == plugin) - resumedTransmit = true; + try + { + plugin.Resume(); - plugin.Resume(); + if (plugin == _pluginTransmit) + resumedTransmit = true; + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } } } if (_pluginTransmit != null && !resumedTransmit) - _pluginTransmit.Resume(); + { + try + { + _pluginTransmit.Resume(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } // Inform clients ... if (_mode == IRServerMode.ServerMode) @@ -747,15 +763,31 @@ { foreach (IRServerPluginBase plugin in _pluginReceive) { - if (_pluginTransmit == plugin) - suspendedTransmit = true; + try + { + plugin.Suspend(); - plugin.Suspend(); + if (plugin == _pluginTransmit) + suspendedTransmit = true; + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } } } if (_pluginTransmit != null && !suspendedTransmit) - _pluginTransmit.Suspend(); + { + try + { + _pluginTransmit.Suspend(); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } + } // Inform clients ... if (_mode == IRServerMode.ServerMode) Modified: trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Configuration.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -91,7 +91,7 @@ /// </summary> /// <param name="config">Configuration to save.</param> /// <param name="fileName">File to save to.</param> - /// <returns>Success.</returns> + /// <returns>true if successful, otherwise false.</returns> internal static bool Save(Configuration config, string fileName) { try Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -402,7 +402,8 @@ } textBoxCommand.Text = _command = - String.Format("{0}|{1}|{2}|{3}|{4}", + String.Format("{0}{1}|{2}|{3}|{4}|{5}", + Common.CmdPrefixWindowMsg, target, textBoxMsgTarget.Text, numericUpDownMsg.Value.ToString(), Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -57,13 +57,13 @@ this.columnHeaderEvent = new System.Windows.Forms.ColumnHeader(); this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); this.tabPageIRCommands = new System.Windows.Forms.TabPage(); - this.listBoxIR = new System.Windows.Forms.ListBox(); + this.listViewIR = new System.Windows.Forms.ListView(); this.buttonNewIR = new System.Windows.Forms.Button(); this.buttonEditIR = new System.Windows.Forms.Button(); this.buttonDeleteIR = new System.Windows.Forms.Button(); this.tabPageMacro = new System.Windows.Forms.TabPage(); + this.listViewMacro = new System.Windows.Forms.ListView(); this.buttonTestMacro = new System.Windows.Forms.Button(); - this.listBoxMacro = new System.Windows.Forms.ListBox(); this.buttonDeleteMacro = new System.Windows.Forms.Button(); this.buttonNewMacro = new System.Windows.Forms.Button(); this.buttonEditMacro = new System.Windows.Forms.Button(); @@ -136,11 +136,11 @@ // buttonRemoveProgram // this.buttonRemoveProgram.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRemoveProgram.Image = global::Translator.Properties.Resources.Delete; this.buttonRemoveProgram.Location = new System.Drawing.Point(336, 16); this.buttonRemoveProgram.Name = "buttonRemoveProgram"; this.buttonRemoveProgram.Size = new System.Drawing.Size(24, 24); this.buttonRemoveProgram.TabIndex = 2; - this.buttonRemoveProgram.Text = "-"; this.toolTip.SetToolTip(this.buttonRemoveProgram, "Remove the current program from the list"); this.buttonRemoveProgram.UseVisualStyleBackColor = true; this.buttonRemoveProgram.Click += new System.EventHandler(this.buttonRemoveProgram_Click); @@ -148,11 +148,11 @@ // buttonAddProgram // this.buttonAddProgram.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonAddProgram.Image = global::Translator.Properties.Resources.Plus; this.buttonAddProgram.Location = new System.Drawing.Point(304, 16); this.buttonAddProgram.Name = "buttonAddProgram"; this.buttonAddProgram.Size = new System.Drawing.Size(24, 24); this.buttonAddProgram.TabIndex = 1; - this.buttonAddProgram.Text = "+"; this.toolTip.SetToolTip(this.buttonAddProgram, "Add a program to the list"); this.buttonAddProgram.UseVisualStyleBackColor = true; this.buttonAddProgram.Click += new System.EventHandler(this.buttonAddProgram_Click); @@ -249,7 +249,7 @@ this.buttonOK.Location = new System.Drawing.Point(384, 440); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(64, 24); - this.buttonOK.TabIndex = 5; + this.buttonOK.TabIndex = 3; this.buttonOK.Text = "&OK"; this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); @@ -401,7 +401,7 @@ // // tabPageIRCommands // - this.tabPageIRCommands.Controls.Add(this.listBoxIR); + this.tabPageIRCommands.Controls.Add(this.listViewIR); this.tabPageIRCommands.Controls.Add(this.buttonNewIR); this.tabPageIRCommands.Controls.Add(this.buttonEditIR); this.tabPageIRCommands.Controls.Add(this.buttonDeleteIR); @@ -413,18 +413,24 @@ this.tabPageIRCommands.Text = "IR Commands"; this.tabPageIRCommands.UseVisualStyleBackColor = true; // - // listBoxIR + // listViewIR // - this.listBoxIR.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.listViewIR.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.listBoxIR.FormattingEnabled = true; - this.listBoxIR.IntegralHeight = false; - this.listBoxIR.Location = new System.Drawing.Point(8, 8); - this.listBoxIR.Name = "listBoxIR"; - this.listBoxIR.Size = new System.Drawing.Size(416, 328); - this.listBoxIR.TabIndex = 0; - this.listBoxIR.DoubleClick += new System.EventHandler(this.listBoxIR_DoubleClick); + this.listViewIR.FullRowSelect = true; + this.listViewIR.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listViewIR.HideSelection = false; + this.listViewIR.LabelEdit = true; + this.listViewIR.Location = new System.Drawing.Point(8, 8); + this.listViewIR.MultiSelect = false; + this.listViewIR.Name = "listViewIR"; + this.listViewIR.Size = new System.Drawing.Size(416, 328); + this.listViewIR.TabIndex = 0; + this.listViewIR.UseCompatibleStateImageBehavior = false; + this.listViewIR.View = System.Windows.Forms.View.List; + this.listViewIR.DoubleClick += new System.EventHandler(this.listViewIR_DoubleClick); + this.listViewIR.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listViewIR_AfterLabelEdit); // // buttonNewIR // @@ -464,8 +470,8 @@ // // tabPageMacro // + this.tabPageMacro.Controls.Add(this.listViewMacro); this.tabPageMacro.Controls.Add(this.buttonTestMacro); - this.tabPageMacro.Controls.Add(this.listBoxMacro); this.tabPageMacro.Controls.Add(this.buttonDeleteMacro); this.tabPageMacro.Controls.Add(this.buttonNewMacro); this.tabPageMacro.Controls.Add(this.buttonEditMacro); @@ -477,6 +483,25 @@ this.tabPageMacro.Text = "Macros"; this.tabPageMacro.UseVisualStyleBackColor = true; // + // listViewMacro + // + this.listViewMacro.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.listViewMacro.FullRowSelect = true; + this.listViewMacro.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; + this.listViewMacro.HideSelection = false; + this.listViewMacro.LabelEdit = true; + this.listViewMacro.Location = new System.Drawing.Point(8, 8); + this.listViewMacro.MultiSelect = false; + this.listViewMacro.Name = "listViewMacro"; + this.listViewMacro.Size = new System.Drawing.Size(416, 328); + this.listViewMacro.TabIndex = 5; + this.listViewMacro.UseCompatibleStateImageBehavior = false; + this.listViewMacro.View = System.Windows.Forms.View.List; + this.listViewMacro.DoubleClick += new System.EventHandler(this.listViewMacro_DoubleClick); + this.listViewMacro.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.listViewMacro_AfterLabelEdit); + // // buttonTestMacro // this.buttonTestMacro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -489,19 +514,6 @@ this.buttonTestMacro.UseVisualStyleBackColor = true; this.buttonTestMacro.Click += new System.EventHandler(this.buttonTestMacro_Click); // - // listBoxMacro - // - this.listBoxMacro.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.listBoxMacro.FormattingEnabled = true; - this.listBoxMacro.IntegralHeight = false; - this.listBoxMacro.Location = new System.Drawing.Point(8, 8); - this.listBoxMacro.Name = "listBoxMacro"; - this.listBoxMacro.Size = new System.Drawing.Size(416, 328); - this.listBoxMacro.TabIndex = 0; - this.listBoxMacro.DoubleClick += new System.EventHandler(this.listBoxMacro_DoubleClick); - // // buttonDeleteMacro // this.buttonDeleteMacro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -541,10 +553,11 @@ // checkBoxAutoRun // this.checkBoxAutoRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxAutoRun.AutoSize = true; this.checkBoxAutoRun.Location = new System.Drawing.Point(16, 440); this.checkBoxAutoRun.Name = "checkBoxAutoRun"; - this.checkBoxAutoRun.Size = new System.Drawing.Size(184, 24); - this.checkBoxAutoRun.TabIndex = 4; + this.checkBoxAutoRun.Size = new System.Drawing.Size(167, 17); + this.checkBoxAutoRun.TabIndex = 2; this.checkBoxAutoRun.Text = "&Start Translator with Windows"; this.toolTip.SetToolTip(this.checkBoxAutoRun, "Set this to make Translator automatically start when you turn the computer on"); this.checkBoxAutoRun.UseVisualStyleBackColor = true; @@ -573,58 +586,58 @@ this.toolStripSeparator2, this.quitToolStripMenuItem}); this.configurationToolStripMenuItem.Name = "configurationToolStripMenuItem"; - this.configurationToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.configurationToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.configurationToolStripMenuItem.Text = "&File"; // // newToolStripMenuItem // this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.newToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.newToolStripMenuItem.Text = "&New"; this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); // // openToolStripMenuItem // this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.openToolStripMenuItem.Text = "&Open ..."; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // importToolStripMenuItem // this.importToolStripMenuItem.Name = "importToolStripMenuItem"; - this.importToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.importToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.importToolStripMenuItem.Text = "&Import ..."; this.importToolStripMenuItem.Click += new System.EventHandler(this.importToolStripMenuItem_Click); // // exportToolStripMenuItem // this.exportToolStripMenuItem.Name = "exportToolStripMenuItem"; - this.exportToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.exportToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.exportToolStripMenuItem.Text = "&Export ..."; this.exportToolStripMenuItem.Click += new System.EventHandler(this.exportToolStripMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(129, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(119, 6); // // serverToolStripMenuItem // this.serverToolStripMenuItem.Name = "serverToolStripMenuItem"; - this.serverToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.serverToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.serverToolStripMenuItem.Text = "&Server ..."; this.serverToolStripMenuItem.Click += new System.EventHandler(this.serverToolStripMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(129, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(119, 6); // // quitToolStripMenuItem // this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; - this.quitToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.quitToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.quitToolStripMenuItem.Text = "&Quit"; this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); // @@ -634,20 +647,20 @@ this.translatorHelpToolStripMenuItem, this.aboutToolStripMenuItem}); this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20); this.helpToolStripMenuItem.Text = "&Help"; // // translatorHelpToolStripMenuItem // this.translatorHelpToolStripMenuItem.Name = "translatorHelpToolStripMenuItem"; - this.translatorHelpToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.translatorHelpToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.translatorHelpToolStripMenuItem.Text = "&Contents"; this.translatorHelpToolStripMenuItem.Click += new System.EventHandler(this.translatorHelpToolStripMenuItem_Click); // // aboutToolStripMenuItem // this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; - this.aboutToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(122, 22); this.aboutToolStripMenuItem.Text = "&About"; this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); // @@ -674,7 +687,7 @@ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MainMenuStrip = this.menuStrip; this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(464, 475); + this.MinimumSize = new System.Drawing.Size(472, 508); this.Name = "MainForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Translator"; @@ -711,13 +724,11 @@ private System.Windows.Forms.TabControl tabControl; private System.Windows.Forms.TabPage tabPagePrograms; private System.Windows.Forms.TabPage tabPageIRCommands; - private System.Windows.Forms.ListBox listBoxIR; private System.Windows.Forms.Button buttonNewIR; private System.Windows.Forms.Button buttonEditIR; private System.Windows.Forms.Button buttonDeleteIR; private System.Windows.Forms.TabPage tabPageMacro; private System.Windows.Forms.Button buttonTestMacro; - private System.Windows.Forms.ListBox listBoxMacro; private System.Windows.Forms.Button buttonDeleteMacro; private System.Windows.Forms.Button buttonNewMacro; private System.Windows.Forms.Button buttonEditMacro; @@ -749,6 +760,8 @@ private System.Windows.Forms.ToolStripMenuItem serverToolStripMenuItem; private System.Windows.Forms.OpenFileDialog openFileDialog; private System.Windows.Forms.SaveFileDialog saveFileDialog; + private System.Windows.Forms.ListView listViewIR; + private System.Windows.Forms.ListView listViewMacro; } } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -189,19 +189,21 @@ } void RefreshIRList() { - listBoxIR.Items.Clear(); + listViewIR.Items.Clear(); string[] irList = Common.GetIRList(false); if (irList != null && irList.Length > 0) - listBoxIR.Items.AddRange(irList); + foreach (string irFile in irList) + listViewIR.Items.Add(irFile); } void RefreshMacroList() { - listBoxMacro.Items.Clear(); + listViewMacro.Items.Clear(); string[] macroList = Program.GetMacroList(false); if (macroList != null && macroList.Length > 0) - listBoxMacro.Items.AddRange(macroList); + foreach (string macroFile in macroList) + listViewMacro.Items.Add(macroFile); Program.UpdateNotifyMenu(); } @@ -251,48 +253,48 @@ void EditIR() { - if (listBoxIR.SelectedIndex != -1) + if (listViewIR.SelectedItems.Count != 1) + return; + + string command = listViewIR.SelectedItems[0].Text; + string fileName = Common.FolderIRCommands + command + Common.FileExtensionIR; + + if (File.Exists(fileName)) { - string command = listBoxIR.SelectedItem as string; - string fileName = Common.FolderIRCommands + command + Common.FileExtensionIR; + _learnIR = new LearnIR( + new LearnIrDelegate(Program.LearnIR), + new BlastIrDelegate(Program.BlastIR), + Program.TransceiverInformation.Ports, + command); - if (File.Exists(fileName)) - { - _learnIR = new LearnIR( - new LearnIrDelegate(Program.LearnIR), - new BlastIrDelegate(Program.BlastIR), - Program.TransceiverInformation.Ports, - command); + _learnIR.ShowDialog(this); - _learnIR.ShowDialog(this); - - _learnIR = null; - } - else - { - MessageBox.Show(this, "File not found: " + fileName, "IR file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - RefreshIRList(); - } + _learnIR = null; } + else + { + MessageBox.Show(this, "File not found: " + fileName, "IR file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + RefreshIRList(); + } } void EditMacro() { - if (listBoxMacro.SelectedIndex != -1) + if (listViewMacro.SelectedItems.Count != 1) + return; + + string command = listViewMacro.SelectedItems[0].Text; + string fileName = Program.FolderMacros + command + Common.FileExtensionMacro; + + if (File.Exists(fileName)) { - string command = listBoxMacro.SelectedItem as string; - string fileName = Program.FolderMacros + command + Common.FileExtensionMacro; - - if (File.Exists(fileName)) - { - MacroEditor macroEditor = new MacroEditor(command); - macroEditor.ShowDialog(this); - } - else - { - MessageBox.Show(this, "File not found: " + fileName, "Macro file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - RefreshMacroList(); - } + MacroEditor macroEditor = new MacroEditor(command); + macroEditor.ShowDialog(this); } + else + { + MessageBox.Show(this, "File not found: " + fileName, "Macro file missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + RefreshMacroList(); + } } void CommitEvents() @@ -349,6 +351,7 @@ } } + // TODO: Move to a notify window protected override void WndProc(ref Message m) { try @@ -365,7 +368,7 @@ byte[] dataBytes = new byte[dataStructure.cbData]; IntPtr lpData = new IntPtr(dataStructure.lpData); System.Runtime.InteropServices.Marshal.Copy(lpData, dataBytes, 0, dataStructure.cbData); - string strData = Encoding.Default.GetString(dataBytes); + string strData = Encoding.ASCII.GetString(dataBytes); Program.ProcessCommand(strData); } @@ -638,32 +641,21 @@ } private void buttonEditIR_Click(object sender, EventArgs e) { - if (listBoxIR.SelectedIndex == -1) - return; - - _learnIR = new LearnIR( - new LearnIrDelegate(Program.LearnIR), - new BlastIrDelegate(Program.BlastIR), - Program.TransceiverInformation.Ports, - listBoxIR.SelectedItem as string); - - _learnIR.ShowDialog(this); - - _learnIR = null; + EditIR(); } private void buttonDeleteIR_Click(object sender, EventArgs e) { - if (listBoxIR.SelectedIndex == -1) + if (listViewIR.SelectedItems.Count != 1) return; - string file = listBoxIR.SelectedItem as string; + string file = listViewIR.SelectedItems[0].Text; string fileName = Common.FolderIRCommands + file + Common.FileExtensionIR; if (File.Exists(fileName)) { if (MessageBox.Show(this, "Are you sure you want to delete \"" + file + "\"?", "Confirm delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { File.Delete(fileName); - listBoxIR.Items.Remove(listBoxIR.SelectedItem); + listViewIR.Items.Remove(listViewIR.SelectedItems[0]); } } else @@ -685,17 +677,17 @@ } private void buttonDeleteMacro_Click(object sender, EventArgs e) { - if (listBoxMacro.SelectedIndex == -1) + if (listViewMacro.SelectedItems.Count != 1) return; - string file = listBoxMacro.SelectedItem as string; + string file = listViewMacro.SelectedItems[0].Text; string fileName = Program.FolderMacros + file + Common.FileExtensionMacro; if (File.Exists(fileName)) { if (MessageBox.Show(this, "Are you sure you want to delete \"" + file + "\"?", "Confirm delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { File.Delete(fileName); - listBoxMacro.Items.Remove(listBoxMacro.SelectedItem); + listViewMacro.Items.Remove(listViewMacro.SelectedItems[0]); } } else @@ -705,10 +697,10 @@ } private void buttonTestMacro_Click(object sender, EventArgs e) { - if (listBoxMacro.SelectedIndex == -1) + if (listViewMacro.SelectedItems.Count != 1) return; - string fileName = Program.FolderMacros + listBoxMacro.SelectedItem as string + Common.FileExtensionMacro; + string fileName = Program.FolderMacros + listViewMacro.SelectedItems[0].Text + Common.FileExtensionMacro; try { @@ -720,16 +712,86 @@ } } - private void listBoxIR_DoubleClick(object sender, EventArgs e) + private void listViewIR_DoubleClick(object sender, EventArgs e) { EditIR(); } + private void listViewIR_AfterLabelEdit(object sender, LabelEditEventArgs e) + { + ListView origin = sender as ListView; + if (origin == null) + return; - private void listBoxMacro_DoubleClick(object sender, EventArgs e) + ListViewItem originItem = origin.Items[e.Item]; + + string oldFileName = Common.FolderIRCommands + originItem.Text + Common.FileExtensionIR; + if (!File.Exists(oldFileName)) + { + MessageBox.Show("File not found: " + oldFileName, "Cannot rename, Original file not found", MessageBoxButtons.OK, MessageBoxIcon.Error); + e.CancelEdit = true; + return; + } + + if (String.IsNullOrEmpty(e.Label) || !Common.IsValidFileName(e.Label)) + { + MessageBox.Show("File name not valid: " + e.Label, "Cannot rename, New file name not valid", MessageBoxButtons.OK, MessageBoxIcon.Error); + e.CancelEdit = true; + return; + } + + try + { + string newFileName = Common.FolderIRCommands + e.Label + Common.FileExtensionIR; + + File.Move(oldFileName, newFileName); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + MessageBox.Show(ex.ToString(), "Failed to rename file", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void listViewMacro_DoubleClick(object sender, EventArgs e) { EditMacro(); } + private void listViewMacro_AfterLabelEdit(object sender, LabelEditEventArgs e) + { + ListView origin = sender as ListView; + if (origin == null) + return; + ListViewItem originItem = origin.Items[e.Item]; + + string oldFileName = Program.FolderMacros + originItem.Text + Common.FileExtensionMacro; + if (!File.Exists(oldFileName)) + { + MessageBox.Show("File not found: " + oldFileName, "Cannot rename, Original file not found", MessageBoxButtons.OK, MessageBoxIcon.Error); + e.CancelEdit = true; + return; + } + + if (String.IsNullOrEmpty(e.Label) || !Common.IsValidFileName(e.Label)) + { + MessageBox.Show("File name not valid: " + e.Label, "Cannot rename, New file name not valid", MessageBoxButtons.OK, MessageBoxIcon.Error); + e.CancelEdit = true; + return; + } + + try + { + string newFileName = Program.FolderMacros + e.Label + Common.FileExtensionMacro; + + File.Move(oldFileName, newFileName); + } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + MessageBox.Show(ex.ToString(), "Failed to rename file", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + private void checkBoxAutoRun_CheckedChanged(object sender, EventArgs e) { if (checkBoxAutoRun.Checked) Added: trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Delete.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Delete.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Plus.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/IR Server Suite/Applications/Translator/Graphics/Plus.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -221,7 +221,7 @@ { try { - IntPtr hWnd = Win32.GetForegroundWindow(); + IntPtr hWnd = Win32.ForegroundWindow(); if (hWnd == IntPtr.Zero) return; @@ -233,16 +233,16 @@ return; /* - string windowTitle = Win32.GetWindowTitle(hWnd); - if (windowTitle.StartsWith("Translator", StringComparison.InvariantCultureIgnoreCase)) - return; + string windowTitle = Win32.GetWindowTitle(hWnd); + if (windowTitle.StartsWith("Translator", StringComparison.InvariantCultureIgnoreCase)) + return; - int procID; - Win32.GetWindowThreadProcessId(hWnd, out procID); - Process proc = Process.GetProcessById(procID); - if (proc.MainModule.ModuleName.Equals("Translator.exe", StringComparison.InvariantCultureIgnoreCase)) - return; - */ + int procID; + Win32.GetWindowThreadProcessId(hWnd, out procID); + Process proc = Process.GetProcessById(procID); + if (proc.MainModule.ModuleName.Equals("Translator.exe", StringComparison.InvariantCultureIgnoreCase)) + return; + */ _currentForegroundWindow = hWnd; } @@ -283,6 +283,10 @@ SendCopyDataMessage("Translator", Common.CmdPrefixHibernate); continue; + case "-logoff": + SendCopyDataMessage("Translator", Common.CmdPrefixLogOff); + continue; + //TODO: Add more command line options. } } @@ -302,22 +306,22 @@ static void SendCopyDataMessage(string targetWindow, string data) { Win32.COPYDATASTRUCT copyData; - + + byte[] dataBytes = Encoding.ASCII.GetBytes(data); + copyData.dwData = 24; - copyData.lpData = Win32.VarPtr(data).ToInt32(); - copyData.cbData = data.Length; + copyData.lpData = Win32.VarPtr(dataBytes).ToInt32(); + copyData.cbData = dataBytes.Length; IntPtr windowHandle = Win32.FindWindowByTitle(targetWindow); if (windowHandle != IntPtr.Zero) { IntPtr result; Win32.SendMessageTimeout(windowHandle, (int)Win32.WindowsMessage.WM_COPYDATA, IntPtr.Zero, Win32.VarPtr(copyData), Win32.SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); + int lastError = Marshal.GetLastWin32Error(); - if (result == IntPtr.Zero) - { - int lastError = Marshal.GetLastWin32Error(); + if (result == IntPtr.Zero && lastError != 0) throw new Win32Exception(lastError); - } } } @@ -404,7 +408,7 @@ actions.DropDownItems.Add("System Standby", null, new EventHandler(ClickAction)); actions.DropDownItems.Add("System Hibernate", null, new EventHandler(ClickAction)); actions.DropDownItems.Add("System Reboot", null, new EventHandler(ClickAction)); - //actions.DropDownItems.Add("System Logoff", null, new EventHandler(ClickAction)); + actions.DropDownItems.Add("System LogOff", null, new EventHandler(ClickAction)); actions.DropDownItems.Add("System Shutdown", null, new EventHandler(ClickAction)); actions.DropDownItems.Add(new ToolStripSeparator()); @@ -583,11 +587,9 @@ Reboot(); break; - /* - case "System Logoff": + case "System LogOff": LogOff(); break; - */ case "System Shutdown": ShutDown(); @@ -976,17 +978,17 @@ static void Reboot() { IrssLog.Info("Reboot"); - Win32.ExitWindowsEx(Win32.ExitWindows.Reboot | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); + Win32.WindowsExit(Win32.ExitWindows.Reboot | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); } - /*static void LogOff() + static void LogOff() { IrssLog.Info("LogOff"); - Win32.ExitWindowsEx(Win32.ExitWindows.LogOff | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReason.FlagUserDefined); - }*/ + Win32.WindowsExit(Win32.ExitWindows.LogOff | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); + } static void ShutDown() { IrssLog.Info("ShutDown"); - Win32.ExitWindowsEx(Win32.ExitWindows.ShutDown | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); + Win32.WindowsExit(Win32.ExitWindows.ShutDown | Win32.ExitWindows.ForceIfHung, Win32.ShutdownReasons.FlagUserDefined); } static void MapEvent(MappingEvent theEvent) @@ -1170,6 +1172,12 @@ Reboot(); break; } + + case Common.XmlTagLogOff: + { + LogOff(); + break; + } } } } @@ -1183,7 +1191,7 @@ /// Learn an IR command. /// </summary> /// <param name="fileName">File to place learned IR command in.</param> - /// <returns>Success.</returns> + /// <returns>true if successful, otherwise false.</returns> internal static bool LearnIR(string fileName) { try @@ -1301,6 +1309,10 @@ { Hibernate(); } + else if (command.StartsWith(Common.CmdPrefixLogOff)) // LogOff Command + { + LogOff(); + } else if (command.StartsWith(Common.CmdPrefixReboot)) // Reboot Command { Reboot(); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.Designer.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. -// Runtime Version:2.0.50727.42 +// Runtime Version:2.0.50727.312 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -81,6 +81,13 @@ } } + internal static System.Drawing.Bitmap Delete { + get { + object obj = ResourceManager.GetObject("Delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + internal static System.Drawing.Icon Icon16 { get { object obj = ResourceManager.GetObject("Icon16", resourceCulture); @@ -123,6 +130,13 @@ } } + internal static System.Drawing.Bitmap Plus { + get { + object obj = ResourceManager.GetObject("Plus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + internal static System.Drawing.Bitmap ScrollDown { get { object obj = ResourceManager.GetObject("ScrollDown", resourceCulture); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.resx =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.resx 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Properties/Resources.resx 2007-10-09 07:36:01 UTC (rev 982) @@ -127,6 +127,9 @@ <data name="ClickRight" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\graphics\clickright.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> + <data name="Delete" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\graphics\delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> <data name="Icon16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Icon16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> @@ -145,6 +148,9 @@ <data name="MoveUp" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\graphics\moveup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> + <data name="Plus" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\graphics\plus.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> <data name="ScrollDown" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\graphics\scrolldown.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> Modified: trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj 2007-10-09 07:36:01 UTC (rev 982) @@ -151,10 +151,12 @@ <Content Include="Graphics\ClickLeft.png" /> <Content Include="Graphics\ClickMiddle.png" /> <Content Include="Graphics\ClickRight.png" /> + <Content Include="Graphics\Delete.png" /> <Content Include="Graphics\MoveDown.png" /> <Content Include="Graphics\MoveLeft.png" /> <Content Include="Graphics\MoveRight.png" /> <Content Include="Graphics\MoveUp.png" /> + <Content Include="Graphics\Plus.png" /> <Content Include="Graphics\ScrollDown.png" /> <Content Include="Graphics\ScrollUp.png" /> </ItemGroup> Modified: trunk/plugins/IR Server Suite/Common/IrssComms/Client.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/Client.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/Client.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -86,6 +86,7 @@ /// Create a TCP communications client. /// </summary> /// <param name="serverEndPoint">IP Address and Port combination of Server.</param> + /// <param name="messageSink">The message sink to call for messages.</param> public Client(IPEndPoint serverEndPoint, ClientMessageSink messageSink) { _serverEndpoint = serverEndPoint; @@ -99,15 +100,22 @@ #region IDisposable + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } - protected virtual void Dispose(bool disposeManagedResources) + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> + /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> + protected virtual void Dispose(bool disposing) { - if (disposeManagedResources) + if (disposing) { // Dispose managed resources ... Stop(); @@ -126,7 +134,7 @@ /// <summary> /// Start the client communications. /// </summary> - /// <returns>Success.</returns> + /// <returns>true if successful, otherwise false.</returns> public bool Start() { if (_processConnectionThread) @@ -186,7 +194,7 @@ /// Send a message to the server. /// </summary> /// <param name="message">Message to send.</param> - /// <returns>Success.</returns> + /// <returns>true if successful, otherwise false.</returns> public bool Send(IrssMessage message) { if (message == null) Modified: trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/ClientManager.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -53,15 +53,22 @@ #region IDisposable + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } - protected virtual void Dispose(bool disposeManagedResources) + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> + /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> + protected virtual void Dispose(bool disposing) { - if (disposeManagedResources) + if (disposing) { // Dispose managed resources ... Stop(); Modified: trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/GenericPCQueue.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -60,15 +60,22 @@ #region IDisposable + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } - protected virtual void Dispose(bool disposeManagedResources) + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> + /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> + protected virtual void Dispose(bool disposing) { - if (disposeManagedResources) + if (disposing) { // Dispose managed resources ... Stop(); Modified: trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj 2007-10-09 07:36:01 UTC (rev 982) @@ -41,6 +41,7 @@ <UseVSHostingProcess>false</UseVSHostingProcess> <ErrorReport>prompt</ErrorReport> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DocumentationFile>bin\x86\Debug\IrssComms.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\x86\Release\</OutputPath> Modified: trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/IrssMessage.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -7,59 +7,160 @@ #region Enumerations + /// <summary> + /// Type of message. + /// </summary> public enum MessageType { + /// <summary> + /// Unknown message type. + /// </summary> Unknown, + /// <summary> + /// Register Client. + /// </summary> RegisterClient, + /// <summary> + /// Unregister Client. + /// </summary> UnregisterClient, + /// <summary> + /// Register Repeater. + /// </summary> RegisterRepeater, + /// <summary> + /// Unregister Repeater. + /// </summary> UnregisterRepeater, + /// <summary> + /// Learn IR Command. + /// </summary> LearnIR, + /// <summary> + /// Blast IR Command. + /// </summary> BlastIR, + /// <summary> + /// Error. + /// </summary> Error, + /// <summary> + /// Server Shutdown. + /// </summary> ServerShutdown, + /// <summary> + /// Server Suspend. + /// </summary> ServerSuspend, + /// <summary> + /// Server Resume + /// </summary> ServerResume, + /// <summary> + /// Remote Event. + /// </summary> RemoteEvent, + /// <summary> + /// Keyboard Event. + /// </summary> KeyboardEvent, + /// <summary> + /// Mouse Event. + /// </summary> MouseEvent, + /// <summary> + /// Forward a Remote Event. + /// </summary> ForwardRemoteEvent, + /// <summary> + /// Forward a Keyboard Event. + /// </summary> ForwardKeyboardEvent, + /// <summary> + /// Forward a Mouse Event. + /// </summary> ForwardMouseEvent, + /// <summary> + /// Available Receivers. + /// </summary> AvailableReceivers, + /// <summary> + /// Available Blasters. + /// </summary> AvailableBlasters, + /// <summary> + /// Active Receivers. + /// </summary> ActiveReceivers, + /// <summary> + /// Active Blasters. + /// </summary> ActiveBlasters, + /// <summary> + /// Detected Receivers. + /// </summary> DetectedReceivers, + /// <summary> + /// Detected Blasters. + /// </summary> DetectedBlasters, } + /// <summary> + /// Flags to determine more information about the message. + /// </summary> [Flags] public enum MessageFlags { + /// <summary> + /// No Flags. + /// </summary> None = 0x0000, - + + /// <summary> + /// Message is a Request. + /// </summary> Request = 0x0001, + /// <summary> + /// Message is a Response to a received Message. + /// </summary> Response = 0x0002, + /// <summary> + /// Message is a Notification. + /// </summary> Notify = 0x0004, - + + /// <summary> + /// Operation Success. + /// </summary> Success = 0x0008, + /// <summary> + /// Operation Failure. + /// </summary> Failure = 0x0010, + /// <summary> + /// Operation Time-Out. + /// </summary> Timeout = 0x0020, + //Error = 0x0040, //DataString = 0x0080, //DataBytes = 0x0100, //ForceRespond = 0x0200, + + /// <summary> + /// Force the recipient not to respond. + /// </summary> ForceNotRespond = 0x0400, } @@ -104,6 +205,9 @@ #region Constructors + /// <summary> + /// Initializes a new instance of the <see cref="IrssMessage"/> class. + /// </summary> protected IrssMessage() { _type = MessageType.Unknown; @@ -111,6 +215,11 @@ _data = null; } + /// <summary> + /// Initializes a new instance of the <see cref="IrssMessage"/> class. + /// </summary> + /// <param name="type">The message type.</param> + /// <param name="flags">The message flags.</param> public IrssMessage(MessageType type, MessageFlags flags) : this() { @@ -118,12 +227,24 @@ _flags = flags; } + /// <summary> + /// Initializes a new instance of the <see cref="IrssMessage"/> class. + /// </summary> + /// <param name="type">The message type.</param> + /// <param name="flags">The message flags.</param> + /// <param name="data">The message data.</param> public IrssMessage(MessageType type, MessageFlags flags, byte[] data) : this(type, flags) { SetDataAsBytes(data); } + /// <summary> + /// Initializes a new instance of the <see cref="IrssMessage"/> class. + /// </summary> + /// <param name="type">The message type.</param> + /// <param name="flags">The message flags.</param> + /// <param name="data">The message data.</param> public IrssMessage(MessageType type, MessageFlags flags, string data) : this(type, flags) { Modified: trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs 2007-10-07 17:28:41 UTC (rev 981) +++ trunk/plugins/IR Server Suite/Common/IrssComms/MessageManagerCombo.cs 2007-10-09 07:36:01 UTC (rev 982) @@ -73,7 +73,7 @@ /// <summary> /// Indicates whether the current object is equal to another object of the same type. /// </summary> - /// <param name="obj">An object to compare with this object.</param> + /// <param name="other">An object to compare with this object.</param> /// <returns>true if the current object is equal to the other parameter; otherwise, false.</returns> public bool Equals(MessageManagerCombo other) { @@ -83,8 +83,11 @@ /// <summary> /// Indicates whether the current object is equal to another object of the same type. /// </summary> - /// <param name="obj">An object to compare with this object.</param> - /// <returns>true if the current object is equal to the other parameter; otherwise, false.</returns> + /// <param name="obj1">First object to compare.</param> + /// <param name="obj2">Second object to compare.</pa... [truncated message content] |
From: <an...@us...> - 2007-10-10 07:53:54
|
Revision: 991 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=991&view=rev Author: and-81 Date: 2007-10-10 00:53:52 -0700 (Wed, 10 Oct 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrCode.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrDecoder.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Pronto.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/SetupForm.resx trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/SetupForm.resx trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.Designer.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/PluginSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/LearnIR.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/SetupForm.Designer.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs trunk/plugins/MCEReplacement/Forms/SetupForm.resx trunk/plugins/MCEReplacement/MCEReplacement.cs Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/MainForm.Designer.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -64,7 +64,7 @@ this.buttonBlast.Size = new System.Drawing.Size(64, 24); this.buttonBlast.TabIndex = 1; this.buttonBlast.Text = "Blast IR"; - this.toolTips.SetToolTip(this.buttonBlast, "Blast learned IR code"); + this.toolTips.SetToolTip(this.buttonBlast, "Blast learned IR Command"); this.buttonBlast.UseVisualStyleBackColor = true; this.buttonBlast.Click += new System.EventHandler(this.buttonBlast_Click); // @@ -75,7 +75,7 @@ this.buttonLearnIR.Size = new System.Drawing.Size(64, 24); this.buttonLearnIR.TabIndex = 0; this.buttonLearnIR.Text = "Learn IR"; - this.toolTips.SetToolTip(this.buttonLearnIR, "Learn an IR code"); + this.toolTips.SetToolTip(this.buttonLearnIR, "Learn an IR Command"); this.buttonLearnIR.UseVisualStyleBackColor = true; this.buttonLearnIR.Click += new System.EventHandler(this.buttonLearnIR_Click); // Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -11,6 +11,7 @@ using IrssComms; using IrssUtils; +using IrssUtils.Forms; namespace Translator { @@ -39,7 +40,7 @@ string _description; string _command; - IrssUtils.Forms.LearnIR _learnIR; + LearnIR _learnIR; #endregion Variables @@ -514,7 +515,7 @@ } else if (radioButtonWindowTitle.Checked) { - IrssUtils.Forms.WindowList windowList = new IrssUtils.Forms.WindowList(); + WindowList windowList = new WindowList(); if (windowList.ShowDialog(this) == DialogResult.OK) textBoxMsgTarget.Text = windowList.SelectedWindowTitle; } @@ -567,7 +568,7 @@ private void buttonLearnIR_Click(object sender, EventArgs e) { - _learnIR = new IrssUtils.Forms.LearnIR( + _learnIR = new LearnIR( new LearnIrDelegate(Program.LearnIR), new BlastIrDelegate(Program.BlastIR), Program.TransceiverInformation.Ports); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -386,16 +386,24 @@ private void buttonTest_Click(object sender, EventArgs e) { - string fileName = textBoxName.Text.Trim(); + string name = textBoxName.Text.Trim(); - if (fileName.Length == 0) + if (name.Length == 0) { - MessageBox.Show(this, "You must supply a name for this macro", "Name missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + MessageBox.Show(this, "You must supply a name for this Macro", "Name missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + textBoxName.Focus(); return; } - fileName = Program.FolderMacros + fileName + Common.FileExtensionMacro; + if (!Common.IsValidFileName(name)) + { + MessageBox.Show(this, "You must supply a valid name for this Macro", "Invalid name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + textBoxName.Focus(); + return; + } + string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; + WriteToFile(fileName); try @@ -416,16 +424,24 @@ private void buttonOK_Click(object sender, EventArgs e) { - string fileName = textBoxName.Text.Trim(); + string name = textBoxName.Text.Trim(); - if (fileName.Length == 0) + if (name.Length == 0) { - MessageBox.Show(this, "You must supply a name for this macro", "Name missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + MessageBox.Show(this, "You must supply a name for this Macro", "Name missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + textBoxName.Focus(); return; } - fileName = Program.FolderMacros + fileName + Common.FileExtensionMacro; + if (!Common.IsValidFileName(name)) + { + MessageBox.Show(this, "You must supply a valid name for this Macro", "Invalid name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + textBoxName.Focus(); + return; + } + string fileName = Program.FolderMacros + name + Common.FileExtensionMacro; + WriteToFile(fileName); this.DialogResult = DialogResult.OK; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.Designer.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -504,8 +504,8 @@ // // buttonTestMacro // - this.buttonTestMacro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.buttonTestMacro.Location = new System.Drawing.Point(368, 344); + this.buttonTestMacro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonTestMacro.Location = new System.Drawing.Point(208, 344); this.buttonTestMacro.Name = "buttonTestMacro"; this.buttonTestMacro.Size = new System.Drawing.Size(56, 24); this.buttonTestMacro.TabIndex = 4; Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -1013,7 +1013,7 @@ } private void serverToolStripMenuItem_Click(object sender, EventArgs e) { - IrssUtils.Forms.ServerAddress serverAddress = new IrssUtils.Forms.ServerAddress(Program.Config.ServerHost); + ServerAddress serverAddress = new ServerAddress(Program.Config.ServerHost); if (serverAddress.ShowDialog(this) == DialogResult.OK) { Program.StopClient(); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -315,14 +315,7 @@ IntPtr windowHandle = Win32.FindWindowByTitle(targetWindow); if (windowHandle != IntPtr.Zero) - { - IntPtr result; - Win32.SendMessageTimeout(windowHandle, (int)Win32.WindowsMessage.WM_COPYDATA, IntPtr.Zero, Win32.VarPtr(copyData), Win32.SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); - int lastError = Marshal.GetLastWin32Error(); - - if (result == IntPtr.Zero && lastError != 0) - throw new Win32Exception(lastError); - } + Win32.SendWindowsMessage(windowHandle, (int)Win32.WindowsMessage.WM_COPYDATA, IntPtr.Zero, Win32.VarPtr(copyData)); } static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) @@ -434,20 +427,6 @@ _notifyIcon.ContextMenuStrip.Items.Add("&Quit", null, new EventHandler(ClickQuit)); } - /**/ - static bool SendMessageToWindow(IntPtr hWnd, Win32.WindowsMessage msg, int wParam, int lParam) - { - IntPtr result; - Win32.SendMessageTimeout(hWnd, (int)msg, new IntPtr(wParam), new IntPtr(lParam), Win32.SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); - int lastError = Marshal.GetLastWin32Error(); - - if (result == IntPtr.Zero && lastError != 0) - throw new Win32Exception(lastError); - - return true; - } - /**/ - static void ClickProgram(object sender, EventArgs e) { IrssLog.Info("Click Launch Program"); @@ -528,49 +507,49 @@ switch (menuItem.Text) { case "Next Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_NEXTWINDOW, 0); break; case "Last Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_PREVWINDOW, 0); break; case "Close Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_CLOSE, 0); break; case "Maximize Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_MAXIMIZE, 0); break; case "Minimize Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_MINIMIZE, 0); break; case "Restore Window": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_SYSCOMMAND, + (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_RESTORE, 0); break; @@ -597,25 +576,25 @@ case "Volume Up": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_APPCOMMAND, + (int)Win32.WindowsMessage.WM_APPCOMMAND, (int)Win32.AppCommand.APPCOMMAND_VOLUME_UP, 0); break; case "Volume Down": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_APPCOMMAND, + (int)Win32.WindowsMessage.WM_APPCOMMAND, (int)Win32.AppCommand.APPCOMMAND_VOLUME_DOWN, 0); break; case "Volume Mute": - SendMessageToWindow( + Win32.SendWindowsMessage( _currentForegroundWindow, - Win32.WindowsMessage.WM_APPCOMMAND, + (int)Win32.WindowsMessage.WM_APPCOMMAND, (int)Win32.AppCommand.APPCOMMAND_VOLUME_MUTE, 0); break; @@ -968,12 +947,16 @@ static void Hibernate() { IrssLog.Info("Hibernate"); - Application.SetSuspendState(PowerState.Hibernate, true, false); + + if (!Application.SetSuspendState(PowerState.Hibernate, false, false)) + IrssLog.Warn("Hibernate request was rejected by another application."); } static void Standby() { IrssLog.Info("Standby"); - Application.SetSuspendState(PowerState.Suspend, true, false); + + if (!Application.SetSuspendState(PowerState.Suspend, false, false)) + IrssLog.Warn("Standby request was rejected by another application."); } static void Reboot() { Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/MainForm.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -13,6 +13,7 @@ using IrssComms; using IrssUtils; +using IrssUtils.Forms; namespace VirtualRemote { @@ -219,7 +220,7 @@ { Program.StopClient(); - IrssUtils.Forms.ServerAddress serverAddress = new IrssUtils.Forms.ServerAddress(Program.ServerHost); + ServerAddress serverAddress = new ServerAddress(Program.ServerHost); serverAddress.ShowDialog(this); Program.ServerHost = serverAddress.ServerHost; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -14,6 +14,7 @@ using IrssComms; using IrssUtils; +using IrssUtils.Forms; namespace VirtualRemote { @@ -155,7 +156,7 @@ { if (String.IsNullOrEmpty(_serverHost)) { - IrssUtils.Forms.ServerAddress serverAddress = new IrssUtils.Forms.ServerAddress(); + ServerAddress serverAddress = new ServerAddress(); serverAddress.ShowDialog(); _serverHost = serverAddress.ServerHost; Modified: trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -13,6 +13,7 @@ using IrssComms; using IrssUtils; +using IrssUtils.Forms; namespace SkinEditor { @@ -331,7 +332,7 @@ } private void changeServerToolStripMenuItem_Click(object sender, EventArgs e) { - IrssUtils.Forms.ServerAddress serverAddress = new IrssUtils.Forms.ServerAddress(_serverHost); + ServerAddress serverAddress = new ServerAddress(_serverHost); serverAddress.ShowDialog(this); _serverHost = serverAddress.ServerHost; Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -441,14 +441,7 @@ IntPtr wordParam = new IntPtr(int.Parse(commands[3])); IntPtr longParam = new IntPtr(int.Parse(commands[4])); - //Win32.SendMessage(windowHandle, msg, wordParam, longParam); - - IntPtr result = IntPtr.Zero; - Win32.SendMessageTimeout(windowHandle, msg, wordParam, longParam, Win32.SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); - int lastError = Marshal.GetLastWin32Error(); - - if (result == IntPtr.Zero && lastError != 0) - throw new Win32Exception(lastError); + Win32.SendWindowsMessage(windowHandle, msg, wordParam, longParam); } /// <summary> Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/BlastCommand.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -185,7 +185,7 @@ try { - string fileName = String.Format("{0}{1}{2}", _baseFolder, name, Common.FileExtensionIR); + string fileName = _baseFolder + name + Common.FileExtensionIR; string port = comboBoxPort.SelectedItem as string; _blastIrDelegate(fileName, port); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Forms/LearnIR.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -109,21 +109,28 @@ private void buttonLearn_Click(object sender, EventArgs e) { - string command = textBoxName.Text.Trim(); + string name = textBoxName.Text.Trim(); - if (command.Length == 0) + if (name.Length == 0) { - MessageBox.Show(this, "You must supply a name for this IR code", "Missing name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + MessageBox.Show(this, "You must supply a name for this IR Command", "Missing name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBoxName.Focus(); return; } + if (!Common.IsValidFileName(name)) + { + MessageBox.Show(this, "You must supply a valid name for this IR Command", "Invalid name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + textBoxName.Focus(); + return; + } + textBoxName.Enabled = false; buttonLearn.Enabled = false; buttonTest.Enabled = false; buttonDone.Enabled = false; - string fileName = String.Format("{0}{1}{2}", Common.FolderIRCommands, command, Common.FileExtensionIR); + string fileName = Common.FolderIRCommands + name + Common.FileExtensionIR; if (_learnIrDelegate(fileName)) { @@ -157,7 +164,7 @@ try { - string fileName = String.Format("{0}{1}{2}", Common.FolderIRCommands, name, Common.FileExtensionIR); + string fileName = Common.FolderIRCommands + name + Common.FileExtensionIR; string port = comboBoxPort.SelectedItem as string; _blastIrDelegate(fileName, port); Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Mouse.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -25,15 +25,45 @@ [Flags] public enum MouseEvents { + /// <summary> + /// No Event. + /// </summary> None = 0x0000, + /// <summary> + /// Move. + /// </summary> Move = 0x0001, + /// <summary> + /// Left Button Down. + /// </summary> LeftDown = 0x0002, + /// <summary> + /// Left Button Up. + /// </summary> LeftUp = 0x0004, + /// <summary> + /// Right Button Down. + /// </summary> RightDown = 0x0008, + /// <summary> + /// Right Button Up. + /// </summary> RightUp = 0x0010, + /// <summary> + /// Middle Button Down. + /// </summary> MiddleDown = 0x0020, + /// <summary> + /// Middle Button Up. + /// </summary> MiddleUp = 0x0040, + /// <summary> + /// Scroll. + /// </summary> Scroll = 0x0800, + /// <summary> + /// Position Absolute. + /// </summary> Absolute = 0x8000 } @@ -42,8 +72,17 @@ /// </summary> public enum ScrollDir { + /// <summary> + /// No Scroll. + /// </summary> None = 0, + /// <summary> + /// Scroll Up. + /// </summary> Up = 120, + /// <summary> + /// Scroll Down. + /// </summary> Down = -120 } Modified: trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs =================================================================== --- trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -17,337 +17,1251 @@ #region Enumerations + /// <summary> + /// Windows Message types. + /// </summary> public enum WindowsMessage { + /// <summary> + /// WM_ACTIVATE + /// </summary> WM_ACTIVATE = 0x6, + /// <summary> + /// WM_ACTIVATEAPP + /// </summary> WM_ACTIVATEAPP = 0x1C, + /// <summary> + /// WM_AFXFIRST + /// </summary> WM_AFXFIRST = 0x360, + /// <summary> + /// WM_AFXLAST + /// </summary> WM_AFXLAST = 0x37F, + /// <summary> + /// WM_APP + /// </summary> WM_APP = 0x8000, + /// <summary> + /// WM_APPCOMMAND + /// </summary> WM_APPCOMMAND = 0x319, + /// <summary> + /// WM_ASKCBFORMATNAME + /// </summary> WM_ASKCBFORMATNAME = 0x30C, + /// <summary> + /// WM_CANCELJOURNAL + /// </summary> WM_CANCELJOURNAL = 0x4B, + /// <summary> + /// WM_CANCELMODE + /// </summary> WM_CANCELMODE = 0x1F, + /// <summary> + /// WM_CAPTURECHANGED + /// </summary> WM_CAPTURECHANGED = 0x215, + /// <summary> + /// WM_CHANGECBCHAIN + /// </summary> WM_CHANGECBCHAIN = 0x30D, + /// <summary> + /// WM_CHAR + /// </summary> WM_CHAR = 0x102, + /// <summary> + /// + /// </summary> WM_CHARTOITEM = 0x2F, + /// <summary> + /// + /// </summary> WM_CHILDACTIVATE = 0x22, + /// <summary> + /// + /// </summary> WM_CLEAR = 0x303, + /// <summary> + /// + /// </summary> WM_CLOSE = 0x10, + /// <summary> + /// + /// </summary> WM_COMMAND = 0x111, + /// <summary> + /// + /// </summary> WM_COMPACTING = 0x41, + /// <summary> + /// + /// </summary> WM_COMPAREITEM = 0x39, + /// <summary> + /// + /// </summary> WM_CONTEXTMENU = 0x7B, + /// <summary> + /// + /// </summary> WM_COPY = 0x301, + /// <summary> + /// + /// </summary> WM_COPYDATA = 0x4A, + /// <summary> + /// + /// </summary> WM_CREATE = 0x1, + /// <summary> + /// + /// </summary> WM_CTLCOLORBTN = 0x135, + /// <summary> + /// + /// </summary> WM_CTLCOLORDLG = 0x136, + /// <summary> + /// + /// </summary> WM_CTLCOLOREDIT = 0x133, + /// <summary> + /// + /// </summary> WM_CTLCOLORLISTBOX = 0x134, + /// <summary> + /// + /// </summary> WM_CTLCOLORMSGBOX = 0x132, + /// <summary> + /// + /// </summary> WM_CTLCOLORSCROLLBAR = 0x137, + /// <summary> + /// + /// </summary> WM_CTLCOLORSTATIC = 0x138, + /// <summary> + /// + /// </summary> WM_CUT = 0x300, + /// <summary> + /// + /// </summary> WM_DEADCHAR = 0x103, + /// <summary> + /// + /// </summary> WM_DELETEITEM = 0x2D, + /// <summary> + /// + /// </summary> WM_DESTROY = 0x2, + /// <summary> + /// + /// </summary> WM_DESTROYCLIPBOARD = 0x307, + /// <summary> + /// + /// </summary> WM_DEVICECHANGE = 0x219, + /// <summary> + /// + /// </summary> WM_DEVMODECHANGE = 0x1B, + /// <summary> + /// + /// </summary> WM_DISPLAYCHANGE = 0x7E, + /// <summary> + /// + /// </summary> WM_DRAWCLIPBOARD = 0x308, + /// <summary> + /// + /// </summary> WM_DRAWITEM = 0x2B, + /// <summary> + /// + /// </summary> WM_DROPFILES = 0x233, + /// <summary> + /// + /// </summary> WM_ENABLE = 0xA, + /// <summary> + /// + /// </summary> WM_ENDSESSION = 0x16, + /// <summary> + /// + /// </summary> WM_ENTERIDLE = 0x121, + /// <summary> + /// + /// </summary> WM_ENTERMENULOOP = 0x211, + /// <summary> + /// + /// </summary> WM_ENTERSIZEMOVE = 0x231, + /// <summary> + /// + /// </summary> WM_ERASEBKGND = 0x14, + /// <summary> + /// + /// </summary> WM_EXITMENULOOP = 0x212, + /// <summary> + /// + /// </summary> WM_EXITSIZEMOVE = 0x232, + /// <summary> + /// + /// </summary> WM_FONTCHANGE = 0x1D, + /// <summary> + /// + /// </summary> WM_GETDLGCODE = 0x87, + /// <summary> + /// + /// </summary> WM_GETFONT = 0x31, + /// <summary> + /// + /// </summary> WM_GETHOTKEY = 0x33, + /// <summary> + /// + /// </summary> WM_GETICON = 0x7F, + /// <summary> + /// + /// </summary> WM_GETMINMAXINFO = 0x24, + /// <summary> + /// + /// </summary> WM_GETOBJECT = 0x3D, + /// <summary> + /// + /// </summary> WM_GETSYSMENU = 0x313, + /// <summary> + /// + /// </summary> WM_GETTEXT = 0xD, + /// <summary> + /// + /// </summary> WM_GETTEXTLENGTH = 0xE, + /// <summary> + /// + /// </summary> WM_HANDHELDFIRST = 0x358, + /// <summary> + /// + /// </summary> WM_HANDHELDLAST = 0x35F, + /// <summary> + /// + /// </summary> WM_HELP = 0x53, + /// <summary> + /// + /// </summary> WM_HOTKEY = 0x312, + /// <summary> + /// + /// </summary> WM_HSCROLL = 0x114, + /// <summary> + /// + /// </summary> WM_HSCROLLCLIPBOARD = 0x30E, + /// <summary> + /// + /// </summary> WM_ICONERASEBKGND = 0x27, + /// <summary> + /// + /// </summary> WM_IME_CHAR = 0x286, + /// <summary> + /// + /// </summary> WM_IME_COMPOSITION = 0x10F, + /// <summary> + /// + /// </summary> WM_IME_COMPOSITIONFULL = 0x284, + /// <summary> + /// + /// </summary> WM_IME_CONTROL = 0x283, + /// <summary> + /// + /// </summary> WM_IME_ENDCOMPOSITION = 0x10E, + /// <summary> + /// + /// </summary> WM_IME_KEYDOWN = 0x290, + /// <summary> + /// + /// </summary> WM_IME_KEYLAST = 0x10F, + /// <summary> + /// + /// </summary> WM_IME_KEYUP = 0x291, + /// <summary> + /// + /// </summary> WM_IME_NOTIFY = 0x282, + /// <summary> + /// + /// </summary> WM_IME_REQUEST = 0x288, + /// <summary> + /// + /// </summary> WM_IME_SELECT = 0x285, + /// <summary> + /// + /// </summary> WM_IME_SETCONTEXT = 0x281, + /// <summary> + /// + /// </summary> WM_IME_STARTCOMPOSITION = 0x10D, + /// <summary> + /// + /// </summary> WM_INITDIALOG = 0x110, + /// <summary> + /// + /// </summary> WM_INITMENU = 0x116, + /// <summary> + /// + /// </summary> WM_INITMENUPOPUP = 0x117, + /// <summary> + /// + /// </summary> WM_INPUTLANGCHANGE = 0x51, + /// <summary> + /// + /// </summary> WM_INPUTLANGCHANGEREQUEST = 0x50, + /// <summary> + /// + /// </summary> WM_KEYDOWN = 0x100, + /// <summary> + /// + /// </summary> WM_KEYFIRST = 0x100, + /// <summary> + /// + /// </summary> WM_KEYLAST = 0x108, + /// <summary> + /// + /// </summary> WM_KEYUP = 0x101, + /// <summary> + /// + /// </summary> WM_KILLFOCUS = 0x8, + /// <summary> + /// + /// </summary> WM_LBUTTONDBLCLK = 0x203, + /// <summary> + /// + /// </summary> WM_LBUTTONDOWN = 0x201, + /// <summary> + /// + /// </summary> WM_LBUTTONUP = 0x202, + /// <summary> + /// + /// </summary> WM_MBUTTONDBLCLK = 0x209, + /// <summary> + /// + /// </summary> WM_MBUTTONDOWN = 0x207, + /// <summary> + /// + /// </summary> WM_MBUTTONUP = 0x208, + /// <summary> + /// + /// </summary> WM_MDIACTIVATE = 0x222, + /// <summary> + /// + /// </summary> WM_MDICASCADE = 0x227, + /// <summary> + /// + /// </summary> WM_MDICREATE = 0x220, + /// <summary> + /// + /// </summary> WM_MDIDESTROY = 0x221, + /// <summary> + /// + /// </summary> WM_MDIGETACTIVE = 0x229, + /// <summary> + /// + /// </summary> WM_MDIICONARRANGE = 0x228, + /// <summary> + /// + /// </summary> WM_MDIMAXIMIZE = 0x225, + /// <summary> + /// + /// </summary> WM_MDINEXT = 0x224, + /// <summary> + /// + /// </summary> WM_MDIREFRESHMENU = 0x234, + /// <summary> + /// + /// </summary> WM_MDIRESTORE = 0x223, + /// <summary> + /// + /// </summary> WM_MDISETMENU = 0x230, + /// <summary> + /// + /// </summary> WM_MDITILE = 0x226, + /// <summary> + /// + /// </summary> WM_MEASUREITEM = 0x2C, + /// <summary> + /// + /// </summary> WM_MENUCHAR = 0x120, + /// <summary> + /// + /// </summary> WM_MENUCOMMAND = 0x126, + /// <summary> + /// + /// </summary> WM_MENUDRAG = 0x123, + /// <summary> + /// + /// </summary> WM_MENUGETOBJECT = 0x124, + /// <summary> + /// + /// </summary> WM_MENURBUTTONUP = 0x122, + /// <summary> + /// + /// </summary> WM_MENUSELECT = 0x11F, + /// <summary> + /// + /// </summary> WM_MOUSEACTIVATE = 0x21, + /// <summary> + /// + /// </summary> WM_MOUSEFIRST = 0x200, + /// <summary> + /// + /// </summary> WM_MOUSEHOVER = 0x2A1, + /// <summary> + /// + /// </summary> WM_MOUSELAST = 0x20A, + /// <summary> + /// + /// </summary> WM_MOUSELEAVE = 0x2A3, + /// <summary> + /// + /// </summary> WM_MOUSEMOVE = 0x200, + /// <summary> + /// + /// </summary> WM_MOUSEWHEEL = 0x20A, + /// <summary> + /// + /// </summary> WM_MOVE = 0x3, + /// <summary> + /// + /// </summary> WM_MOVING = 0x216, + /// <summary> + /// + /// </summary> WM_NCACTIVATE = 0x86, + /// <summary> + /// + /// </summary> WM_NCCALCSIZE = 0x83, + /// <summary> + /// + /// </summary> WM_NCCREATE = 0x81, + /// <summary> + /// + /// </summary> WM_NCDESTROY = 0x82, + /// <summary> + /// + /// </summary> WM_NCHITTEST = 0x84, + /// <summary> + /// + /// </summary> WM_NCLBUTTONDBLCLK = 0xA3, + /// <summary> + /// + /// </summary> WM_NCLBUTTONDOWN = 0xA1, + /// <summary> + /// + /// </summary> WM_NCLBUTTONUP = 0xA2, + /// <summary> + /// + /// </summary> WM_NCMBUTTONDBLCLK = 0xA9, + /// <summary> + /// + /// </summary> WM_NCMBUTTONDOWN = 0xA7, + /// <summary> + /// + /// </summary> WM_NCMBUTTONUP = 0xA8, + /// <summary> + /// + /// </summary> WM_NCMOUSEHOVER = 0x2A0, + /// <summary> + /// + /// </summary> WM_NCMOUSELEAVE = 0x2A2, + /// <summary> + /// + /// </summary> WM_NCMOUSEMOVE = 0xA0, + /// <summary> + /// + /// </summary> WM_NCPAINT = 0x85, + /// <summary> + /// + /// </summary> WM_NCRBUTTONDBLCLK = 0xA6, + /// <summary> + /// + /// </summary> WM_NCRBUTTONDOWN = 0xA4, + /// <summary> + /// + /// </summary> WM_NCRBUTTONUP = 0xA5, + /// <summary> + /// + /// </summary> WM_NEXTDLGCTL = 0x28, + /// <summary> + /// + /// </summary> WM_NEXTMENU = 0x213, + /// <summary> + /// + /// </summary> WM_NOTIFY = 0x4E, + /// <summary> + /// + /// </summary> WM_NOTIFYFORMAT = 0x55, + /// <summary> + /// + /// </summary> WM_NULL = 0x0, + /// <summary> + /// + /// </summary> WM_PAINT = 0xF, + /// <summary> + /// + /// </summary> WM_PAINTCLIPBOARD = 0x309, + /// <summary> + /// + /// </summary> WM_PAINTICON = 0x26, + /// <summary> + /// + /// </summary> WM_PALETTECHANGED = 0x311, + /// <summary> + /// + /// </summary> WM_PALETTEISCHANGING = 0x310, + /// <summary> + /// + /// </summary> WM_PARENTNOTIFY = 0x210, + /// <summary> + /// + /// </summary> WM_PASTE = 0x302, + /// <summary> + /// + /// </summary> WM_PENWINFIRST = 0x380, + /// <summary> + /// + /// </summary> WM_PENWINLAST = 0x38F, + /// <summary> + /// + /// </summary> WM_POWER = 0x48, + /// <summary> + /// + /// </summary> WM_PRINT = 0x317, + /// <summary> + /// + /// </summary> WM_PRINTCLIENT = 0x318, + /// <summary> + /// + /// </summary> WM_QUERYDRAGICON = 0x37, + /// <summary> + /// + /// </summary> WM_QUERYENDSESSION = 0x11, + /// <summary> + /// + /// </summary> WM_QUERYNEWPALETTE = 0x30F, + /// <summary> + /// + /// </summary> WM_QUERYOPEN = 0x13, + /// <summary> + /// + /// </summary> WM_QUERYUISTATE = 0x129, + /// <summary> + /// + /// </summary> WM_QUEUESYNC = 0x23, + /// <summary> + /// + /// </summary> WM_QUIT = 0x12, + /// <summary> + /// + /// </summary> WM_RBUTTONDBLCLK = 0x206, + /// <summary> + /// + /// </summary> WM_RBUTTONDOWN = 0x204, + /// <summary> + /// + /// </summary> WM_RBUTTONUP = 0x205, + /// <summary> + /// + /// </summary> WM_RENDERALLFORMATS = 0x306, + /// <summary> + /// + /// </summary> WM_RENDERFORMAT = 0x305, + /// <summary> + /// + /// </summary> WM_SETCURSOR = 0x20, + /// <summary> + /// + /// </summary> WM_SETFOCUS = 0x7, + /// <summary> + /// + /// </summary> WM_SETFONT = 0x30, + /// <summary> + /// + /// </summary> WM_SETHOTKEY = 0x32, + /// <summary> + /// + /// </summary> WM_SETICON = 0x80, + /// <summary> + /// + /// </summary> WM_SETREDRAW = 0xB, + /// <summary> + /// + /// </summary> WM_SETTEXT = 0xC, + /// <summary> + /// + /// </summary> WM_SETTINGCHANGE = 0x1A, + /// <summary> + /// + /// </summary> WM_SHOWWINDOW = 0x18, + /// <summary> + /// + /// </summary> WM_SIZE = 0x5, + /// <summary> + /// + /// </summary> WM_SIZECLIPBOARD = 0x30B, + /// <summary> + /// + /// </summary> WM_SIZING = 0x214, + /// <summary> + /// + /// </summary> WM_SPOOLERSTATUS = 0x2A, + /// <summary> + /// + /// </summary> WM_STYLECHANGED = 0x7D, + /// <summary> + /// + /// </summary> WM_STYLECHANGING = 0x7C, + /// <summary> + /// + /// </summary> WM_SYNCPAINT = 0x88, + /// <summary> + /// + /// </summary> WM_SYSCHAR = 0x106, + /// <summary> + /// + /// </summary> WM_SYSCOLORCHANGE = 0x15, + /// <summary> + /// + /// </summary> WM_SYSCOMMAND = 0x112, + /// <summary> + /// + /// </summary> WM_SYSDEADCHAR = 0x107, + /// <summary> + /// + /// </summary> WM_SYSKEYDOWN = 0x104, + /// <summary> + /// + /// </summary> WM_SYSKEYUP = 0x105, - WM_SYSTIMER = 0x118, // undocumented, see http://support.microsoft.com/?id=108938 + /// <summary> + /// WM_SYSTIMER, undocumented, see http://support.microsoft.com/?id=108938 + /// </summary> + WM_SYSTIMER = 0x118, + /// <summary> + /// + /// </summary> WM_TCARD = 0x52, + /// <summary> + /// + /// </summary> WM_TIMECHANGE = 0x1E, + /// <summary> + /// WM_TIMER + /// </summary> WM_TIMER = 0x113, + /// <summary> + /// WM_UNDO + /// </summary> WM_UNDO = 0x304, + /// <summary> + /// WM_UNINITMENUPOPUP + /// </summary> WM_UNINITMENUPOPUP = 0x125, + /// <summary> + /// WM_USER + /// </summary> WM_USER = 0x400, + /// <summary> + /// WM_USERCHANGED + /// </summary> WM_USERCHANGED = 0x54, + /// <summary> + /// WM_VKEYTOITEM + /// </summary> WM_VKEYTOITEM = 0x2E, + /// <summary> + /// WM_VSCROLL + /// </summary> WM_VSCROLL = 0x115, + /// <summary> + /// WM_VSCROLLCLIPBOARD + /// </summary> WM_VSCROLLCLIPBOARD = 0x30A, + /// <summary> + /// WM_WINDOWPOSCHANGED + /// </summary> WM_WINDOWPOSCHANGED = 0x47, + /// <summary> + /// WM_WINDOWPOSCHANGING + /// </summary> WM_WINDOWPOSCHANGING = 0x46, + /// <summary> + /// WM_WININICHANGE + /// </summary> WM_WININICHANGE = 0x1A, + /// <summary> + /// WM_XBUTTONDBLCLK + /// </summary> WM_XBUTTONDBLCLK = 0x20D, + /// <summary> + /// WM_XBUTTONDOWN + /// </summary> WM_XBUTTONDOWN = 0x20B, + /// <summary> + /// WM_XBUTTONUP + /// </summary> WM_XBUTTONUP = 0x20C } + /// <summary> + /// Windows Message System Commands. + /// </summary> public enum SysCommand { + /// <summary> + /// SC_SIZE + /// </summary> SC_SIZE = 0xF000, + /// <summary> + /// SC_MOVE + /// </summary> SC_MOVE = 0xF010, + /// <summary> + /// SC_MINIMIZE + /// </summary> SC_MINIMIZE = 0xF020, + /// <summary> + /// SC_MAXIMIZE + /// </summary> SC_MAXIMIZE = 0xF030, + /// <summary> + /// SC_NEXTWINDOW + /// </summary> SC_NEXTWINDOW = 0xF040, + /// <summary> + /// SC_PREVWINDOW + /// </summary> SC_PREVWINDOW = 0xF050, + /// <summary> + /// SC_CLOSE + /// </summary> SC_CLOSE = 0xF060, + /// <summary> + /// SC_VSCROLL + /// </summary> SC_VSCROLL = 0xF070, + /// <summary> + /// SC_HSCROLL + /// </summary> SC_HSCROLL = 0xF080, + /// <summary> + /// SC_MOUSEMENU + /// </summary> SC_MOUSEMENU = 0xF090, + /// <summary> + /// SC_KEYMENU + /// </summary> SC_KEYMENU = 0xF100, + /// <summary> + /// SC_ARRANGE + /// </summary> SC_ARRANGE = 0xF110, + /// <summary> + /// SC_RESTORE + /// </summary> SC_RESTORE = 0xF120, + /// <summary> + /// SC_TASKLIST + /// </summary> SC_TASKLIST = 0xF130, + /// <summary> + /// SC_SCREENSAVE + /// </summary> SC_SCREENSAVE = 0xF140, + /// <summary> + /// SC_HOTKEY + /// </summary> SC_HOTKEY = 0xF150, + /// <summary> + /// SC_DEFAULT + /// </summary> SC_DEFAULT = 0xF160, + /// <summary> + /// SC_MONITORPOWER + /// </summary> SC_MONITORPOWER = 0xF170, + /// <summary> + /// SC_CONTEXTHELP + /// </summary> SC_CONTEXTHELP = 0xF180, + /// <summary> + /// SC_SEPARATOR + /// </summary> SC_SEPARATOR = 0xF00F, - + + /// <summary> + /// SCF_ISSECURE + /// </summary> SCF_ISSECURE = 0x00000001, - + + /// <summary> + /// SC_ICON + /// </summary> SC_ICON = SC_MINIMIZE, + /// <summary> + /// SC_ZOOM + /// </summary> SC_ZOOM = SC_MAXIMIZE, } + /// <summary> + /// Windows Message App Commands. + /// </summary> public enum AppCommand { + /// <summary> + /// APPCOMMAND_BROWSER_BACKWARD + /// </summary> APPCOMMAND_BROWSER_BACKWARD = 1, + /// <summary> + /// APPCOMMAND_BROWSER_FORWARD + /// </summary> APPCOMMAND_BROWSER_FORWARD = 2, + /// <summary> + /// APPCOMMAND_BROWSER_REFRESH + /// </summary> APPCOMMAND_BROWSER_REFRESH = 3, + /// <summary> + /// APPCOMMAND_BROWSER_STOP + /// </summary> APPCOMMAND_BROWSER_STOP = 4, + /// <summary> + /// APPCOMMAND_BROWSER_SEARCH + /// </summary> APPCOMMAND_BROWSER_SEARCH = 5, + /// <summary> + /// APPCOMMAND_BROWSER_FAVORITES + /// </summary> APPCOMMAND_BROWSER_FAVORITES = 6, + /// <summary> + /// APPCOMMAND_BROWSER_HOME + /// </summary> APPCOMMAND_BROWSER_HOME = 7, + /// <summary> + /// APPCOMMAND_VOLUME_MUTE + /// </summary> APPCOMMAND_VOLUME_MUTE = 8, + /// <summary> + /// APPCOMMAND_VOLUME_DOWN + /// </summary> APPCOMMAND_VOLUME_DOWN = 9, + /// <summary> + /// APPCOMMAND_VOLUME_UP + /// </summary> APPCOMMAND_VOLUME_UP = 10, + /// <summary> + /// APPCOMMAND_MEDIA_NEXTTRACK + /// </summary> APPCOMMAND_MEDIA_NEXTTRACK = 11, + /// <summary> + /// APPCOMMAND_MEDIA_PREVIOUSTRACK + /// </summary> APPCOMMAND_MEDIA_PREVIOUSTRACK = 12, + /// <summary> + /// APPCOMMAND_MEDIA_STOP + /// </summary> APPCOMMAND_MEDIA_STOP = 13, + /// <summary> + /// APPCOMMAND_MEDIA_PLAY_PAUSE + /// </summary> APPCOMMAND_MEDIA_PLAY_PAUSE = 4143, + /// <summary> + /// APPCOMMAND_MEDIA_PLAY + /// </summary> APPCOMMAND_MEDIA_PLAY = 4142, + /// <summary> + /// APPCOMMAND_MEDIA_PAUSE + /// </summary> APPCOMMAND_MEDIA_PAUSE = 4143, + /// <summary> + /// APPCOMMAND_MEDIA_RECORD + /// </summary> APPCOMMAND_MEDIA_RECORD = 4144, + /// <summary> + /// APPCOMMAND_MEDIA_FASTFORWARD + /// </summary> APPCOMMAND_MEDIA_FASTFORWARD = 4145, + /// <summary> + /// APPCOMMAND_MEDIA_REWIND + /// </summary> APPCOMMAND_MEDIA_REWIND = 4146, + /// <summary> + /// APPCOMMAND_MEDIA_CHANNEL_UP + /// </summary> APPCOMMAND_MEDIA_CHANNEL_UP = 4147, + /// <summary> + /// APPCOMMAND_MEDIA_CHANNEL_DOWN + /// </summary> APPCOMMAND_MEDIA_CHANNEL_DOWN = 4148, } + /// <summary> + /// Send Windows Message with Timeout Flags. + /// </summary> [Flags] public enum SendMessageTimeoutFlags { + /// <summary> + /// Normal. + /// </summary> SMTO_NORMAL = 0x0000, + /// <summary> + /// Block. + /// </summary> SMTO_BLOCK = 0x0001, + /// <summary> + /// Abort if hung. + /// </summary> SMTO_ABORTIFHUNG = 0x0002, + /// <summary> + /// To timeout if not hung. + /// </summary> SMTO_NOTIMEOUTIFNOTHUNG = 0x0008, } + /// <summary> + /// Shutdown Reasons. + /// </summary> [Flags] public enum ShutdownReasons { + /// <summary> + /// MajorApplication + /// </summary> MajorApplication = 0x00040000, + /// <summary> + /// MajorHardware + /// </summary> MajorHardware = 0x00010000, + /// <summary> + /// MajorLegacyApi + /// </summary> MajorLegacyApi = 0x00070000, + /// <summary> + /// MajorOperatingSystem + /// </summary> MajorOperatingSystem = 0x00020000, + /// <summary> + /// MajorOther + /// </summary> MajorOther = 0x00000000, + /// <summary> + /// MajorPower + /// </summary> MajorPower = 0x00060000, + /// <summary> + /// MajorSoftware + /// </summary> MajorSoftware = 0x00030000, + /// <summary> + /// MajorSystem + /// </summary> MajorSystem = 0x00050000, + /// <summary> + /// MinorBlueScreen + /// </summary> MinorBlueScreen = 0x0000000F, + /// <summary> + /// MinorCordUnplugged + /// </summary> MinorCordUnplugged = 0x0000000b, + /// <summary> + /// MinorDisk + /// </summary> MinorDisk = 0x00000007, + /// <summary> + /// MinorEnvironment + /// </summary> MinorEnvironment = 0x0000000c, + /// <summary> + /// MinorHardwareDriver + /// </summary> MinorHardwareDriver = 0x0000000d, + /// <summary> + /// MinorHotfix + /// </summary> MinorHotfix = 0x00000011, + /// <summary> + /// MinorHung + /// </summary> MinorHung = 0x00000005, + /// <summary> + /// MinorInstallation + /// </summary> MinorInstallation = 0x00000002, + /// <summary> + /// MinorMaintenance + /// </summary> MinorMaintenance = 0x00000001, + /// <summary> + /// MinorMMC + /// </summary> MinorMMC = 0x00000019, + /// <summary> + /// MinorNetworkConnectivity + /// </summary> MinorNetworkConnectivity = 0x00000014, + /// <summary> + /// MinorNetworkCard + /// </summary> MinorNetworkCard = 0x00000009, + /// <summary> + /// MinorOther + /// </summary> MinorOther = 0x00000000, + /// <summary> + /// MinorOtherDriver + /// </summary> MinorOtherDriver = 0x0000000e, + /// <summary> + /// MinorPowerSupply + /// </summary> MinorPowerSupply = 0x0000000a, + /// <summary> + /// MinorProcessor + /// </summary> MinorProcessor = 0x00000008, + /// <summary> + /// MinorReconfig + /// </summary> MinorReconfig = 0x00000004, + /// <summary> + /// MinorSecurity + /// </summary> MinorSecurity = 0x00000013, + /// <summary> + /// MinorSecurityFix + /// </summary> MinorSecurityFix = 0x00000012, + /// <summary> + /// MinorSecurityFixUninstall + /// </summary> MinorSecurityFixUninstall = 0x00000018, + /// <summary> + /// MinorServicePack + /// </summary> MinorServicePack = 0x00000010, + /// <summary> + /// MinorServicePackUninstall + /// </summary> MinorServicePackUninstall = 0x00000016, + /// <summary> + /// MinorTermSrv + /// </summary> MinorTermSrv = 0x00000020, + /// <summary> + /// MinorUnstable + /// </summary> MinorUnstable = 0x00000006, + /// <summary> + /// MinorUpgrade + /// </summary> MinorUpgrade = 0x00000003, + /// <summary> + /// MinorWMI + /// </summary> MinorWMI = 0x00000015, + /// <summary> + /// FlagUserDefined + /// </summary> FlagUserDefined = 0x40000000, + //FlagPlanned = 0x80000000, } + /// <summary> + /// Exit Windows method. + /// </summary> [Flags] public enum ExitWindows { - // Must include ONE of the following: + /// <summary> + /// LogOff + /// </summary> LogOff = 0x00, + /// <summary> + /// ShutDown + /// </summary> ShutDown = 0x01, + /// <summary> + /// Reboot + /// </summary> Reboot = 0x02, + /// <summary> + /// PowerOff + /// </summary> PowerOff = 0x08, + /// <summary> + /// RestartApps + /// </summary> RestartApps = 0x40, - // Optionally include ONE of the following: + /// <summary> + /// Force + /// </summary> Force = 0x04, + /// <summary> + /// ForceIfHung + /// </summary> ForceIfHung = 0x10, } @@ -410,8 +1324,9 @@ string className, string windowName); + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] - public static extern IntPtr SendMessageTimeout( + private static extern IntPtr SendMessageTimeout( IntPtr hWnd, int msg, IntPtr wParam, @@ -508,6 +1423,36 @@ #region Methods /// <summary> + /// Send a window message using the SendMessageTimeout method. + /// </summary> + /// <param name="hWnd">The window handle to send to.</param> + /// <param name="msg">The message.</param> + /// <param name="wParam">The wParam.</param> + /// <param name="lParam">The lParam.</param> + public static void SendWindowsMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam) + { + IntPtr result = IntPtr.Zero; + + SendMessageTimeout(hWnd, msg, wParam, lParam, SendMessageTimeoutFlags.SMTO_ABORTIFHUNG, 1000, out result); + int lastError = Marshal.GetLastWin32Error(); + + if (result == IntPtr.Zero && lastError != 0) + throw new Win32Exception(lastError); + } + + /// <summary> + /// Send a window message using the SendMessageTimeout method. + /// </summary> + /// <param name="hWnd">The window handle to send to.</param> + /// <param name="msg">The message.</param> + /// <param name="wParam">The wParam.</param> + /// <param name="lParam">The lParam.</param> + public static void SendWindowsMessage(IntPtr hWnd, int msg, int wParam, int lParam) + { + SendWindowsMessage(hWnd, msg, new IntPtr(wParam), new IntPtr(lParam)); + } + + /// <summary> /// Get a handle to the current foreground window. /// </summary> /// <returns>Handle to foreground window.</returns> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj 2007-10-10 07:53:52 UTC (rev 991) @@ -40,11 +40,12 @@ <DefineConstants> </DefineConstants> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> - <DebugType>none</DebugType> + <DebugType>full</DebugType> <PlatformTarget>x86</PlatformTarget> <UseVSHostingProcess>false</UseVSHostingProcess> <ErrorReport>prompt</ErrorReport> <DocumentationFile>bin\x86\Debug\IRServerPluginInterface.XML</DocumentationFile> + <DebugSymbols>true</DebugSymbols> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\x86\Release\</OutputPath> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTransTransceiver.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -347,7 +347,7 @@ doc.Load(ConfigurationFile); _irTransRemoteModel = doc.DocumentElement.Attributes["RemoteModel"].Value; - _irTransServerAddress = doc.DocumentElement.Attributes["IrssUtils.Forms.ServerAddress"].Value; + _irTransServerAddress = doc.DocumentElement.Attributes["ServerAddress"].Value; _irTransServerPort = int.Parse(doc.DocumentElement.Attributes["ServerPort"].Value); } #if TRACE @@ -380,7 +380,7 @@ writer.WriteStartElement("settings"); // <settings> writer.WriteAttributeString("RemoteModel", _irTransRemoteModel.ToString()); - writer.WriteAttributeString("IrssUtils.Forms.ServerAddress", _irTransServerAddress.ToString()); + writer.WriteAttributeString("ServerAddress", _irTransServerAddress.ToString()); writer.WriteAttributeString("ServerPort", _irTransServerPort.ToString()); writer.WriteEndElement(); // </settings> Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Driver.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -236,7 +236,7 @@ /// <summary> /// Send an IR Command. /// </summary> - /// <param name="code">IR code data to send.</param> + /// <param name="code">IR Command data to send.</param> /// <param name="port">IR port to send to.</param> public abstract void Send(IrCode code, uint port); Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-10-09 21:19:45 UTC (rev 990) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs 2007-10-10 07:53:52 UTC (rev 991) @@ -199,7 +199,7 @@ public override void Start() { #if DEBUG - DebugOpen("MicrosoftMceTransceiver_DriverReplacement.log"); + DebugOpen("\\MicrosoftMceTransceiver_DriverReplacement.log"); DebugWriteLine("DriverReplacement.Start()"); #endif @@ -263,8 +263,8 @@ /// </summary> public override void Suspend() { - //Stop(); - WriteSync(StopPacket); + Stop(); + //WriteSync(StopPacket); } /// <summary> @@ -272,8 +272,8 @@ /// </summary> public override void Resume() { - //Start(); - WriteSync(StartPacket); + Start(); + //WriteSync(StartPacket); } /// <summary> @@ -340,7 +340,7 @@ /// <summary> /// Send an IR Command. /// </summary> - /// <param name="code">IR code data to send.</param> + /// <param name="code">IR Command data to send.</param> /// <param name="port">IR port to send to.</param> public override void Send(IrCode code, uint port) { Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transcei... [truncated message content] |
From: <an...@us...> - 2007-11-15 15:34:03
|
Revision: 1064 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1064&view=rev Author: and-81 Date: 2007-11-15 07:33:55 -0800 (Thu, 15 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.Designer.cs trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs trunk/plugins/IR Server Suite/Applications/Translator/Program.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Program.cs trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/MainForm.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Program.cs trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj trunk/plugins/IR Server Suite/Common/IrssComms/IrssComms.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Audio.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Common.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssLog.cs trunk/plugins/IR Server Suite/Common/IrssUtils/IrssUtils.csproj trunk/plugins/IR Server Suite/Common/IrssUtils/Keyboard.cs trunk/plugins/IR Server Suite/Common/IrssUtils/SystemRegistry.cs trunk/plugins/IR Server Suite/Common/IrssUtils/Win32.cs trunk/plugins/IR Server Suite/Common/MPUtils/MPUtils.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/RawInput.cs trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionREMOTE Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IR Server Plugin Interface/IR Server Plugin Interface.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTrans Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverReplacement.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverVista.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/DriverXP.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/IrCode.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/MicrosoftMceTransceiver.cs trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Pronto.cs trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10 Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.csproj trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/Input Service/InputService.cs trunk/plugins/IR Server Suite/Input Service/Input Service/InputServiceInstaller.cs trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Configuration.csproj trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Program.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MP Blast Zone Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MPBlastZonePlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputMappingForm.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MP Control Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/Forms/StbSetup.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2 Blaster Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2BlasterPlugin.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/ExternalChannels.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/Forms/MacroEditor.cs trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3 Blaster Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3BlasterPlugin.cs trunk/plugins/MCEReplacement/Forms/MacroEditor.cs trunk/plugins/MCEReplacement/Forms/SetupForm.cs trunk/plugins/MCEReplacement/Forms/StbSetup.cs trunk/plugins/MCEReplacement/MCEReplacement.cs trunk/plugins/MCEReplacement/MCEReplacement.csproj Added Paths: ----------- trunk/plugins/RC102 Plugin/ trunk/plugins/RC102 Plugin/AssemblyInfo.cs trunk/plugins/RC102 Plugin/RC102 Plugin.csproj trunk/plugins/RC102 Plugin/RC102.xml trunk/plugins/RC102 Plugin/RC102Plugin.cs Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -18,10 +18,11 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DocumentationFile>bin\Debug\DebugClient.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -19,10 +19,11 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DocumentationFile>bin\Debug\IRBlast.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/Program.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -40,8 +40,11 @@ [STAThread] static void Main(string[] args) { - // TODO: Change log level to info for release. +#if DEBUG IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif IrssLog.Append(Common.FolderIrssLogs + "IR Blast.log"); ShowHeader(); Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -19,10 +19,11 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> + <DocumentationFile>bin\Debug\IRBlast-NoWindow.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/Program.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -41,8 +41,11 @@ [STAThread] static void Main(string[] args) { - // TODO: Change log level to info for release. +#if DEBUG IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif IrssLog.Append(Common.FolderIrssLogs + "IR Blast (No Window).log"); try Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Config.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -134,6 +134,8 @@ catch (Exception ex) { IrssLog.Error(ex.ToString()); + + checkBoxRunAtBoot.Checked = false; } } Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -34,13 +34,12 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <UseVSHostingProcess>true</UseVSHostingProcess> - <DocumentationFile> - </DocumentationFile> + <DocumentationFile>bin\Debug\IRServer.XML</DocumentationFile> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> Modified: trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Server/IRServer.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -43,6 +43,9 @@ #endregion Enumerations + /// <summary> + /// IR Server. + /// </summary> public class IRServer : IDisposable { @@ -79,6 +82,9 @@ #region Constructor / Destructor + /// <summary> + /// Initializes a new instance of the <see cref="IRServer"/> class. + /// </summary> public IRServer() { // Setup taskbar icon @@ -104,12 +110,19 @@ #region IDisposable + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> + /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (disposing) @@ -132,7 +145,7 @@ #region Implementation /// <summary> - /// Start the server + /// Start the server. /// </summary> /// <returns>success.</returns> internal bool Start() @@ -295,7 +308,7 @@ } /// <summary> - /// Stop the server + /// Stop the server. /// </summary> internal void Stop() { @@ -954,7 +967,7 @@ { try { - IrssLog.Debug("Blast IR"); + IrssLog.Info("Blast IR"); if (_pluginTransmit == null || !(_pluginTransmit is ITransmitIR)) return false; @@ -978,18 +991,18 @@ } LearnStatus LearnIR(out byte[] data) { - IrssLog.Debug("Learn IR"); + IrssLog.Info("Learn IR"); data = null; if (_pluginTransmit == null) { - IrssLog.Debug("No transmit plugin loaded, can't learn"); + IrssLog.Warn("No transmit plugin loaded, can't learn"); return LearnStatus.Failure; } else if (!(_pluginTransmit is ILearnIR)) { - IrssLog.Debug("Active transmit plugin doesn't support learn"); + IrssLog.Warn("Active transmit plugin doesn't support learn"); return LearnStatus.Failure; } Modified: trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/IR Server/Program.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -40,8 +40,11 @@ Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - // TODO: Change log level to info for release. +#if DEBUG IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif IrssLog.Open(Common.FolderIrssLogs + "IR Server.log"); Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); Modified: trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.Designer.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.Designer.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -1,5 +1,6 @@ namespace SageSetup { + partial class FormMain { /// <summary> @@ -242,5 +243,6 @@ private System.Windows.Forms.ToolTip toolTips; private System.Windows.Forms.NumericUpDown numericUpDownPad; } + } Modified: trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/SageSetup/FormMain.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -13,10 +13,17 @@ namespace SageSetup { + /// <summary> + /// Main Sage Setup form. + /// </summary> public partial class FormMain : Form { + string _irBlastLocation = null; - + + /// <summary> + /// Initializes a new instance of the <see cref="FormMain"/> class. + /// </summary> public FormMain() { InitializeComponent(); Modified: trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -36,6 +36,8 @@ <DebugType>full</DebugType> <PlatformTarget>AnyCPU</PlatformTarget> <ErrorReport>prompt</ErrorReport> + <DocumentationFile>bin\Debug\SageSetup.XML</DocumentationFile> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <OutputPath>bin\Release\</OutputPath> Modified: trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/EventSchedule.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -4,9 +4,9 @@ namespace Translator { +/* + #region Enumerations - #region Enumerations - /* public enum ScheduleRepeat { Never, @@ -48,17 +48,17 @@ November, December, } - */ + #endregion Enumerations class EventSchedule { - //DateTime _start; + DateTime _start; - //ScheduleRepeat _repeat = ScheduleRepeat.Never; - //ScheduleDays _days = ScheduleDays.None; - //ScheduleMonths _months = ScheduleMonths.None; + ScheduleRepeat _repeat = ScheduleRepeat.Never; + ScheduleDays _days = ScheduleDays.None; + ScheduleMonths _months = ScheduleMonths.None; } - +*/ } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/ButtonMappingForm.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -249,10 +249,10 @@ case Common.MouseScrollUp: checkBoxMouseScrollUp.Checked = true; break; default: - if (suffix.StartsWith(Common.MouseMoveDown)) checkBoxMouseMoveDown.Checked = true; - else if (suffix.StartsWith(Common.MouseMoveLeft)) checkBoxMouseMoveLeft.Checked = true; - else if (suffix.StartsWith(Common.MouseMoveRight)) checkBoxMouseMoveRight.Checked = true; - else if (suffix.StartsWith(Common.MouseMoveUp)) checkBoxMouseMoveUp.Checked = true; + if (suffix.StartsWith(Common.MouseMoveDown, StringComparison.OrdinalIgnoreCase)) checkBoxMouseMoveDown.Checked = true; + else if (suffix.StartsWith(Common.MouseMoveLeft, StringComparison.OrdinalIgnoreCase)) checkBoxMouseMoveLeft.Checked = true; + else if (suffix.StartsWith(Common.MouseMoveRight, StringComparison.OrdinalIgnoreCase)) checkBoxMouseMoveRight.Checked = true; + else if (suffix.StartsWith(Common.MouseMoveUp, StringComparison.OrdinalIgnoreCase)) checkBoxMouseMoveUp.Checked = true; numericUpDownMouseMove.Value = Decimal.Parse(suffix.Substring(suffix.IndexOf(' '))); break; @@ -288,7 +288,6 @@ default: if (prefix.Equals(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) comboBoxMiscCommand.SelectedItem = Common.UITextEject; - //else break; } break; @@ -474,8 +473,10 @@ private void buttonTest_Click(object sender, EventArgs e) { - if (_command.StartsWith(Common.CmdPrefixKeys)) + if (_command.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) + { MessageBox.Show(this, "Keystroke commands cannot be tested here", "Cannot test Keystroke command", MessageBoxButtons.OK, MessageBoxIcon.Stop); + } else { try Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MacroEditor.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -98,72 +98,72 @@ { writer.WriteStartElement("action"); - if (item.StartsWith(Common.CmdPrefixMacro)) + if (item.StartsWith(Common.CmdPrefixMacro, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagMacro); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMacro.Length)); } - else if (item.StartsWith(Common.CmdPrefixBlast)) + else if (item.StartsWith(Common.CmdPrefixBlast, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagBlast); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixBlast.Length)); } - else if (item.StartsWith(Common.CmdPrefixPause)) + else if (item.StartsWith(Common.CmdPrefixPause, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagPause); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixPause.Length)); } - else if (item.StartsWith(Common.CmdPrefixRun)) + else if (item.StartsWith(Common.CmdPrefixRun, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagRun); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixRun.Length)); } - else if (item.StartsWith(Common.CmdPrefixSerial)) + else if (item.StartsWith(Common.CmdPrefixSerial, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagSerial); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixSerial.Length)); } - else if (item.StartsWith(Common.CmdPrefixWindowMsg)) + else if (item.StartsWith(Common.CmdPrefixWindowMsg, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagWindowMsg); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixWindowMsg.Length)); } - else if (item.StartsWith(Common.CmdPrefixTcpMsg)) + else if (item.StartsWith(Common.CmdPrefixTcpMsg, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagTcpMsg); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixTcpMsg.Length)); } - else if (item.StartsWith(Common.CmdPrefixKeys)) + else if (item.StartsWith(Common.CmdPrefixKeys, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagKeys); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixKeys.Length)); } - else if (item.StartsWith(Common.CmdPrefixMouse)) + else if (item.StartsWith(Common.CmdPrefixMouse, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagMouse); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixMouse.Length)); } - else if (item.StartsWith(Common.CmdPrefixEject)) + else if (item.StartsWith(Common.CmdPrefixEject, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagEject); writer.WriteAttributeString("cmdproperty", item.Substring(Common.CmdPrefixEject.Length)); } - else if (item.StartsWith(Common.CmdPrefixStandby)) + else if (item.StartsWith(Common.CmdPrefixStandby, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagStandby); writer.WriteAttributeString("cmdproperty", String.Empty); } - else if (item.StartsWith(Common.CmdPrefixHibernate)) + else if (item.StartsWith(Common.CmdPrefixHibernate, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagHibernate); writer.WriteAttributeString("cmdproperty", String.Empty); } - else if (item.StartsWith(Common.CmdPrefixReboot)) + else if (item.StartsWith(Common.CmdPrefixReboot, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagReboot); writer.WriteAttributeString("cmdproperty", String.Empty); } - else if (item.StartsWith(Common.CmdPrefixShutdown)) + else if (item.StartsWith(Common.CmdPrefixShutdown, StringComparison.OrdinalIgnoreCase)) { writer.WriteAttributeString("command", Common.XmlTagShutdown); writer.WriteAttributeString("cmdproperty", String.Empty); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MainForm.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -123,7 +123,12 @@ { checkBoxAutoRun.Checked = SystemRegistry.GetAutoRun("Translator"); } - catch { } + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + + checkBoxAutoRun.Checked = false; + } } #endregion Constructor @@ -175,8 +180,11 @@ int imageIndex = 2; foreach (ProgramSettings progSettings in Program.Config.Programs) { - Icon icon = Win32.GetIconFor(progSettings.FileName); + Icon icon = null; + if (!String.IsNullOrEmpty(progSettings.FileName)) + icon = Win32.GetIconFor(progSettings.FileName); + if (icon != null) { imageListPrograms.Images.Add(icon); @@ -1266,7 +1274,11 @@ if (programSettings.Name.Equals(selectedItem)) continue; + if (String.IsNullOrEmpty(programSettings.FileName)) + continue; + Icon icon = Win32.GetIconFor(programSettings.FileName); + Image image = null; if (icon != null) image = icon.ToBitmap(); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.Designer.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -30,9 +30,9 @@ { this.components = new System.ComponentModel.Container(); this.listViewMenu = new System.Windows.Forms.ListView(); + this.columnHeader = new System.Windows.Forms.ColumnHeader(); this.toolTips = new System.Windows.Forms.ToolTip(this.components); this.labelHeader = new System.Windows.Forms.Label(); - this.columnHeader = new System.Windows.Forms.ColumnHeader(); this.SuspendLayout(); // // listViewMenu @@ -46,22 +46,24 @@ this.listViewMenu.FullRowSelect = true; this.listViewMenu.GridLines = true; this.listViewMenu.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; - this.listViewMenu.HideSelection = false; this.listViewMenu.HotTracking = true; this.listViewMenu.HoverSelection = true; this.listViewMenu.Location = new System.Drawing.Point(0, 20); this.listViewMenu.MultiSelect = false; this.listViewMenu.Name = "listViewMenu"; - this.listViewMenu.Scrollable = false; this.listViewMenu.ShowGroups = false; this.listViewMenu.ShowItemToolTips = true; this.listViewMenu.Size = new System.Drawing.Size(256, 108); - this.listViewMenu.TabIndex = 1; + this.listViewMenu.TabIndex = 0; this.listViewMenu.TileSize = new System.Drawing.Size(128, 96); this.listViewMenu.UseCompatibleStateImageBehavior = false; this.listViewMenu.ItemActivate += new System.EventHandler(this.listViewMenu_ItemActivate); this.listViewMenu.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listViewMenu_KeyPress); // + // columnHeader + // + this.columnHeader.Width = 232; + // // labelHeader // this.labelHeader.BackColor = System.Drawing.SystemColors.GradientActiveCaption; @@ -70,14 +72,10 @@ this.labelHeader.Location = new System.Drawing.Point(0, 0); this.labelHeader.Name = "labelHeader"; this.labelHeader.Size = new System.Drawing.Size(256, 20); - this.labelHeader.TabIndex = 0; + this.labelHeader.TabIndex = 1; this.labelHeader.Text = "Translator OSD"; this.labelHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // - // columnHeader - // - this.columnHeader.Width = 232; - // // MenuForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -89,7 +87,7 @@ this.DoubleBuffered = true; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(512, 256); + this.MaximumSize = new System.Drawing.Size(512, 512); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(256, 128); this.Name = "MenuForm"; @@ -100,7 +98,9 @@ this.Text = "MenuForm"; this.TopMost = true; this.Deactivate += new System.EventHandler(this.MenuForm_Deactivate); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MenuForm_FormClosed); this.Shown += new System.EventHandler(this.MenuForm_Shown); + this.Load += new System.EventHandler(this.MenuForm_Load); this.ResumeLayout(false); } Modified: trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Forms/MenuForm.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -19,21 +19,34 @@ public partial class MenuForm : Form { + #region Enumerations + + enum Menus + { + Main, + + Launch, + Tasks, + Macros, + System, + Windows, + Power, + Audio, + Eject, + + WindowActivate, + WindowClose, + WindowMinimize, + WindowMaximize, + + } + + #endregion Enumerations + #region Constants const string WindowTitle = "Translator OSD"; - // Menus - const string MenuMain = "Main"; - const string MenuLaunch = "Launch"; - const string MenuTasks = "Tasks"; - const string MenuMacros = "Macros"; - const string MenuSystem = "System"; - const string MenuWindows = "Windows"; - const string MenuPower = "Power"; - const string MenuAudio = "Audio"; - const string MenuEject = "Eject"; - // Menu UI Text const string UITextMain = "Main Menu"; const string UITextLaunch = "Launch App"; @@ -90,10 +103,8 @@ ListViewItem _macro; ListViewItem _system; - List<string> _menuStack; + List<Menus> _menuStack; - string _startMenu = "Main"; - #endregion Variables /// <summary> @@ -107,40 +118,43 @@ _launch = new ListViewItem(UITextLaunch, 0); _launch.ToolTipText = DescLaunch; - _launch.Tag = TagMenu + MenuLaunch; + _launch.Tag = Menus.Launch; _taskSwitch = new ListViewItem(UITextTasks, 1); _taskSwitch.ToolTipText = DescTasks; - _taskSwitch.Tag = TagMenu + MenuTasks; + _taskSwitch.Tag = Menus.Tasks; _macro = new ListViewItem(UITextMacros, 2); _macro.ToolTipText = DescMacros; - _macro.Tag = TagMenu + MenuMacros; + _macro.Tag = Menus.Macros; _system = new ListViewItem(UITextSystem, 3); _system.ToolTipText = DescSystem; - _system.Tag = TagMenu + MenuSystem; + _system.Tag = Menus.System; + } - _menuStack = new List<string>(); + private void MenuForm_Load(object sender, EventArgs e) + { + _menuStack = new List<Menus>(); + + SwitchMenu(Menus.Main); } - private void MenuForm_Shown(object sender, EventArgs e) { - SwitchMenu(_startMenu); - _startMenu = MenuMain; - Win32.SetForegroundWindow(this.Handle, true); - - //listViewMenu.Select(); } - private void MenuForm_Deactivate(object sender, EventArgs e) { this.Close(); } + private void MenuForm_FormClosed(object sender, FormClosedEventArgs e) + { + listViewMenu.SelectedItems.Clear(); + listViewMenu.Items.Clear(); + _menuStack = null; + } - void CreateMainImageList() { _listMain = new ImageList(); @@ -169,17 +183,13 @@ { listViewMenu.View = View.LargeIcon; listViewMenu.Alignment = ListViewAlignment.Left; - listViewMenu.Scrollable = true; - } void SetToListStyle() { listViewMenu.View = View.Details; listViewMenu.Alignment = ListViewAlignment.Top; - listViewMenu.Scrollable = true; + } - } - void SetWindowTitle(string subMenuName) { if (String.IsNullOrEmpty(subMenuName)) @@ -195,54 +205,18 @@ listViewMenu.LargeImageList = _listMain; - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); + listViewMenu.Items.Add(_taskSwitch); listViewMenu.Items.Add(_launch); - listViewMenu.Items.Add(_taskSwitch); listViewMenu.Items.Add(_macro); listViewMenu.Items.Add(_system); - - _launch.Selected = true; } - void LoadMenuLaunch() - { - SetWindowTitle(UITextLaunch); - - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - - ImageList newList = new ImageList(); - newList.ColorDepth = ColorDepth.Depth32Bit; - newList.ImageSize = new Size(32, 32); - - listViewMenu.LargeImageList = newList; - - SetToIconStyle(); - - int index = 0; - foreach (ProgramSettings program in Program.Config.Programs) - { - newList.Images.Add(Win32.GetIconFor(program.FileName)); - ListViewItem item = new ListViewItem(program.Name, index++); - item.ToolTipText = program.FileName; - item.Tag = TagLaunch + program.FileName; - - listViewMenu.Items.Add(item); - } - - listViewMenu.Items[0].Selected = true; - } void LoadMenuTasks() { SetWindowTitle(UITextTasks); - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - ImageList newList = new ImageList(); newList.ColorDepth = ColorDepth.Depth32Bit; newList.ImageSize = new Size(32, 32); @@ -263,20 +237,44 @@ ListViewItem desktop = new ListViewItem("Desktop", 0); desktop.ToolTipText = "Show the Desktop"; desktop.Tag = IntPtr.Zero; - desktop.Selected = true; listViewMenu.Items.Add(desktop); PopulateTaskList(); } + void LoadMenuLaunch() + { + SetWindowTitle(UITextLaunch); + + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + int index = 0; + foreach (ProgramSettings program in Program.Config.Programs) + { + if (String.IsNullOrEmpty(program.FileName)) + continue; + + Icon icon = Win32.GetIconFor(program.FileName); + newList.Images.Add(icon); + + ListViewItem item = new ListViewItem(program.Name, index++); + item.ToolTipText = program.FileName; + item.Tag = TagLaunch + program.FileName; + + listViewMenu.Items.Add(item); + } + } void LoadMenuMacros() { SetWindowTitle(UITextMacros); listViewMenu.LargeImageList = null; - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToListStyle(); string[] macros = Program.GetMacroList(false); @@ -290,16 +288,11 @@ listViewMenu.Items.Add(item); } - - listViewMenu.Items[0].Selected = true; } void LoadMenuSystem() { SetWindowTitle(UITextSystem); - listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); ImageList newList = new ImageList(); @@ -330,34 +323,29 @@ item = new ListViewItem(UITextWindows, 0); item.ToolTipText = DescWindows; - item.Tag = TagMenu + MenuWindows; + item.Tag = Menus.Windows; listViewMenu.Items.Add(item); item = new ListViewItem(UITextPower, 1); item.ToolTipText = DescPower; - item.Tag = TagMenu + MenuPower; + item.Tag = Menus.Power; listViewMenu.Items.Add(item); - item = new ListViewItem(UITextAudio, 2); - item.ToolTipText = DescAudio; - item.Tag = TagMenu + MenuAudio; - listViewMenu.Items.Add(item); + //item = new ListViewItem(UITextAudio, 2); + //item.ToolTipText = DescAudio; + //item.Tag = Menus.Audio; + //listViewMenu.Items.Add(item); item = new ListViewItem(UITextEject, 3); item.ToolTipText = DescEject; - item.Tag = TagMenu + MenuEject; + item.Tag = Menus.Eject; listViewMenu.Items.Add(item); - - listViewMenu.Items[0].Selected = true; } void LoadMenuWindows() { SetWindowTitle(UITextWindows); - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); ImageList newList = new ImageList(); @@ -372,26 +360,53 @@ string folder = Environment.GetFolderPath(Environment.SpecialFolder.System); string file = folder + "\\shell32.dll"; + Win32.ExtractIcons(file, IconTasks, out large, out small); + newList.Images.Add(large); + + Win32.ExtractIcons(file, 131, out large, out small); + newList.Images.Add(large); + Win32.ExtractIcons(file, IconDesktop, out large, out small); newList.Images.Add(large); + Win32.ExtractIcons(file, IconDesktop, out large, out small); + newList.Images.Add(large); + + Win32.ExtractIcons(file, IconDesktop, out large, out small); + newList.Images.Add(large); + ListViewItem item; - item = new ListViewItem("Minimize all", 0); + item = new ListViewItem("Activate", 0); + item.ToolTipText = "Activate a window"; + item.Tag = Menus.WindowActivate; + listViewMenu.Items.Add(item); + + item = new ListViewItem("Close", 1); + item.ToolTipText = "Close a window"; + item.Tag = Menus.WindowClose; + listViewMenu.Items.Add(item); + + item = new ListViewItem("Maximize", 2); + item.ToolTipText = "Maximize a window"; + item.Tag = Menus.WindowMaximize; + listViewMenu.Items.Add(item); + + item = new ListViewItem("Minimize", 3); + item.ToolTipText = "Minimize a window"; + item.Tag = Menus.WindowMinimize; + listViewMenu.Items.Add(item); + + item = new ListViewItem("Minimize all", 4); item.ToolTipText = "Minimize all open windows"; item.Tag = IntPtr.Zero; listViewMenu.Items.Add(item); - item.Selected = true; - } void LoadMenuPower() { - SetWindowTitle("Power"); + SetWindowTitle(UITextPower); - listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); ImageList newList = new ImageList(); @@ -415,8 +430,6 @@ item.ToolTipText = "Shutdown windows"; item.Tag = TagCommand + CommandShutdown; listViewMenu.Items.Add(item); - - item.Selected = true; item = new ListViewItem("Reboot", 0); item.ToolTipText = "Reboot windows"; @@ -442,9 +455,6 @@ { SetWindowTitle(UITextAudio); - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); ImageList newList = new ImageList(); @@ -469,8 +479,6 @@ item.Tag = TagCommand + "Volume Up"; listViewMenu.Items.Add(item); - item.Selected = true; - item = new ListViewItem("Volume Down", 0); item.ToolTipText = "Decreases the audio volume"; item.Tag = TagCommand + "Volume Down"; @@ -484,11 +492,8 @@ } void LoadMenuEject() { - SetWindowTitle(UITextAudio); + SetWindowTitle(UITextEject); - //listViewMenu.SelectedItems.Clear(); - listViewMenu.Items.Clear(); - SetToIconStyle(); ImageList newList = new ImageList(); @@ -519,77 +524,149 @@ listViewMenu.Items.Add(item); } } + } - if (drives.Length > 0) - listViewMenu.Items[0].Selected = true; + void LoadMenuWindowActivate() + { + SetWindowTitle("Activate Window"); + + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + PopulateTaskList(); } + void LoadMenuWindowClose() + { + SetWindowTitle("Close Window"); - void SwitchMenu(string menuName) + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + PopulateTaskList(); + } + void LoadMenuWindowMaximize() { - _menuStack.Add(menuName); + SetWindowTitle("Maximize Window"); - switch (menuName) + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + PopulateTaskList(); + } + void LoadMenuWindowMinimize() + { + SetWindowTitle("Minimize Window"); + + ImageList newList = new ImageList(); + newList.ColorDepth = ColorDepth.Depth32Bit; + newList.ImageSize = new Size(32, 32); + + listViewMenu.LargeImageList = newList; + + SetToIconStyle(); + + PopulateTaskList(); + } + + + + void SwitchMenu(Menus menu) + { + _menuStack.Add(menu); + + listViewMenu.SelectedItems.Clear(); + listViewMenu.Items.Clear(); + + switch (menu) { - case MenuMain: LoadMenuMain(); break; + case Menus.Tasks: LoadMenuTasks(); break; + case Menus.Launch: LoadMenuLaunch(); break; + case Menus.Macros: LoadMenuMacros(); break; + case Menus.System: LoadMenuSystem(); break; - case MenuLaunch: LoadMenuLaunch(); break; - case MenuTasks: LoadMenuTasks(); break; - case MenuMacros: LoadMenuMacros(); break; - case MenuSystem: LoadMenuSystem(); break; + case Menus.Windows: LoadMenuWindows(); break; + case Menus.Power: LoadMenuPower(); break; + case Menus.Audio: LoadMenuAudio(); break; + case Menus.Eject: LoadMenuEject(); break; - case MenuWindows: LoadMenuWindows(); break; - case MenuPower: LoadMenuPower(); break; - case MenuAudio: LoadMenuAudio(); break; - case MenuEject: LoadMenuEject(); break; + case Menus.WindowActivate: LoadMenuWindowActivate(); break; + case Menus.WindowClose: LoadMenuWindowClose(); break; + case Menus.WindowMaximize: LoadMenuWindowMaximize(); break; + case Menus.WindowMinimize: LoadMenuWindowMinimize(); break; + + default: LoadMenuMain(); break; } ResizeWindow(); - //listViewMenu.Focus(); + if (listViewMenu.Items.Count > 0) + { + listViewMenu.Items[0].Selected = true; + listViewMenu.Items[0].Focused = true; + } } void ResizeWindow() { + int newWidth = 0; + int newHeight = 0; + if (listViewMenu.View == View.Details) { - this.Size = this.MinimumSize; + newWidth = this.MinimumSize.Width; + foreach (ListViewItem item in listViewMenu.Items) + newHeight += item.Bounds.Height + 2; + + //newHeight += 1; } else { - int requiredWidth = 0; - int requiredHeight = 0; - foreach (ListViewItem item in listViewMenu.Items) { - requiredWidth += item.Bounds.Width + 4; + newWidth += item.Bounds.Width + 4; - if (requiredHeight < item.Bounds.Height) - requiredHeight = item.Bounds.Height; + if (newHeight < item.Bounds.Height) + newHeight = item.Bounds.Height; } - int finalWidth = requiredWidth; - int finalHeight = requiredHeight + 16; + newHeight += 16; + newWidth += 8; + } - if (finalWidth > this.MaximumSize.Width) - finalWidth = this.MaximumSize.Width; - else if (finalWidth < this.MinimumSize.Width) - finalWidth = this.MinimumSize.Width; + if (newWidth > this.MaximumSize.Width) + newWidth = this.MaximumSize.Width; + else if (newWidth < this.MinimumSize.Width) + newWidth = this.MinimumSize.Width; - if (finalHeight > this.MaximumSize.Height) - finalHeight = this.MaximumSize.Height; - else if (finalHeight < this.MinimumSize.Height) - finalHeight = this.MinimumSize.Height; + if (newHeight > this.MaximumSize.Height) + newHeight = this.MaximumSize.Height; + else if (newHeight < this.MinimumSize.Height) + newHeight = this.MinimumSize.Height; - this.Size = new Size(finalWidth, finalHeight); - } + this.Size = new Size(newWidth, newHeight); Screen thisScreen = Screen.FromPoint(this.Location); Rectangle workingArea = thisScreen.Bounds; this.Location = new Point( - workingArea.X + (workingArea.Width / 2) - (this.Size.Width / 2), - workingArea.Y + (workingArea.Height / 2) - (this.Size.Height / 2)); + workingArea.X + (workingArea.Width / 2) - (newWidth / 2), + workingArea.Y + (workingArea.Height / 2) - (newHeight / 2)); } void Launch(string programFile) @@ -612,7 +689,7 @@ { this.Close(); - Program.ProcessMacro(Program.FolderMacros + macroName); + Program.ProcessMacro(Program.FolderMacros + macroName + Common.FileExtensionMacro); } void TaskSwap(IntPtr window) { @@ -629,11 +706,11 @@ switch (command) { - case CommandShutdown: Shutdown(); break; - case CommandReboot: Reboot(); break; - case CommandLogOff: LogOff(); break; - case CommandStandby: Standby(); break; - case CommandHibernate: Hibernate(); break; + case CommandShutdown: Shutdown(); break; + case CommandReboot: Reboot(); break; + case CommandLogOff: LogOff(); break; + case CommandStandby: Standby(); break; + case CommandHibernate: Hibernate(); break; } @@ -645,18 +722,43 @@ CDRom.Open(drive); } + void Close(IntPtr window) + { + this.Close(); + if (window == IntPtr.Zero) + return; + + Win32.SendWindowsMessage(window, (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_CLOSE, 0); + } + void Minimize(IntPtr window) + { + this.Close(); + + if (window == IntPtr.Zero) + return; + + Win32.SendWindowsMessage(window, (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_MINIMIZE, 0); + } + void Maximize(IntPtr window) + { + this.Close(); + + if (window == IntPtr.Zero) + return; + + Win32.SendWindowsMessage(window, (int)Win32.WindowsMessage.WM_SYSCOMMAND, (int)Win32.SysCommand.SC_MAXIMIZE, 0); + } + static void Hibernate() { IrssLog.Info("Hibernate"); - if (!Application.SetSuspendState(PowerState.Hibernate, false, false)) IrssLog.Warn("Hibernate request was rejected by another application."); } static void Standby() { IrssLog.Info("Standby"); - if (!Application.SetSuspendState(PowerState.Suspend, false, false)) IrssLog.Warn("Standby request was rejected by another application."); } @@ -676,74 +778,107 @@ Win32.WindowsExit(Win32.ExitWindows.ShutDown, Win32.ShutdownReasons.FlagUserDefined); } - private void listViewMenu_ItemActivate(object sender, EventArgs e) + void ActivateItem(int index) { - ListViewItem selectedItem = listViewMenu.SelectedItems[0]; + if (index >= listViewMenu.Items.Count) + return; - if (selectedItem.Tag is string) + ListViewItem selectedItem = listViewMenu.Items[index]; + + if (selectedItem.Tag == null) { - string tag = selectedItem.Tag as string; + return; + } + else if (selectedItem.Tag is Menus) + { + SwitchMenu((Menus)selectedItem.Tag); + } + else if (selectedItem.Tag is IntPtr) + { + IntPtr handle = (IntPtr)selectedItem.Tag; - if (tag.StartsWith(TagMenu)) + switch (GetCurrentMenu()) { - string menu = tag.Substring(TagMenu.Length); - SwitchMenu(menu); + case Menus.Tasks: TaskSwap(handle); break; + case Menus.Windows: TaskSwap(handle); break; + case Menus.WindowActivate: TaskSwap(handle); break; + case Menus.WindowClose: Close(handle); break; + case Menus.WindowMaximize: Maximize(handle); break; + case Menus.WindowMinimize: Minimize(handle); break; } - else if (tag.StartsWith(TagLaunch)) - { - string program = tag.Substring(TagLaunch.Length); - Launch(program); - } - else if (tag.StartsWith(TagMacro)) - { - string macro = tag.Substring(TagMacro.Length); - Macro(macro); - } - else if (tag.StartsWith(TagCommand)) - { - string command = tag.Substring(TagCommand.Length); - Command(command); - } - else if (tag.StartsWith(TagEject)) - { - string drive = tag.Substring(TagEject.Length); - Eject(drive); - } } - else if (selectedItem.Tag is IntPtr) + else if (selectedItem.Tag is string) { - TaskSwap((IntPtr)selectedItem.Tag); + string tag = (string)selectedItem.Tag; + + if (tag.StartsWith(TagLaunch, StringComparison.OrdinalIgnoreCase)) + Launch(tag.Substring(TagLaunch.Length)); + else if (tag.StartsWith(TagMacro, StringComparison.OrdinalIgnoreCase)) + Macro(tag.Substring(TagMacro.Length)); + else if (tag.StartsWith(TagCommand, StringComparison.OrdinalIgnoreCase)) + Command(tag.Substring(TagCommand.Length)); + else if (tag.StartsWith(TagEject, StringComparison.OrdinalIgnoreCase)) + Eject(tag.Substring(TagEject.Length)); + } } + + private void listViewMenu_ItemActivate(object sender, EventArgs e) + { + ActivateItem(listViewMenu.SelectedItems[0].Index); + } + private void listViewMenu_KeyPress(object sender, KeyPressEventArgs e) { - if (e.KeyChar == 27) + e.Handled = true; + + switch (e.KeyChar) { - if (_menuStack.Count == 1) - { - this.Close(); - } - else - { - // Remove current - _menuStack.RemoveAt(_menuStack.Count - 1); - - // Get previous - string previous = _menuStack[_menuStack.Count - 1]; - - // Remove previous - _menuStack.RemoveAt(_menuStack.Count - 1); + case (char)27: // ESC + if (_menuStack.Count == 1) + { + this.Close(); + } + else + { + // Remove current + _menuStack.RemoveAt(_menuStack.Count - 1); - // Switch to previous - SwitchMenu(previous); - } - - e.Handled = true; + // Get previous + Menus previous = _menuStack[_menuStack.Count - 1]; + + // Remove previous + _menuStack.RemoveAt(_menuStack.Count - 1); + + // Switch to previous + SwitchMenu(previous); + } + break; + + case '1': ActivateItem(0); break; + case '2': ActivateItem(1); break; + case '3': ActivateItem(2); break; + case '4': ActivateItem(3); break; + case '5': ActivateItem(4); break; + case '6': ActivateItem(5); break; + case '7': ActivateItem(6); break; + case '8': ActivateItem(7); break; + case '9': ActivateItem(8); break; + + default: + e.Handled = false; + break; } + } + Menus GetCurrentMenu() + { + return _menuStack[_menuStack.Count - 1]; + } + void PopulateTaskList() { Win32.EnumWindowsProc ewp = new Win32.EnumWindowsProc(AddTask); Modified: trunk/plugins/IR Server Suite/Applications/Translator/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Translator/Program.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -115,8 +115,11 @@ Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - // TODO: Change log level to info for release. +#if DEBUG IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif IrssLog.Open(Common.FolderIrssLogs + "Translator.log"); Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); @@ -272,6 +275,28 @@ CopyDataWM.SendCopyDataMessage(Common.CmdPrefixTranslator); continue; + case "-CHANNEL": + { + if (args.Length > index + 3) + { + string channel = args[++index]; + int padding = int.Parse(args[++index]); + string port = args[++index]; + + while (channel.Length < padding) + channel = '0' + channel; + + foreach (char digit in channel) + CopyDataWM.SendCopyDataMessage(Common.CmdPrefixBlast + digit + '|' + port); + } + else + { + Console.WriteLine("Channel command requires three parameters."); + } + + continue; + } + //TODO: Add more command line options. } } @@ -281,20 +306,26 @@ { IrssLog.Info("Show OSD"); - Thread thread = new Thread(new ThreadStart(MenuThread)); - thread.Start(); + if (_menuForm.Visible) + { + IrssLog.Info("OSD already visible"); + } + else + { + Thread thread = new Thread(new ThreadStart(MenuThread)); + thread.Start(); + } } - static void MenuThread() { - if (_menuForm.Visible) + try { - IrssLog.Info("OSD already visible"); - - return; + _menuForm.ShowDialog(); } - - _menuForm.ShowDialog(); + catch (Exception ex) + { + IrssLog.Error(ex.ToString()); + } } static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) @@ -693,7 +724,7 @@ case MessageType.BlastIR: if ((received.Flags & MessageFlags.Success) == MessageFlags.Success) - IrssLog.Debug("Blast successful"); + IrssLog.Info("Blast successful"); else if ((received.Flags & MessageFlags.Failure) == MessageFlags.Failure) IrssLog.Error("Failed to blast IR command"); break; @@ -767,7 +798,7 @@ int pid = Win32.GetForegroundWindowPID(); if (pid == -1) { - IrssLog.Debug("Error retreiving foreground window process ID"); + IrssLog.Debug("Failed to retreive foreground window process ID"); return null; } Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Program.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Program.cs 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Program.cs 2007-11-15 15:33:55 UTC (rev 1064) @@ -24,8 +24,11 @@ Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - // TODO: Change log level to info for release. +#if DEBUG IrssLog.LogLevel = IrssLog.Level.Debug; +#else + IrssLog.LogLevel = IrssLog.Level.Info; +#endif IrssLog.Open(Common.FolderIrssLogs + "Tray Launcher.log"); Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); Modified: trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj 2007-11-15 15:06:30 UTC (rev 1063) +++ trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj 2007-11-15 15:33:55 UTC (rev 1064) @@ -18,11 +18,12 @@ <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG</DefineConstants> + <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <UseVSHostingProcess>false</UseVSHostingProcess> + <DocumentationFile>bin\Debug\TrayLauncher.XML</DocumentationFile> </PropertyGroup> <PropertyGr... [truncated message content] |
From: <an...@us...> - 2007-11-27 16:00:58
|
Revision: 1093 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1093&view=rev Author: and-81 Date: 2007-11-27 08:00:51 -0800 (Tue, 27 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Suite.nsi Added Paths: ----------- trunk/plugins/MCEReplacement/AppData/ trunk/plugins/MCEReplacement/AppData/DifferentRemote.xml trunk/plugins/MCEReplacement/AppData/EventMapping.xml trunk/plugins/MCEReplacement/AppData/MCERemote.xml trunk/plugins/MCEReplacement/AppData/MultiMapping.xml trunk/plugins/MCEReplacement/Docs/ trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhc trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhp trunk/plugins/MCEReplacement/Docs/RemoteButton.txt trunk/plugins/MCEReplacement/Docs/configuration.png trunk/plugins/MCEReplacement/Docs/configure.html trunk/plugins/MCEReplacement/Docs/different.html trunk/plugins/MCEReplacement/Docs/event.html trunk/plugins/MCEReplacement/Docs/event_mapper.png trunk/plugins/MCEReplacement/Docs/external_channel.png trunk/plugins/MCEReplacement/Docs/external_program.png trunk/plugins/MCEReplacement/Docs/ffdshow_control.png trunk/plugins/MCEReplacement/Docs/goto_screen.PNG trunk/plugins/MCEReplacement/Docs/index.html trunk/plugins/MCEReplacement/Docs/install.html trunk/plugins/MCEReplacement/Docs/introduction.html trunk/plugins/MCEReplacement/Docs/ir_commands.png trunk/plugins/MCEReplacement/Docs/issues.html trunk/plugins/MCEReplacement/Docs/keystrokes.html trunk/plugins/MCEReplacement/Docs/keystrokes.png trunk/plugins/MCEReplacement/Docs/learn_ir.png trunk/plugins/MCEReplacement/Docs/macro_editor.png trunk/plugins/MCEReplacement/Docs/macros.png trunk/plugins/MCEReplacement/Docs/map_different.png trunk/plugins/MCEReplacement/Docs/mapping.png trunk/plugins/MCEReplacement/Docs/message.html trunk/plugins/MCEReplacement/Docs/message_command.png trunk/plugins/MCEReplacement/Docs/mouse.html trunk/plugins/MCEReplacement/Docs/mouse_mode.png trunk/plugins/MCEReplacement/Docs/multi.html trunk/plugins/MCEReplacement/Docs/multi_mapping.png trunk/plugins/MCEReplacement/Docs/new.html trunk/plugins/MCEReplacement/Docs/new_button.png trunk/plugins/MCEReplacement/Docs/new_multi_mapping.png trunk/plugins/MCEReplacement/Docs/notes.html trunk/plugins/MCEReplacement/Docs/pause_time.png trunk/plugins/MCEReplacement/Docs/pronto.html trunk/plugins/MCEReplacement/Docs/removal.html trunk/plugins/MCEReplacement/Docs/serial_command.png trunk/plugins/MCEReplacement/Docs/stb.html trunk/plugins/MCEReplacement/Docs/tray.html trunk/plugins/MCEReplacement/InputMapping/ trunk/plugins/MCEReplacement/InputMapping/MCE Replacement.xml trunk/plugins/MCEReplacement/MCE Replacement Plugin.nsi trunk/plugins/MCEReplacement/MessageMode/ trunk/plugins/MCEReplacement/MessageMode/MCE Replacement (original driver).hip trunk/plugins/MCEReplacement/MessageMode/MCE Replacement (replacement driver).hip trunk/plugins/MCEReplacement/MessageMode/MCE Replacement.gir Modified: trunk/plugins/IR Server Suite/IR Server Suite.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-11-27 15:53:02 UTC (rev 1092) +++ trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-11-27 16:00:51 UTC (rev 1093) @@ -18,12 +18,15 @@ ; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) InstallDirRegKey HKLM "Software\IR Server Suite" "Install_Dir" -; Show the installation steps to the user +; Show the installation/uninstallation steps to the user ShowInstDetails show +ShowUninstDetails show ; Set the compression method SetCompressor /SOLID /FINAL lzma +SetDateSave on + XPStyle on !include "x64.nsh" Added: trunk/plugins/MCEReplacement/AppData/DifferentRemote.xml =================================================================== --- trunk/plugins/MCEReplacement/AppData/DifferentRemote.xml (rev 0) +++ trunk/plugins/MCEReplacement/AppData/DifferentRemote.xml 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <section name="MCEReplacement"> + <entry name="NumPad0"> + </entry> + <entry name="NumPad1"> + </entry> + <entry name="NumPad2"> + </entry> + <entry name="NumPad3"> + </entry> + <entry name="NumPad4"> + </entry> + <entry name="NumPad5"> + </entry> + <entry name="NumPad6"> + </entry> + <entry name="NumPad7"> + </entry> + <entry name="NumPad8"> + </entry> + <entry name="NumPad9"> + </entry> + <entry name="Clear"> + </entry> + <entry name="Enter"> + </entry> + <entry name="Power2"> + </entry> + <entry name="Start"> + </entry> + <entry name="Mute"> + </entry> + <entry name="Info"> + </entry> + <entry name="VolumeUp"> + </entry> + <entry name="VolumeDown"> + </entry> + <entry name="ChannelUp"> + </entry> + <entry name="ChannelDown"> + </entry> + <entry name="Forward"> + </entry> + <entry name="Rewind"> + </entry> + <entry name="Play"> + </entry> + <entry name="Record"> + </entry> + <entry name="Pause"> + </entry> + <entry name="Stop"> + </entry> + <entry name="Skip"> + </entry> + <entry name="Replay"> + </entry> + <entry name="OemGate"> + </entry> + <entry name="Oem8"> + </entry> + <entry name="Up"> + </entry> + <entry name="Down"> + </entry> + <entry name="Left"> + </entry> + <entry name="Right"> + </entry> + <entry name="Ok"> + </entry> + <entry name="Back"> + </entry> + <entry name="DVDMenu"> + </entry> + <entry name="LiveTV"> + </entry> + <entry name="Guide"> + </entry> + <entry name="AspectRatio"> + </entry> + <entry name="MyTV"> + </entry> + <entry name="MyMusic"> + </entry> + <entry name="RecordedTV"> + </entry> + <entry name="MyPictures"> + </entry> + <entry name="MyVideos"> + </entry> + <entry name="Print"> + </entry> + <entry name="MyRadio"> + </entry> + <entry name="Teletext"> + </entry> + <entry name="Red"> + </entry> + <entry name="Green"> + </entry> + <entry name="Yellow"> + </entry> + <entry name="Blue"> + </entry> + <entry name="PowerTV"> + </entry> + <entry name="Messenger"> + </entry> + <entry name="Power1"> + </entry> + </section> +</profile> \ No newline at end of file Added: trunk/plugins/MCEReplacement/AppData/EventMapping.xml =================================================================== --- trunk/plugins/MCEReplacement/AppData/EventMapping.xml (rev 0) +++ trunk/plugins/MCEReplacement/AppData/EventMapping.xml 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<events /> \ No newline at end of file Added: trunk/plugins/MCEReplacement/AppData/MCERemote.xml =================================================================== --- trunk/plugins/MCEReplacement/AppData/MCERemote.xml (rev 0) +++ trunk/plugins/MCEReplacement/AppData/MCERemote.xml 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<profile> + <section name="MCEReplacement"> + <entry name="PowerTV">31642</entry> + <entry name="Blue">31649</entry> + <entry name="Yellow">31650</entry> + <entry name="Green">31651</entry> + <entry name="Red">31652</entry> + <entry name="Teletext">31653</entry> + <entry name="MyRadio">31663</entry> + <entry name="Print">31665</entry> + <entry name="MyVideos">31669</entry> + <entry name="MyPictures">31670</entry> + <entry name="RecordedTV">31671</entry> + <entry name="MyMusic">31672</entry> + <entry name="MyTV">31673</entry> + <entry name="AspectRatio">31704</entry> + <entry name="Guide">31705</entry> + <entry name="LiveTV">31706</entry> + <entry name="DVDMenu">31707</entry> + <entry name="Back">31708</entry> + <entry name="Ok">31709</entry> + <entry name="Right">31710</entry> + <entry name="Left">31711</entry> + <entry name="Down">31712</entry> + <entry name="Up">31713</entry> + <entry name="Oem8">31714</entry> + <entry name="OemGate">31715</entry> + <entry name="Replay">31716</entry> + <entry name="Skip">31717</entry> + <entry name="Stop">31718</entry> + <entry name="Pause">31719</entry> + <entry name="Record">31720</entry> + <entry name="Play">31721</entry> + <entry name="Rewind">31722</entry> + <entry name="Forward">31723</entry> + <entry name="ChannelDown">31724</entry> + <entry name="ChannelUp">31725</entry> + <entry name="VolumeDown">31726</entry> + <entry name="VolumeUp">31727</entry> + <entry name="Info">31728</entry> + <entry name="Mute">31729</entry> + <entry name="Start">31730</entry> + <entry name="Power1"> + </entry> + <entry name="Power2">31731</entry> + <entry name="Enter">31732</entry> + <entry name="Clear">31733</entry> + <entry name="NumPad9">31734</entry> + <entry name="NumPad8">31735</entry> + <entry name="NumPad7">31736</entry> + <entry name="NumPad6">31737</entry> + <entry name="NumPad5">31738</entry> + <entry name="NumPad4">31739</entry> + <entry name="NumPad3">31740</entry> + <entry name="NumPad2">31741</entry> + <entry name="NumPad1">31742</entry> + <entry name="NumPad0">31743</entry> + </section> +</profile> \ No newline at end of file Added: trunk/plugins/MCEReplacement/AppData/MultiMapping.xml =================================================================== --- trunk/plugins/MCEReplacement/AppData/MultiMapping.xml (rev 0) +++ trunk/plugins/MCEReplacement/AppData/MultiMapping.xml 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mappings> + <map name="MCE Replacement" /> +</mappings> \ No newline at end of file Added: trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhc =================================================================== --- trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhc (rev 0) +++ trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhc 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,79 @@ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<HTML> +<HEAD> +<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> +<!-- Sitemap 1.0 --> +</HEAD><BODY> +<OBJECT type="text/site properties"> + <param name="Window Styles" value="0x800025"> +<param name="Font" value="Arial,8,0"> +</OBJECT> +<UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="MCE Replacement Plugin"> + <param name="Local" value="index.html"> + </OBJECT> + <UL> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Introduction"> + <param name="Local" value="introduction.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Configuring the Plugin"> + <param name="Local" value="configure.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Installing the Replacement Driver (optional)"> + <param name="Local" value="install.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Replacement Driver removal instructions"> + <param name="Local" value="removal.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is Mouse Mode?"> + <param name="Local" value="mouse.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is Different Remote?"> + <param name="Local" value="different.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is Message Mode?"> + <param name="Local" value="message.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is Multi-Mapping?"> + <param name="Local" value="multi.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is Event Mapper?"> + <param name="Local" value="event.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What is MCE Replacement Tray?"> + <param name="Local" value="tray.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Using Philips Pronto CCF files"> + <param name="Local" value="pronto.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Known Set Top Boxes"> + <param name="Local" value="stb.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="What's new?"> + <param name="Local" value="new.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Known issues"> + <param name="Local" value="issues.html"> + </OBJECT> + <LI> <OBJECT type="text/sitemap"> + <param name="Name" value="Other notes"> + <param name="Local" value="notes.html"> + </OBJECT> + </UL> +</UL> +</BODY></HTML> Added: trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhp =================================================================== --- trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhp (rev 0) +++ trunk/plugins/MCEReplacement/Docs/MCE Replacement Plugin.hhp 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,34 @@ +[OPTIONS] +Auto Index=Yes +Compatibility=1.1 or later +Compiled file=MCE Replacement Plugin.chm +Contents file=MCE Replacement Plugin.hhc +Default Font=Arial,8,0 +Default topic=index.html +Display compile progress=No +Full-text search=Yes +Language=0xc09 English (Australia) +Title=MCE Replacement Plugin + + +[FILES] +configure.html +different.html +event.html +index.html +install.html +introduction.html +issues.html +message.html +multi.html +new.html +notes.html +pronto.html +removal.html +stb.html +tray.html +mouse.html +keystrokes.html + +[INFOTYPES] + Added: trunk/plugins/MCEReplacement/Docs/RemoteButton.txt =================================================================== --- trunk/plugins/MCEReplacement/Docs/RemoteButton.txt (rev 0) +++ trunk/plugins/MCEReplacement/Docs/RemoteButton.txt 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,55 @@ +NumPad0 = 0 +NumPad1 = 1 +NumPad2 = 2 +NumPad3 = 3 +NumPad4 = 4 +NumPad5 = 5 +NumPad6 = 6 +NumPad7 = 7 +NumPad8 = 8 +NumPad9 = 9 +Clear = 10 +Enter = 11 +Power2 = 12 +Start = 13 +Mute = 14 +Info = 15 +VolumeUp = 16 +VolumeDown = 17 +ChannelUp = 18 +ChannelDown = 19 +Forward = 20 +Rewind = 21 +Play = 22 +Record = 23 +Pause = 24 +Stop = 25 +Skip = 26 +Replay = 27 +OemGate = 28 +Oem8 = 29 +Up = 30 +Down = 31 +Left = 32 +Right = 33 +Ok = 34 +Back = 35 +DVDMenu = 36 +LiveTV = 37 +Guide = 38 +AspectRatio = 39 +MyTV = 70 +MyMusic = 71 +RecordedTV = 72 +MyPictures = 73 +MyVideos = 74 +Print = 78 +MyRadio = 80 +Teletext = 90 +Red = 91 +Green = 92 +Yellow = 93 +Blue = 94 +PowerTV = 101 +Messenger = 105 +Power1 = 165 \ No newline at end of file Added: trunk/plugins/MCEReplacement/Docs/configuration.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/configuration.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/configure.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/configure.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/configure.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,217 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>Configuring the Plugin</TITLE> +</HEAD> +<BODY> + +<H2>Configuring the Plugin<BR><HR COLOR="RED"></H2> + +<IMG SRC="configuration.png"><BR> +This is the plugin configuration window.<BR> + +<P><B>Common buttons:</B><BR> +These buttons are located at the bottom of the configuration window no matter what tab you are veiwing.<BR> +<UL> +<LI><B>Map MCE Buttons</B> - Click here to set up mappings for MCE remote button presses. More details below.</LI> +<LI><B>External Channels</B> - Click here to set up mappings for external channel changing. More details below.</LI> +<LI><B>Help</B> - Click here to load this help file.</LI> +<LI><B>OK</B> - Click here to accept any configuration changes and exit.</LI> +<LI><B>Cancel</B> - Click here to cancel any configuration changes and exit.</LI> +</UL> +</P> + +<P><B>Plugin Options:</B><BR> +These settings effect basic plugin operations.<BR> +<UL> +<LI><B>Extended logging</B> - Same as the native MCE remote support. With this enabled there is more detailed logging of the plugins actions inside your MediaPortal log files.</LI> +<LI><B>Require focus</B> - Tell the plugin if you want it to respond to MCE remote button presses only when MediaPortal has focus.</LI> +<LI><B>Tune external channels</B> - Tell the plugin if you want it to act on external channel change events. That is, if you'd like it to blast commands to your set top box.</LI> +<LI><B>Enable MCE remote</B> - Enables the handling of MCE remote control inputs.</LI> +<LI><B>Enable message mode</B> - Message mode let's you use HIP or Girder to pass on button presses that the plugin will map through it's input handler. More information on Message Mode is included in the section <A HREF="message.html">What Is Message Mode?</A></LI> +</UL> +</P> + +<P><B>Blaster Setup:</B><BR> +These settings effect how the MCE blasters operate.<BR> +<UL> +<LI><B>Manufacturer</B> - Set the manufacturer of the MCE remote transceiver unit.</LI> +<LI><B>Blaster port</B> - Set the blaster port on the MCE remote transceiver unit to send IR commands from.</LI> +<LI><B>Speed</B> - Set the blasting speed to either Fast, Medium, Slow or None. None does not specify a speed and relies on the units default. However, if you use a speed setting and then revert to None the IR unit will continue to use the last speed set until it's power is cycled (unplugged/re-plugged in, or the pc is rebooted).</LI> +</UL> +</P> + +<P><B>Time (in milliseconds):</B><BR> +These settings effect times and delays surrounding button presses and learning IR commands.<BR> +<UL> +<LI><B>Learn IR timeout</B> - This is how long you are given to learn an IR command before the receiver times out.</LI> +<LI><B>Button repeat delay</B> - This is how long from once you press a button on the MCE remote to when it will repeatLI +<LI><B>Button held delay</B> - When you press a button on the MCE remote and hold it down this is how long between subsequent repeats.</LI> +</UL> +</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="ir_commands.png"><BR> +<P>In this tab you can teach the plugin all the commands you want to be able to blast back to your equipment. Use NEW, EDIT, DELETE and TEST to learn, re-learn, remove and test IR commands. Double click an IR command to re-learn.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="macros.png"><BR> +<P>In this tab you can set up macros, which are lists of commands to execute. Macros include blasting IR commands, pausing, running external programs, popup messages, jumping to MediaPortal screens, sending serial port commands, simulating keystrokes, and sending window messages to other programs. You can also change the blaster port and blaster speed inside a macro, multiple times if you wish.</P> + +<P>You can map a macro to a button press on your MCE remote, or even as a channel "Select" command for external channel changing. Macros can also contain commands to run other programs. Macros are usefull when you need to blast multiple button presses to your equipment to get the desired results. Use NEW, EDIT, DELETE and TEST to create, modify, remove and test Macros. Double click a macro to edit.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="multi_mapping.png"><BR> +This tab is for setting up "Multi-Mapping".<BR> +<P><B>Mapping change button:</B><BR>This is the button on your remote that will cycle through the different remote button mappings.</P> +<P><B>Mappings:</B><BR>This is where you lay out the different button mappings you want to cycle through. Use the New, Remove, Up, Down, and Edit buttons to place your mappings in the list. The list will cycle through from top to bottom and back to the top when you press the Mapping set change button inside MediaPortal.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="event_mapper.png"><BR> +This tab is for setting up "Event Mapper".<BR> +<P><B>Event List:</B><BR>This list shows events and their associated command.</P> +<P><B>Event:</B><BR>Select an event you want to map and press "Add".</P> +<P><B>Parameter:</B><BR>You can as an option choose to match a message parameter for this event.</P> +<P><B>Value:</B><BR>The value of the parameter to match.</P> +<P><B>Command:</B><BR>After selecting an event in the "Event List" choose a command to map and click "Set".</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="map_different.png"><BR> +This tab is for mapping different remotes to act like an MCE remote.<BR> +<P><B>Button Mappings:</B><BR>This list shows you remote buttons that MediaPortal understands listed on the left and a number representing an IR code on the right.</P> +<P><B>Clear button:</B><BR>This button will clear the IR Code mapping for the currently selected MCE Button.</P> +<P><B>Clear All button:</B><BR>This button will clear all the IR Code mappings.</P> + +<P>To teach remote buttons to the plugin select a button from the "MCE Button" column of the Button Mappings list and then press the button on your remote while pointing it at the MCE receiver. Do this for each additional button you want to map.</P> + +<P>While there is no MCE button selected in the list you can press a button on a remote to test if the plugin will recognise your remote.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="mouse_mode.png"><BR> +This tab is for setting up mouse mode.<BR> +<P><B>Mouse mode toggle button:</B><BR>This is the button on your remote that will toggle Mouse Mode on and off.</P> +<P><B>Mouse step distance:</B><BR>This is the distance the mouse will move for each press of a remote button.</P> + +<P>For more information on Mouse Mode refer to "<A HREF="mouse.html">What is Mouse Mode?</A>"</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="mapping.png"><BR> +This window is for mapping button presses to commands, IR blasting, and macros. It is almost identical to the normal input mapping window used by the MCE remote support that is built in to MediaPortal. The only differences are as follows:<BR> +<P><B>Replacement Driver Buttons:</B><BR>This section in the tree view on the left side of the window has all the new buttons that this plugin enables mapping for if you have installed the replacement MCE remote driver.</P> +<P><B>Action - Blast IR:</B><BR>There is a new action possibility when mapping a button (Blast IR). When the Blast IR radio button is selected you can choose from a drop down list of IR commands you have already taught the plugin as well as any Macros you have defined.</P> +<P><B>Remove Replacement Driver Mappings:</B><BR>Clicking this button will remove any button mappings that are associated with the replacement driver. If you did not install the replacement driver then you will need to remove the default button mappings for it otherwise you will likely experience unexpected double-presses for those buttons.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="learn_ir.png"><BR> +When you create a new IR or re-learn an IR command from the plugin configuration window this window will appear.<BR> +<UL> +<LI>If you're teaching a new IR command, then you will need to specify a name. This name will be used to create a file, so make sure the name supplied doesn't break any of the windows file name conventions. That is, don't use / ? < > \ : * | "</LI> +<LI>Click "Learn" to teach the plugin your IR command. After clicking "Learn" you point your remote at the MCE transceiver and press the button to learn. Follow all the usual procedures for teaching IR commands. That is, avoid direct sunlight on the receiver, stay away from plasma tv's, and turn off any fluerescent lights. All these things can interfere with the InfraRed signals. Place your remote within a couple of centimeters (within an inch) of the receiver to ensure good reception of the signal.</LI> +</UL> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="external_channel.png"><BR> +This window will appear when you click "External Channels"<BR> +<P><B>TV Card Buttons:</B><BR>You can setup each TV card with a different set top box.</P> +<P><B>Quick Setup:</B><BR>Select your set top box from the list of know boxes and click "Set" to get configured quickly. Or select "Clear all" to reset all commands. Please note that all set top box configurations in Quick Setup are untested. If you find an error, please report it. If you have a set top box that is not on the list please send me the details and IR files for inclusion in the next release.</P> +<P><B>Commands:</B><BR>Select the external command you want to map in the list, then the IR command or Macro you want to map to it from the combo box. Then click "Set". You can also map an external program, serial port command, simulated keystrokes or window messages by selecting them in the list and clicking "Set".</P> +<P><B>Options:</B><BR> +<UL> +<LI>Wait between digits - Select this to put a pause between each digit IR blasting. (Recommended)</LI> +<LI>Wait x milliseconds - This is how long to wait between each digit IR blasting. There are 1000 milliseconds in a second. (default: 500 = one half of a second)</LI> +<LI>Use pre-change command - This option will execute a command before it starts the channel change, this can be used to get your STB out of a menu it might be in, or back to a selection menu if that is needed.</LI> +<LI>Send select command - Select this if your set top box requires a "select" (enter, ok, etc...) button to be pressed after keying in channel numbers, you can also use this to execute a program that requires the whole channel number as a command line paramater.</LI> +<LI>Send select twice - If you have chosen to send a "select" code, this can be used to make it send twice (this is a precaution to ensure the set top box received the command, some set top boxes are more sensitive than others)</LI> +<LI>Ch. Digits - Use this to pad out the channel number with leading 0's. "Simple" leaves the number unchanged, other options will add zero's to the start of the channel number to make up the number of digits.</LI> +<LI>Blaster port - This is the MCE remote transceiver blaster port you wish to control your set top box from. This setting is seperate from the blaster port setting on the main plugin configuration window.</LI> +<LI>Repeat count - Use this to repeat channel change commands as many times as you'd like to decrease the chances of the set top box failing to recognise the blasted commands. 0 = no repeats, it only gets sent once. 1 = 1 repeat, that is a total of two times. etc ...</LI> +<LI>Repeat delay - This is the time to wait between repeating the channel change commands.</LI> +</UL> +</P> +<P><B>Test:</B><BR>Select a channel number and click "Test" to check the setup.</P> +<P><B>Copy from:</B><BR>This lets you copy the configuration for one TV card/STB to another (SVN users only).</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="macro_editor.png"><BR> +This window is for setting up and modifying Macros.<BR> +<P><B>Name:</B><BR>Just as the case is with IR commands, Macros must have a name that conforms to windows file name conventions.</P> +<P><B>Macro:</B><BR>In this group of controls you lay out the order of commands in the macro. The macro is executed from top to bottom. Click Up / Down to move a command within the list. Click Remove to take a command out of the list.</P> +<P><B>Commands:</B><BR>This is a list of available commands, including learned IR commands, "Pause", "Run Program" and "Go To Screen". Either select an IR command you wish to add to the Macro, "Pause" to add a time delay, "Run Program" to setup launching an external program, "Go To Screen" to jump to another window module within MediaPortal, or "Popup Message" to display a popup text message to the user in MediaPortal. Click "Add" to add the selected command to the macro.</P> +<P>You can click Test at any time to test your macro so far. When you are done click OK.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="external_program.png"><BR> +This window is for setting up the "Run" command to launch applications.<BR> +<P><B>Program:</B><BR>Type in the file path to the application you want to run, or select the executable by clicking the "..." button.</P> +<P><B>Start in folder:</B><BR>This is the folder the program will be launched from, this will affect software that then tries to access other files through the use of relative paths. By default, when you select the program executable the plugin will automatically fill in the start folder and you should only need to change this in special circumstances. You will know when.</P> +<P><B>Parameters:</B><BR>Type in any command line parameters you wish to pass to the application. You will need to put in special command line parameters if you are using this program for channel changing on a set top box. If you have set up the program from the External Channel Changing dialog you will see a "?" button to the right of the parameters field. Clicking this button will show a list of special parameters for external channel changing, they are:<BR> +<UL> +<LI>%1 = Current channel number digit (-1 for Select/Pre-Change)</LI> +<LI>%2 = Full channel number string</LI> +<LI>%3 = Blaster port (0 = Both, 1 = Port 1, 2 = Port 2)</LI> +</UL> +</P> +<P><B>Window Style:</B><BR>Choose how the external program should appear, this can be either in a normal window, maximised window, minimised window or hidden.</P> +<P><B>No Window:</B><BR>Set this option to stop the program from creating a window when run.</P> +<P><B>Start using ShellExecute:</B><BR>This option determines if the program should be launched by the "ShellExecute" command. ShellExecute lets you specify non-executable file types, like .txt or .html, or even shell recognised commands like web addresses or "mailto:" commands. These types of commands are then executed using the program that is associated to them. For example, specifying a .html file as the program will launch your default web browser and load that file.</P> +<P><B>Wait for exit:</B><BR>This will make MediaPortal wait until the program has finished before moving on.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="serial_command.png"><BR> +This is the Serial Command configuration window.<BR> +<P><B>Command</B><BR>Enter the command text here, using escape codes for special characters as follows:<BR> +<UL> +<LI>\a = Alert (ascii 7)</LI> +<LI>\b = Backspace (ascii 8)</LI> +<LI>\f = Form Feed (ascii 12)</LI> +<LI>\n = Line Feed (ascii 10)</LI> +<LI>\r = Carriage Return (ascii 13)</LI> +<LI>\t = Tab (ascii 9)</LI> +<LI>\v = Vertical Tab (ascii 11)</LI> +<LI>\x = Hex Value (\x0Fh = ascii char 15, \x8h = ascii char 8)</LI> +<LI>\0 = Null (ascii 0)</LI> +</UL> +You can use normal text inside the command, and if it is for an external channel change there are additional parameters that can be discovered by clicking the "?" button. The above escape codes let you put in special characters that can't be typed. For example, if your STB (or whatever you're connecting) needs the ascii code for escape you would use \x1Bh where 1B (27 decimal) is hex for the ascii code for the escape button.</P> +<P><B>Com port</B><BR>Choose the COM port to use.</P> +<P><B>Baud rate</B><BR>Choose the baud rate to use.</P> +<P><B>Parity</B><BR>Choose the parity to use.</P> +<P><B>Data bits</B><BR>Choose the data bits setting to use.</P> +<P><B>Stop bits</B><BR>Choose the stop bits setting to use.</P> +<P><B>Test</B><BR>Click Test to try your serial command out.</P> + +<P>Click OK to save your Serial Command and return, or Cancel to discard your changes and return.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="message_command.png"><BR> +This window is for setting up and modifying Windows Message commands.<BR> +<P><B>Application:</B><BR>Set this to the full path of the application you want to send Window Messages to. Click the "..." button to locate the application with an "Open File Dialog".</P> +<P><B>Send to active window:</B><BR>With this option selected the Application will be ignored and the Window Message will be sent to the active (foreground) window.</P> +<P><B>Message:</B><BR>Set the message value here, right-click for common options.</P> +<P><B>Word Param:</B><BR>Set the WParam value here.</P> +<P><B>Long Param:</B><BR>Set the LParam value here.</P> + +<P>Click OK to save your Message Command and return, or Cancel to discard your changes and return.</P> + +<HR COLOR="GREEN" SIZE="1"> + +<IMG SRC="keystrokes.png"><BR> +This window is for setting up and modifying Keystroke commands.<BR> +<P>Simply enter the keystroke combinations you'd like to send in the large text box. Click OK to save your Keystroke Command and return, or Cancel to discard your changes and return.</P> + +<P>For more information on simulating special keystrokes, such as ALT, CTRL, Backspace, etc ... <A HREF="keystrokes.html">click here</A></P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/different.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/different.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/different.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,15 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>What is Different Remote?</TITLE> +</HEAD> +<BODY> + +<H2>What is Different Remote?<BR><HR COLOR="RED"></H2> + +<P>The Different Remote feature lets you map a compatible (RC6) remote to act as a surrogate MCE remote, this could be the remote that came with your TV tuner card, a universal or learning remote, or even some spare buttons on a multifunction remote. If the remote uses the RC6 protocol then it should work.</P> + +<P>You assign buttons on your "Different Remote" to simulate a button press on an MCE remote. The mapping that button has on the MCE remote is then executed whenever you press that button on the "Different Remote".</P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/event.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/event.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/event.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,36 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>What is Event Mapper?</TITLE> +</HEAD> +<BODY> + +<H2>What is Event Mapper?<BR><HR COLOR="RED"></H2> + +<P>Event Mapper lets you assign any command the plugin has to events that MediaPortal either generates or listens for. For example, with this feature you can send a command to turn on your tv and set the right input source every time your HTPC comes out of a suspended state. Or you could just use it to make MediaPortal move into the TV module when it starts. There are many possibilities.</P> + +<P><B>Tutorial: Using event mapper to catch MediaPortal on-screen buttons</B><BR> +With the event mapper you can now match a parameter of a GUI Message and only execute the mapping if the message type and parameter match. One of the many things this lets us do is create new buttons in a skin and then have them blast ir codes. Here's a quick example:</P> + +<IMG SRC="new_button.png"><BR> + +<P>Place this code in your skins "myvideos.xml" to add a new button:<BR> +<control><br> +<description>Blast IR</description><br> +<type>button</type><br> +<id>818181</id><br> +<label>818181</label><br> +</control> +</P> + +<P>Place this code in your "strings.xml" to add the label for the button:<BR> +<string><br> +<id>818181</id><br> +<value>Blast IR</value><br> +</string> +</P> + +<P>Now, set up the event mapper to watch for "Clicked" events and match the "Sender Control ID" parameter to "818181". With this in place you will now have a fully programmable button in your skin. It can blast IR, send serial commands, launch external apps, etc ...</P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/event_mapper.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/event_mapper.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/external_channel.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/external_channel.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/external_program.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/external_program.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/ffdshow_control.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/ffdshow_control.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/goto_screen.PNG =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/goto_screen.PNG ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/index.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/index.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/index.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,30 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>MCE Replacement Plugin - v1.0.3.1</TITLE> +</HEAD> +<BODY> +<H1>MCE Replacement Plugin v1.0.3.1<BR><HR COLOR="BLUE"></H1> +A MediaPortal 0.2.2.0 plugin by and-81<BR> + +<H2>Contents<BR><HR COLOR="RED"></H2> +<OL> +<LI><A HREF="introduction.html">Introduction</A></LI> +<LI><A HREF="configure.html">Configuring the Plugin</A></LI> +<LI><A HREF="install.html">Installing the Replacement Driver (optional)</A></LI> +<LI><A HREF="removal.html">Replacement Driver removal instructions</A></LI> +<LI><A HREF="mouse.html">What is Mouse Mode?</A></LI> +<LI><A HREF="different.html">What is Different Remote?</A></LI> +<LI><A HREF="message.html">What is Message Mode?</A></LI> +<LI><A HREF="multi.html">What is Multi-Mapping?</A></LI> +<LI><A HREF="event.html">What is Event Mapper?</A></LI> +<LI><A HREF="tray.html">What is MCE Replacement Tray?</A></LI> +<LI><A HREF="pronto.html">Using Philips Pronto CCF files</A></LI> +<LI><A HREF="stb.html">Known Set Top Boxes</A></LI> +<LI><A HREF="new.html">What's new?</A></LI> +<LI><A HREF="issues.html">Known issues</A></LI> +<LI><A HREF="notes.html">Other notes</A></LI> +</OL> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/install.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/install.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/install.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,23 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>Installing the Replacement Driver (optional)</TITLE> +</HEAD> +<BODY> + +<H2>Installing the Replacement Driver (optional)<BR><HR COLOR="RED"></H2> +<P>The plugin will work with or without the replacement driver. With the replacement driver you get full control over the mapping of buttons. Without the replacement driver you'll get the default system mappings (same as MediaPortal's native MCE support) and you'll need to remove the new replacement driver mappings in the plugin configuration.</P> +<P>Either way, blasting and external channel tuning should work.</P> +<OL> +<LI>Open the windows Control Panel, go to System, and select "Device Manager" from the "Hardware" tab.</LI> +<LI>Under "Universal Serial Bus Controllers" find "eHome Infrared Receiver", right click it and select "Update Driver"</LI> +<LI>When prompted to use Windows Update select "No, not this time"</LI> +<LI>Choose "Install from a list or specific location"</LI> +<LI>Choose "Don't search. I will choose the driver to install"</LI> +<LI>Select "Have Disk" and locate the driver folder (eg. "C:\Program Files\MCE Replacement Driver\")</LI> +<LI>Select the "MCE Infrared Remote Control"</LI> +<LI>From here you may be required to accept the unsigned driver, but apart from that it's all very straight forward.</LI> +</OL> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/introduction.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/introduction.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/introduction.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,31 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>Introduction</TITLE> +</HEAD> +<BODY> + +<H2>Introduction<BR><HR COLOR="RED"></H2> +<P>This plugin serves as a replacement for MediaPortal's built in support for the MCE remote. The reason for developing this plugin was to support a replacement driver for the MCE remote and to add complex IR blasting capabilities to MediaPortal. From those humble beginings the plugin has grown to do a lot more than that.</P> +<P>MCE Replacement Plugin adds support for the replacement MCE remote driver created by Bruno Fleurette (BurningZeRoad). The replacement driver allows you to map all the buttons on the MCE remote. However, you don't need to install the replacement driver to use this plugin.</P> +<P>With the replacement driver the plugin gives you the ability to re-map all the MCE remote buttons, but even without the replacement driver you can assign complex IR blasting sequences to buttons on the MCE remote and give MediaPortal the ability to control your set top box to tune external channels.</P> +<P>It's also able to receive remote control commands while MediaPortal is out of focus or even minimized. And you can map any programmable universal remote (and some other remotes) to function as if it is the MCE remote.</P> +<P>So even without the replacement driver it offers improvements over the native MCE remote handling.</P> +<P>So what exactly can this plugin do? +<UL> +<LI>Set complex IR blasting commands to any button on the MCE remote, and the mapping can be context sensitive, this means you can control your surround sound while watching a DVD with the same remote buttons that control your TV set when watching TV.</LI> +<LI>You can re-map buttons that until now have had a fixed function, like the arrows, the PC Power and others.</LI> +<LI>Control your set top box (or boxes) to tune external channels. Use either Infra-Red blasting, external programs, or Serial Port comms. And if your set top box is on the list you can set it up automatically without having to teach the plugin any of your set top box codes.</LI> +<LI>Minimize MediaPortal and still control it, handy for listening to music.</LI> +<LI>Control the mouse across your whole computer with "Mouse Mode".</LI> +<LI>"Different Remote" lets you configure a different (compatible) remote to function as an MCE remote. This means you can configure a programmable universal remote (or even just some spare buttons on another compatible remote) to act as if it was the MCE remote.</LI> +<LI>Map a button on your remote to launch an external program.</LI> +<LI>Send Windows Messages to other running programs.</LI> +<LI>Send simulated Keystrokes.</LI> +<LI>"Message Mode" lets you use HIP or Girder to send commands to MediaPortal, the plugin will make MediaPortal think it was receiving the actual remote button presses itself. This means you can get the same level of control over MediaPortal as you would if you were using the native MCE remote support while still being able to use HIP or Girder for all your other remote control needs.</LI> +<LI>"Multi-Mapping" lets you cycle through multiple sets of button mappings, effectively giving you an unlimitted number of buttons on your remote.</LI> +<LI>"Event Mapper" can assign an IR code or macro to a MediaPortal event. For example, you could have have it turn on your tv and enter the tv module when it starts or resumes from standby and turn it off again when it shuts down or goes into standby. You can even create new buttons in a skin and map them to any of the functions this plugin provides.</LI> +</UL></P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/ir_commands.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/ir_commands.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/issues.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/issues.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/issues.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,23 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>Known issues</TITLE> +</HEAD> +<BODY> + +<H2>Known issues<BR><HR COLOR="RED"></H2> + +<P>Some MCE Transceivers will only work with Blaster Port 2, if you're having problems then check. UPDATE! If you are experiencing this problem then please try changing your Blaster Manufacturer setting to SMK.</P> + +<P>When you try to learn a new IR command it will sometimes come back with "Learned IR" even though you haven't pressed a button yet. This is sometimes caused by environmental interferance, for example, overhead lighting and plasma screens can confuse the IR learning process. Use the test button to make sure codes have been learned correctly.</P> + +<P>When using the replacement driver the remote will not bring the computer out of S4 Hibernate. It will bring the computer out of S3 Standby though.</P> + +<P>Not all remotes can be used as a "different" MCE remote. This can be easily tested by entering the "Map Different Remote" configuration screen and pressing buttons on the remote you want to use as a "different remote". If the MCE receiver recognises the button presses you will see "Received: xxxx" in the text box at the bottom of the window where xxxx is a number representing the button pressed. It is my understanding that only remotes that conform to the RC6 protocol can be used as compatible remotes.</P> + +<P>The MceIrApi developed by Bruno Fleurette does not allow multiple instances of the MceIr.dll to access the driver at the same time. This means that two plugins (or programs) cannot share the MceIrApi's connection to the driver. For example, If you run my TV Server plugin (TV3 MCE Blaster) on the same PC that is running the MediaPortal client with this plugin the two will conflict with each other. I'm working on a number of ways to overcome this problem but it seems it is a limitiation of the driver (not Bruno's code). Update: I have a working solution that also allows the sharing of one MCE remote transceiver over a LAN. I'm still testing and improving it, but I'll release something in the next month or so for testing by the community.</P> + +<P>Mouse Mode only works on the Primary screen. I'm looking at ways to improve this so it supports moving the mouse across all monitors and should have a solution soon.</P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/keystrokes.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/keystrokes.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/keystrokes.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,74 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>Simulating Keystrokes</TITLE> +</HEAD> +<BODY> + +<H2>Simulating Keystrokes<BR><HR COLOR="RED"></H2> + +<P>To specify characters that aren't displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes in the following table.</P> + +<TABLE BORDER="0"> +<TR><TD><B>Key</B></TD><TD><B>Code</B></TD></TR> +<TR><TD>BACKSPACE</TD><TD>{BACKSPACE}, {BS}, or {BKSP}</TD></TR> +<TR><TD>BREAK</TD><TD>{BREAK}</TD></TR> +<TR><TD>CAPS LOCK</TD><TD>{CAPSLOCK}</TD></TR> +<TR><TD>DEL or DELETE</TD><TD>{DELETE} or {DEL}</TD></TR> +<TR><TD>DOWN ARROW</TD><TD>{DOWN}</TD></TR> +<TR><TD>END</TD><TD>{END}</TD></TR> +<TR><TD>ENTER</TD><TD>{ENTER} or ~</TD></TR> +<TR><TD>ESC</TD><TD>{ESC}</TD></TR> +<TR><TD>HELP</TD><TD>{HELP}</TD></TR> +<TR><TD>HOME</TD><TD>{HOME}</TD></TR> +<TR><TD>INS or INSERT</TD><TD>{INSERT} or {INS}</TD></TR> +<TR><TD>LEFT ARROW</TD><TD>{LEFT}</TD></TR> +<TR><TD>NUM LOCK</TD><TD>{NUMLOCK}</TD></TR> +<TR><TD>PAGE DOWN</TD><TD>{PGDN}</TD></TR> +<TR><TD>PAGE UP</TD><TD>{PGUP}</TD></TR> +<TR><TD>PRINT SCREEN</TD><TD>{PRTSC} (reserved for future use)</TD></TR> +<TR><TD>RIGHT ARROW</TD><TD>{RIGHT}</TD></TR> +<TR><TD>SCROLL LOCK</TD><TD>{SCROLLLOCK}</TD></TR> +<TR><TD>TAB</TD><TD>{TAB}</TD></TR> +<TR><TD>UP ARROW</TD><TD>{UP}</TD></TR> +<TR><TD>F1</TD><TD>{F1}</TD></TR> +<TR><TD>F2</TD><TD>{F2}</TD></TR> +<TR><TD>F3</TD><TD>{F3}</TD></TR> +<TR><TD>F4</TD><TD>{F4}</TD></TR> +<TR><TD>F5</TD><TD>{F5}</TD></TR> +<TR><TD>F6</TD><TD>{F6}</TD></TR> +<TR><TD>F7</TD><TD>{F7}</TD></TR> +<TR><TD>F8</TD><TD>{F8}</TD></TR> +<TR><TD>F9</TD><TD>{F9}</TD></TR> +<TR><TD>F10</TD><TD>{F10}</TD></TR> +<TR><TD>F11</TD><TD>{F11}</TD></TR> +<TR><TD>F12</TD><TD>{F12}</TD></TR> +<TR><TD>F13</TD><TD>{F13}</TD></TR> +<TR><TD>F14</TD><TD>{F14}</TD></TR> +<TR><TD>F15</TD><TD>{F15}</TD></TR> +<TR><TD>F16</TD><TD>{F16}</TD></TR> +<TR><TD>Keypad add</TD><TD>{ADD}</TD></TR> +<TR><TD>Keypad subtract</TD><TD>{SUBTRACT}</TD></TR> +<TR><TD>Keypad multiply</TD><TD>{MULTIPLY}</TD></TR> +<TR><TD>Keypad divide</TD><TD>{DIVIDE}</TD></TR> +</TABLE> + +<P>To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes.</P> + +<TABLE BORDER="0"> +<TR><TD><B>Key</B></TD><TD><B>Code</B></TD></TR> +<TR><TD>SHIFT</TD><TD>+</TD></TR> +<TR><TD>CTRL</TD><TD>^</TD></TR> +<TR><TD>ALT</TD><TD>%</TD></TR> +</TABLE> + +<P>To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down SHIFT while E and C are pressed, use "+(EC)". To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use "+EC".</P> + +<P>To specify repeating keys, use the form {key number}. You must put a space between key and number. For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10 times.</P> + +<P>The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses () have special meanings. To specify one of these characters, enclose it within braces ({}). For example, to specify the plus sign, use "{+}". To specify brace characters, use "{{}" and "{}}". Brackets ([ ]) have no special meaning, but you must enclose them in braces also.</P> + +<P>The information in this document was taken from <A HREF="http://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx">http://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx</A></P> + +</BODY> +</HTML> \ No newline at end of file Added: trunk/plugins/MCEReplacement/Docs/keystrokes.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/keystrokes.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/learn_ir.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/learn_ir.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/macro_editor.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/macro_editor.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/macros.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/macros.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/map_different.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/map_different.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/mapping.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/mapping.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/message.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/message.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/message.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,35 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>What is Message Mode?</TITLE> +</HEAD> +<BODY> + +<H2>What is Message Mode?<BR><HR COLOR="RED"></H2> + +<P>Message mode lets HIP and Girder users get the same level of control in MediaPortal that people using native remote control support have always enjoyed. Most people continue to use HIP/Girder because they have other programs on thier PC they want to control with a remote, in the past they have had to map remote buttons to key presses in MediaPortal. But with Message Mode you can now post messages to the plugin so that MediaPortal thinks it's receiving button presses straight from the remote itself. This means you get the context sensitive mapping that MediaPortal allows as well as all the extra functions this plugin provides.</P> + +<P>By using HIP or Girder you can now map ANY remote or alternate input method that is recognised by either of those programs to appear to MediaPortal as if it was an MCE remote. Through this plugin you can continue to control other applications on your PC, but with the added bonus of getting native style remote support inside MediaPortal.</P> + +<P>There are configuration files for HIP and Girder included (in "C:\Documents and Settings\All Users\Application Data\MediaPortal MCE Replacement Plugin\" or the equivalent folder on your PC) that will get you started.</P> + +<P><B>So how does it work?</B><BR> +Simple, HIP or Girder recieve a button press and then posts a message to MediaPortal in the following format:<BR> +Message: 32768 Decimal or 8000 Hex (this is the WM_APP value)<BR> +WParam: 24 Decimal or 18 Hex (24 is my lucky number, there's no other reason)<BR> +LParam: xxx (Where xxx is the RemoteButton enumeration value of the equivalent MCE remote button, see below for more details)<BR> +<BR> +The plugin listens for messages that meet the Message and WParam values, it then passes the LParam straight into its input handler which processes the input just like a nativly supported MCE remote button press.<BR> +<BR> +Told you it was simple!</P> + +<P><B>Notes</B> +<UL> +<LI>When in Message Mode the plugin no longer listens for MCE remote or "different remote" buttons, it only responds to posted messages. This is so it will not interfere with HIP or Girder.</LI> +<LI>Values for the LParam of posted messages can be found in the included <A HREF="RemoteButton.txt">RemoteButton.txt</A> file.</LI> +<LI>There is no MCE remote button attributed to three values in the supplied HIP configuration file, they are: AspectRatio, Messenger, and Power1. I don't know the MCE remote code for these buttons so I haven't included them. When I know I will update the configuration file, until then you can set them yourself.</LI> +<LI>If this is the only part of the plugin that interests you then you should just download and use my Message Plugin. Find it <A HREF="http://www.team-mediaportal.com/files/Download/Plugins/Input/MessagePlugin/">here</A>.</LI> +</UL></P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/message_command.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/message_command.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/MCEReplacement/Docs/mouse.html =================================================================== --- trunk/plugins/MCEReplacement/Docs/mouse.html (rev 0) +++ trunk/plugins/MCEReplacement/Docs/mouse.html 2007-11-27 16:00:51 UTC (rev 1093) @@ -0,0 +1,26 @@ +<HTML> +<HEAD> + <META NAME="author" CONTENT="and-81"> + <TITLE>What is Mouse Mode?</TITLE> +</HEAD> +<BODY> + +<H2>What is Mouse Mode?<BR><HR COLOR="RED"></H2> + +<P>Mouse Mode feature lets you use your remote control to move and click with your mouse. Not only does this let you control MediaPortal with the mouse, but it also lets you control other windows applications with the mouse while MediaPortal is running. This means you now have full mouse control from your remote control.</P> + +<P>With Mouse Mode enabled you set up a remote button to toggle the function on and off. While mouse mode is on all other remote functions are ignored. Mouse Mode is really only usable in conjunction with the replacement driver. It is highly recommended that you use the replacement driver.</P> + +<P>With Mouse Mode activated the remote control has the following functions:<BR> +<UL> +<LI>Up, Down, Left and Right buttons control mouse movement in user-defined steps. Holding a direction button down will apply acceleration to the mouse's movement.</LI> +<LI>Replay, Play, and Skip buttons simulate a left, middle, or right mouse button clicks respectively.</LI> +<LI>OK button simulates a left mouse button double-click.</LI> +<LI>Back, Stop, and More buttons simulate holding down a left, middle, or right mouse button respectively until the button is pressed again to release the mouse button.</LI> +<LI>Channel Up/Down simulates the mouse scroll wheel.</LI> +<LI>All other buttons are passed through to the normal input handling routines, including different remote and multi-mapping handling.</LI> +</UL> +</P> + +</BODY> +</HTML> Added: trunk/plugins/MCEReplacement/Docs/mouse_mode.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MCEReplacement/Docs/mouse_mode.png ___________________________________________________________________ ... [truncated message content] |
From: <an...@us...> - 2007-11-27 16:13:03
|
Revision: 1094 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1094&view=rev Author: and-81 Date: 2007-11-27 08:12:49 -0800 (Tue, 27 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Suite.nsi trunk/plugins/MCEReplacement/MCE Replacement Plugin.nsi Modified: trunk/plugins/IR Server Suite/IR Server Suite.nsi =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-11-27 16:00:51 UTC (rev 1093) +++ trunk/plugins/IR Server Suite/IR Server Suite.nsi 2007-11-27 16:12:49 UTC (rev 1094) @@ -25,10 +25,6 @@ ; Set the compression method SetCompressor /SOLID /FINAL lzma -SetDateSave on - -XPStyle on - !include "x64.nsh" ;-------------------------------- @@ -82,7 +78,7 @@ CreateDirectory "$APPDATA\IR Server Suite\Set Top Boxes" SetOutPath "$APPDATA\IR Server Suite\Set Top Boxes" SetOverwrite ifnewer - File /r "Set Top Boxes\*.*" + File /r /x .svn "Set Top Boxes\*.*" ; Set output path to install dir SetOutPath "$INSTDIR" @@ -183,7 +179,7 @@ CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin" SetOutPath "$APPDATA\IR Server Suite\MP Control Plugin" SetOverwrite ifnewer - File /r "MediaPortal Plugins\MP Control Plugin\AppData\*.*" + File /r /x .svn "MediaPortal Plugins\MP Control Plugin\AppData\*.*" ; Create Macro folder CreateDirectory "$APPDATA\IR Server Suite\MP Control Plugin\Macro" @@ -216,11 +212,11 @@ ; Write skin files SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo" SetOverwrite on - File /r "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" SetOutPath "$PROGRAMFILES\Team MediaPortal\MediaPortal\Skin\BlueTwo wide" SetOverwrite on - File /r "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" + File /r /x .svn "MediaPortal Plugins\MP Blast Zone Plugin\Skin\*.*" ; Create Macro folder CreateDirectory "$APPDATA\IR Server Suite\MP Blast Zone Plugin\Macro" Modified: trunk/plugins/MCEReplacement/MCE Replacement Plugin.nsi =================================================================== --- trunk/plugins/MCEReplacement/MCE Replacement Plugin.nsi 2007-11-27 16:00:51 UTC (rev 1093) +++ trunk/plugins/MCEReplacement/MCE Replacement Plugin.nsi 2007-11-27 16:12:49 UTC (rev 1094) @@ -18,8 +18,9 @@ ; Registry key to check for directory (so if you install again, it will overwrite the old one automatically) InstallDirRegKey HKLM "Software\MediaPortal MCE Replacement Plugin" "Install_Dir" -; Show the installation steps to the user +; Show the installation/uninstallation steps to the user ShowInstDetails show +ShowUninstDetails show ; Set the compression method SetCompressor /SOLID /FINAL lzma @@ -67,7 +68,7 @@ CreateDirectory "$APPDATA\MediaPortal MCE Replacement Plugin\STB" SetOutPath "$APPDATA\MediaPortal MCE Replacement Plugin\STB" SetOverwrite on - File /r "..\IR Server Suite\Set Top Boxes\*.*" + File /r /x .svn "..\IR Server Suite\Set Top Boxes\*.*" ; Write the installation path into the registry WriteRegStr HKLM "Software\MediaPortal MCE Replacement Plugin" "Install_Dir" "$INSTDIR" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <an...@us...> - 2007-11-28 15:06:32
|
Revision: 1097 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1097&view=rev Author: and-81 Date: 2007-11-28 07:06:23 -0800 (Wed, 28 Nov 2007) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj trunk/plugins/IR Server Suite/Applications/IR File Tool/Properties/AssemblyInfo.cs trunk/plugins/IR Server Suite/Applications/IR Server/IR Server.csproj trunk/plugins/IR Server Suite/Applications/SageSetup/Sage Setup.csproj trunk/plugins/IR Server Suite/Applications/Translator/Translator.csproj trunk/plugins/IR Server Suite/Applications/Tray Launcher/Tray Launcher.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote/Virtual Remote.csproj trunk/plugins/IR Server Suite/Applications/Virtual Remote Skin Editor/Virtual Remote Skin Editor.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Custom HID Receiver/Custom HID Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/FusionRemote Receiver/FusionREMOTE Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRMan Receiver/IRMan Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IRTrans Transceiver/IRTrans Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/IgorPlug Receiver/IgorPlug Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Microsoft MCE Transceiver/Microsoft MCE Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Serial IR Blaster/Serial IR Blaster.csproj trunk/plugins/IR Server Suite/IR Server Plugins/USB-UIRT Transceiver/USB-UIRT Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/WinLirc Transceiver/WinLirc Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/Windows Message Receiver/Windows Message Receiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/X10 Transceiver/X10 Transceiver.csproj trunk/plugins/IR Server Suite/IR Server Plugins/XBCDRC Receiver/XBCDRC Receiver.csproj trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Input Service.csproj trunk/plugins/IR Server Suite/Input Service/Input Service Configuration/Configuration.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Blast Zone Plugin/MP Blast Zone Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/MP Control Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV2 Blaster Plugin/TV2 Blaster Plugin.csproj trunk/plugins/IR Server Suite/MediaPortal Plugins/TV3 Blaster Plugin/TV3 Blaster Plugin.csproj trunk/plugins/MCEReplacement/MCEReplacement.csproj Added Paths: ----------- trunk/plugins/IR Server Suite/Applications/IR File Tool/IrCode.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/MceDetectionData.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/Pronto.cs trunk/plugins/IR Server Suite/Applications/IR File Tool/RemoteDetectionData.cs Modified: trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/Debug Client/Debug Client.csproj 2007-11-28 15:06:23 UTC (rev 1097) @@ -98,6 +98,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>copy "*.*" "\MediaPortal Development\Plugin Releases\IR Server Suite\$(ProjectName)\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR Blast/IR Blast.csproj 2007-11-28 15:06:23 UTC (rev 1097) @@ -83,6 +83,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>copy "*.*" "\MediaPortal Development\Plugin Releases\IR Server Suite\$(ProjectName)\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR Blast (No Window)/IR Blast (No Window).csproj 2007-11-28 15:06:23 UTC (rev 1097) @@ -84,6 +84,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>copy "$(TargetFileName)" "\MediaPortal Development\Plugin Releases\IR Server Suite\IR Blast\"</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.Designer.cs 2007-11-28 15:06:23 UTC (rev 1097) @@ -28,20 +28,210 @@ /// </summary> private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.textBoxPronto = new System.Windows.Forms.TextBox(); + this.labelCarrier = new System.Windows.Forms.Label(); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.textBoxCarrier = new System.Windows.Forms.TextBox(); + this.buttonSetCarrier = new System.Windows.Forms.Button(); + this.checkBoxStoreBinary = new System.Windows.Forms.CheckBox(); + this.buttonAttemptDecode = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + this.menuStrip.SuspendLayout(); this.SuspendLayout(); // + // menuStrip + // + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(497, 24); + this.menuStrip.TabIndex = 0; + this.menuStrip.Text = "menuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.openToolStripMenuItem, + this.saveToolStripMenuItem, + this.saveasToolStripMenuItem, + this.toolStripSeparator1, + this.quitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.fileToolStripMenuItem.Text = "&File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.newToolStripMenuItem.Text = "&New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.openToolStripMenuItem.Text = "&Open ..."; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.saveToolStripMenuItem.Text = "&Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); + // + // saveasToolStripMenuItem + // + this.saveasToolStripMenuItem.Name = "saveasToolStripMenuItem"; + this.saveasToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.saveasToolStripMenuItem.Text = "Save &as ..."; + this.saveasToolStripMenuItem.Click += new System.EventHandler(this.saveasToolStripMenuItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(135, 6); + // + // quitToolStripMenuItem + // + this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; + this.quitToolStripMenuItem.Size = new System.Drawing.Size(138, 22); + this.quitToolStripMenuItem.Text = "&Quit"; + this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); + // + // textBoxPronto + // + this.textBoxPronto.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.textBoxPronto.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBoxPronto.Location = new System.Drawing.Point(8, 32); + this.textBoxPronto.Multiline = true; + this.textBoxPronto.Name = "textBoxPronto"; + this.textBoxPronto.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBoxPronto.Size = new System.Drawing.Size(481, 136); + this.textBoxPronto.TabIndex = 1; + // + // labelCarrier + // + this.labelCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelCarrier.Location = new System.Drawing.Point(8, 176); + this.labelCarrier.Name = "labelCarrier"; + this.labelCarrier.Size = new System.Drawing.Size(56, 20); + this.labelCarrier.TabIndex = 2; + this.labelCarrier.Text = "Carrier:"; + this.labelCarrier.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBoxCarrier + // + this.textBoxCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.textBoxCarrier.Location = new System.Drawing.Point(64, 176); + this.textBoxCarrier.Name = "textBoxCarrier"; + this.textBoxCarrier.Size = new System.Drawing.Size(64, 20); + this.textBoxCarrier.TabIndex = 3; + // + // buttonSetCarrier + // + this.buttonSetCarrier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonSetCarrier.Location = new System.Drawing.Point(136, 176); + this.buttonSetCarrier.Name = "buttonSetCarrier"; + this.buttonSetCarrier.Size = new System.Drawing.Size(32, 20); + this.buttonSetCarrier.TabIndex = 4; + this.buttonSetCarrier.Text = "Set"; + this.toolTips.SetToolTip(this.buttonSetCarrier, "Change the carrier frequency"); + this.buttonSetCarrier.UseVisualStyleBackColor = true; + this.buttonSetCarrier.Click += new System.EventHandler(this.buttonSetCarrier_Click); + // + // checkBoxStoreBinary + // + this.checkBoxStoreBinary.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxStoreBinary.Location = new System.Drawing.Point(328, 176); + this.checkBoxStoreBinary.Name = "checkBoxStoreBinary"; + this.checkBoxStoreBinary.Size = new System.Drawing.Size(160, 24); + this.checkBoxStoreBinary.TabIndex = 6; + this.checkBoxStoreBinary.Text = "Store mceir.dll compatible"; + this.toolTips.SetToolTip(this.checkBoxStoreBinary, "Store this IR Code in an MceIr.dll compatible form"); + this.checkBoxStoreBinary.UseVisualStyleBackColor = true; + // + // buttonAttemptDecode + // + this.buttonAttemptDecode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonAttemptDecode.Location = new System.Drawing.Point(192, 176); + this.buttonAttemptDecode.Name = "buttonAttemptDecode"; + this.buttonAttemptDecode.Size = new System.Drawing.Size(112, 24); + this.buttonAttemptDecode.TabIndex = 5; + this.buttonAttemptDecode.Text = "Attempt decode"; + this.toolTips.SetToolTip(this.buttonAttemptDecode, "Try to decode the IR signal into a recognised format"); + this.buttonAttemptDecode.UseVisualStyleBackColor = true; + this.buttonAttemptDecode.Click += new System.EventHandler(this.buttonAttemptDecode_Click); + // + // openFileDialog + // + this.openFileDialog.DefaultExt = "IR"; + this.openFileDialog.Filter = "IR Files|*.IR"; + this.openFileDialog.Title = "Open an IR file ..."; + // + // saveFileDialog + // + this.saveFileDialog.DefaultExt = "IR"; + this.saveFileDialog.Filter = "IR Files|*.IR"; + this.saveFileDialog.Title = "Save an IR file ..."; + // // FormMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 264); + this.ClientSize = new System.Drawing.Size(497, 209); + this.Controls.Add(this.buttonAttemptDecode); + this.Controls.Add(this.checkBoxStoreBinary); + this.Controls.Add(this.buttonSetCarrier); + this.Controls.Add(this.textBoxCarrier); + this.Controls.Add(this.labelCarrier); + this.Controls.Add(this.textBoxPronto); + this.Controls.Add(this.menuStrip); + this.MainMenuStrip = this.menuStrip; + this.MinimumSize = new System.Drawing.Size(505, 236); this.Name = "FormMain"; this.Text = "IR File Tool"; + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); this.ResumeLayout(false); + this.PerformLayout(); } #endregion + + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveasToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem quitToolStripMenuItem; + private System.Windows.Forms.TextBox textBoxPronto; + private System.Windows.Forms.Label labelCarrier; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.TextBox textBoxCarrier; + private System.Windows.Forms.Button buttonSetCarrier; + private System.Windows.Forms.CheckBox checkBoxStoreBinary; + private System.Windows.Forms.Button buttonAttemptDecode; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SaveFileDialog saveFileDialog; } } Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.cs 2007-11-28 15:06:23 UTC (rev 1097) @@ -3,16 +3,192 @@ using System.ComponentModel; using System.Data; using System.Drawing; +using System.IO; using System.Text; using System.Windows.Forms; namespace IrFileTool { + public partial class FormMain : Form { + + string _fileName = String.Empty; + + IrCode _code = new IrCode(); + + public FormMain() { InitializeComponent(); } + + void RefreshForm() + { + textBoxPronto.Text = Encoding.ASCII.GetString(_code.ToByteArray(true)); + + switch (_code.Carrier) + { + case IrCode.CarrierFrequencyDCMode: + textBoxCarrier.Text = "DC Mode"; + break; + + case IrCode.CarrierFrequencyUnknown: + textBoxCarrier.Text = "Unknown"; + break; + + default: + textBoxCarrier.Text = _code.Carrier.ToString(); + break; + } + } + + void Save() + { + if (!checkBoxStoreBinary.Checked) + { + Pronto.WriteProntoFile(_fileName, Pronto.ConvertIrCodeToProntoRaw(_code)); + } + else + { + using (FileStream file = File.OpenWrite(_fileName)) + { + byte[] fileBytes = DataPacket(_code); + + file.Write(fileBytes, 0, fileBytes.Length); + } + } + } + + + private void newToolStripMenuItem_Click(object sender, EventArgs e) + { + _code = new IrCode(); + + RefreshForm(); + } + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + if (openFileDialog.ShowDialog(this) != DialogResult.OK) + return; + + using (FileStream file = File.OpenRead(openFileDialog.FileName)) + { + if (file.Length == 0) + { + MessageBox.Show(this, "The selected file is empty", "Empty file", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + byte[] fileData = new byte[file.Length]; + + file.Read(fileData, 0, (int)file.Length); + + _code = IrCode.FromByteArray(fileData); + } + + RefreshForm(); + } + + private void saveToolStripMenuItem_Click(object sender, EventArgs e) + { + Save(); + } + + private void saveasToolStripMenuItem_Click(object sender, EventArgs e) + { + if (saveFileDialog.ShowDialog(this) != DialogResult.OK) + return; + + _fileName = saveFileDialog.FileName; + + Save(); + } + + private void quitToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void buttonAttemptDecode_Click(object sender, EventArgs e) + { + IrDecoder.DecodeIR(_code.TimingData, new RemoteCallback(RemoteEvent), new KeyboardCallback(KeyboardEvent), new MouseCallback(MouseEvent)); + } + + static byte[] DataPacket(IrCode code) + { + if (code.TimingData.Length == 0) + return null; + + // Construct data bytes into "packet" ... + List<byte> packet = new List<byte>(); + + for (int index = 0; index < code.TimingData.Length; index++) + { + double time = (double)code.TimingData[index]; + + byte duration = (byte)Math.Abs(Math.Round(time / 50)); + bool pulse = (time > 0); + + while (duration > 0x7F) + { + packet.Add((byte)(pulse ? 0xFF : 0x7F)); + + duration -= 0x7F; + } + + packet.Add((byte)(pulse ? 0x80 | duration : duration)); + } + + // Insert byte count markers into packet data bytes ... + int subpackets = (int)Math.Ceiling(packet.Count / (double)4); + + byte[] output = new byte[packet.Count + subpackets + 1]; + + int outputPos = 0; + + for (int packetPos = 0; packetPos < packet.Count; ) + { + byte copyCount = (byte)(packet.Count - packetPos < 4 ? packet.Count - packetPos : 0x04); + + output[outputPos++] = (byte)(0x80 | copyCount); + + for (int index = 0; index < copyCount; index++) + output[outputPos++] = packet[packetPos++]; + } + + output[outputPos] = 0x80; + + return output; + } + + void RemoteEvent(IrProtocol codeType, uint keyCode, bool firstPress) + { + MessageBox.Show(this, String.Format("Remote: {0}, {1}", Enum.GetName(typeof(IrProtocol), codeType), keyCode), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + void KeyboardEvent(uint keyCode, uint modifiers) + { + MessageBox.Show(this, String.Format("Keyboard: {0}, {1}", keyCode, modifiers), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + void MouseEvent(int deltaX, int deltaY, bool right, bool left) + { + MessageBox.Show(this, String.Format("Mouse: DX {0}, DY {1}, Right: {2}, Left: {3}", deltaX, deltaY, right, left), "Decode IR", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private void buttonSetCarrier_Click(object sender, EventArgs e) + { + if (textBoxCarrier.Text == "Unknown") + return; + + if (textBoxCarrier.Text == "DC Mode") + _code.Carrier = IrCode.CarrierFrequencyDCMode; + + _code.Carrier = int.Parse(textBoxCarrier.Text); + + RefreshForm(); + } + } -} \ No newline at end of file + +} Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/FormMain.resx 2007-11-28 15:06:23 UTC (rev 1097) @@ -117,4 +117,16 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> + <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="toolTips.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>119, 17</value> + </metadata> + <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>209, 17</value> + </metadata> + <metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>333, 17</value> + </metadata> </root> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj 2007-11-27 21:02:33 UTC (rev 1096) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IR File Tool.csproj 2007-11-28 15:06:23 UTC (rev 1097) @@ -10,8 +10,7 @@ <RootNamespace>IRFileTool</RootNamespace> <AssemblyName>IR File Tool</AssemblyName> <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> - <StartupObject> - </StartupObject> + <StartupObject>IrFileTool.Program</StartupObject> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> @@ -21,14 +20,17 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> + <DebugType>none</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> + <DefineConstants> + </DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <DebugSymbols>true</DebugSymbols> @@ -64,8 +66,13 @@ <Compile Include="FormMain.Designer.cs"> <DependentUpon>FormMain.cs</DependentUpon> </Compile> + <Compile Include="IrCode.cs" /> + <Compile Include="IrDecoder.cs" /> + <Compile Include="MceDetectionData.cs" /> <Compile Include="Program.cs" /> + <Compile Include="Pronto.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="RemoteDetectionData.cs" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="FormMain.resx"> Added: trunk/plugins/IR Server Suite/Applications/IR File Tool/IrCode.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/IrCode.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IrCode.cs 2007-11-28 15:06:23 UTC (rev 1097) @@ -0,0 +1,287 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +// Remember: Pulse is Positive, Space is Negative. + +namespace IrFileTool +{ + + /// <summary> + /// Encapsulates an MCE compatible IR Code. + /// </summary> + class IrCode + { + + #region Constants + + /// <summary> + /// The carrier frequency for this code is Unknown. + /// </summary> + public const int CarrierFrequencyUnknown = -1; + /// <summary> + /// This code does not use a carrier wave. + /// </summary> + public const int CarrierFrequencyDCMode = 0; + /// <summary> + /// Default carrier frequency, 36kHz (the carrier frequency for RC5, RC6 and RC-MM). + /// </summary> + public const int CarrierFrequencyDefault = 36000; + + /// <summary> + /// How long the longest IR Code space should be (microseconds). + /// </summary> + const int LongestSpace = -100000; + + #endregion Constants + + #region Member Variables + + int _carrier; + int[] _timingData; + + #endregion Member Variables + + #region Properties + + /// <summary> + /// Gets or Sets the IR carrier frequency. + /// </summary> + public int Carrier + { + get { return _carrier; } + set { _carrier = value; } + } + + /// <summary> + /// Gets or Sets the IR timing data. + /// </summary> + public int[] TimingData + { + get { return _timingData; } + set { _timingData = value; } + } + + #endregion Properties + + #region Constructors + + public IrCode() : this(CarrierFrequencyUnknown, new int[] { }) { } + public IrCode(int carrier) : this(carrier, new int[] { }) { } + public IrCode(int[] timingData) : this(CarrierFrequencyUnknown, timingData) { } + public IrCode(int carrier, int[] timingData) + { + _carrier = carrier; + _timingData = timingData; + } + + #endregion Constructors + + #region Methods + + /// <summary> + /// Locates the gap between button presses and reduces the data down to just the first press. + /// </summary> + /// <returns>true if successful, otherwise false.</returns> + public bool FinalizeData() + { + if (_timingData.Length == 0) + return false; + + List<int> newData = new List<int>(); + + foreach (int time in _timingData) + { + if (time <= LongestSpace) + { + newData.Add(LongestSpace); + break; + } + else + { + newData.Add(time); + } + } + + _timingData = newData.ToArray(); + return true; + } + + /// <summary> + /// Add timing data to this IR Code. + /// </summary> + /// <param name="timingData">Addition timing data.</param> + public void AddTimingData(int[] timingData) + { + List<int> newTimingData = new List<int>(); + + int index = 0; + + if (_timingData.Length > 1) + { + for (index = 0; index < _timingData.Length - 1; index++) + newTimingData.Add(_timingData[index]); + } + else if (_timingData.Length == 0) + { + _timingData = new int[timingData.Length]; + timingData.CopyTo(_timingData, 0); + return; + } + + if (timingData.Length == 0 || index >= _timingData.Length) + return; + + if (Math.Sign(timingData[0]) == Math.Sign(_timingData[index])) + { + newTimingData.Add(_timingData[index] + timingData[0]); + + for (index = 1; index < timingData.Length; index++) + newTimingData.Add(timingData[index]); + } + else + { + newTimingData.Add(_timingData[index]); + newTimingData.AddRange(timingData); + } + + _timingData = newTimingData.ToArray(); + } + + /// <summary> + /// Creates a byte array representation of this IR Code. + /// </summary> + /// <param name="asPronto">Set this parameter true to convert the IR Code into Pronto format.</param> + /// <returns>Byte array representation.</returns> + public byte[] ToByteArray(bool asPronto) + { + StringBuilder output = new StringBuilder(); + + if (asPronto) + { + ushort[] prontoData = Pronto.ConvertIrCodeToProntoRaw(this); + + for (int index = 0; index < prontoData.Length; index++) + { + output.Append(prontoData[index].ToString("X4")); + if (index != prontoData.Length - 1) + output.Append(' '); + } + } + else // Native format (only benefit is a slightly more accurate Carrier Frequency) + { + output.Append("MCE,"); + output.AppendFormat("{0},", _carrier); + + for (int index = 0; index < _timingData.Length; index++) + { + output.Append(_timingData[index]); + if (index != _timingData.Length - 1) + output.Append(','); + } + } + + return Encoding.ASCII.GetBytes(output.ToString()); + } + + #endregion Methods + + #region Static Methods + + /// <summary> + /// Creates an IrCode object from old IR file bytes. + /// </summary> + /// <param name="data">IR file bytes.</param> + /// <returns>New IrCode object.</returns> + static IrCode FromOldData(byte[] data) + { + List<int> timingData = new List<int>(); + + int len = 0; + + for (int index = 0; index < data.Length; index++) + { + byte curByte = data[index]; + + if ((curByte & 0x80) != 0) + len += (int)(curByte & 0x7F); + else + len -= (int)curByte; + + if ((curByte & 0x7F) != 0x7F) + { + timingData.Add(len * 50); + len = 0; + } + } + + if (len != 0) + timingData.Add(len * 50); + + return new IrCode(timingData.ToArray()); + } + + /// <summary> + /// Create an IrCode object from Native file bytes. + /// </summary> + /// <param name="data">IR file bytes.</param> + /// <returns>New IrCode object.</returns> + static IrCode FromNativeData(string data) + { + if (String.IsNullOrEmpty(data)) + throw new ArgumentNullException("data"); + + string[] elements = data.Split(new char[] { ',' }); + + if (elements.Length < 3) + throw new ApplicationException("Invalid native IR file data"); + + IrCode newCode = new IrCode(); + newCode.Carrier = int.Parse(elements[1]); + + int[] timingData = new int[elements.Length - 2]; + for (int index = 2; index < elements.Length; index++) + timingData[index - 2] = int.Parse(elements[index]); + + newCode.TimingData = timingData; + + return newCode; + } + + /// <summary> + /// Create a new IrCode object from byte array data. + /// </summary> + /// <param name="data">Byte array to create from.</param> + /// <returns>New IrCode object.</returns> + public static IrCode FromByteArray(byte[] data) + { + if (data[4] == ' ') + { + string code = Encoding.ASCII.GetString(data); + + string[] stringData = code.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + + ushort[] prontoData = new ushort[stringData.Length]; + for (int i = 0; i < stringData.Length; i++) + prontoData[i] = ushort.Parse(stringData[i], System.Globalization.NumberStyles.HexNumber); + + return Pronto.ConvertProntoDataToIrCode(prontoData); + } + else if (data[0] == 'M' && data[1] == 'C' && data[2] == 'E') + { + string code = Encoding.ASCII.GetString(data); + + return FromNativeData(code); + } + else + { + return FromOldData(data); + } + } + + #endregion Static Methods + + } + +} Added: trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs =================================================================== --- trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs (rev 0) +++ trunk/plugins/IR Server Suite/Applications/IR File Tool/IrDecoder.cs 2007-11-28 15:06:23 UTC (rev 1097) @@ -0,0 +1,2070 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; + +namespace IrFileTool +{ + + #region Enumerations + + /// <summary> + /// Protocol of IR Code. + /// </summary> + enum IrProtocol + { + /// <summary> + /// No protocol. + /// </summary> + None, + + /// <summary> + /// Daewoo protocol. + /// </summary> + Daewoo, + /// <summary> + /// ITT protocol (unsupported). + /// </summary> + ITT, + /// <summary> + /// JVC protocol. + /// </summary> + JVC, + /// <summary> + /// Matsushita protocol. + /// </summary> + Matsushita, + /// <summary> + /// Mitsubishi protocol. + /// </summary> + Mitsubishi, + /// <summary> + /// NEC protocol. + /// </summary> + NEC, + /// <summary> + /// Nokia NRC17 protocol. + /// </summary> + NRC17, + /// <summary> + /// Panasonic protocol. + /// </summary> + Panasonic, + /// <summary> + /// Philips RC5 protocol. + /// </summary> + RC5, + /// <summary> + /// Philips RC5X protocol. + /// </summary> + RC5X, + /// <summary> + /// Philips RC6 protocol (Mode 0). + /// </summary> + RC6, + /// <summary> + /// Philips RC6 protocol (Mode 6A). + /// </summary> + RC6A, + /// <summary> + /// Microsoft's protocol variation of Philips RC6. + /// </summary> + RC6_MCE, + /// <summary> + /// RCA protocol. + /// </summary> + RCA, + /// <summary> + /// Philips RC-MM protocol. This protocol cannot be reliably (if at all) decoded by the MCE device. + /// </summary> + RCMM, + /// <summary> + /// RECS-80 protocol. + /// </summary> + RECS80, + /// <summary> + /// Sharp protocol (unsupported). + /// </summary> + Sharp, + /// <summary> + /// Sony SIRC protocol. + /// </summary> + SIRC, + /// <summary> + /// Toshiba protocol. + /// </summary> + Toshiba, + /// <summary> + /// X-Sat protocol (unsupported). + /// </summary> + XSAT, + + /// <summary> + /// Unknown protocol. + /// </summary> + Unknown, + } + + #endregion Enumerations + + #region Delegates + + delegate void RemoteCallback(IrProtocol codeType, uint keyCode, bool firstPress); + delegate void KeyboardCallback(uint keyCode, uint modifiers); + delegate void MouseCallback(int deltaX, int deltaY, bool rightButton, bool leftButton); + + #endregion Delegates + + /// <summary> + /// Used for decoding received IR Codes. + /// </summary> + static class IrDecoder + { + + #region Constants + + const ushort ToggleBitMce = 0x8000; + const ushort ToggleMaskMce = 0x7FFF; + const ushort CustomerMce = 0x800F; + + const ushort ToggleBitRC5 = 0x0800; + const ushort ToggleMaskRC5 = 0xF7FF; + + const uint ToggleBitRC5X = 0x00020000; + const ushort ToggleMaskRC5X = 0xFFFF; + + const uint RC6HeaderMask = 0xFFFFFFF0; + + const uint PrefixRC6 = 0x000FC950; + const uint PrefixRC6A = 0x000FCA90; + + const uint MceMouse = 1; + const uint MceKeyboard = 4; + + #endregion Constants + + #region Detection Data + + static RemoteDetectionData Daewoo_Data = new RemoteDetectionData(); + static RemoteDetectionData JVC_Data = new RemoteDetectionData(); + static RemoteDetectionData Matsushita_Data = new RemoteDetectionData(); + static RemoteDetectionData Mitsubishi_Data = new RemoteDetectionData(); + static RemoteDetectionData NEC_Data = new RemoteDetectionData(); + static RemoteDetectionData NRC17_Data = new RemoteDetectionData(); + static RemoteDetectionData Panasonic_Data = new RemoteDetectionData(); + static RemoteDetectionData RC5_Data = new RemoteDetectionData(); + static RemoteDetectionData RC6_Data = new RemoteDetectionData(); + static RemoteDetectionData RCA_Data = new RemoteDetectionData(); + static RemoteDetectionData RECS80_Data = new RemoteDetectionData(); + static RemoteDetectionData SIRC_Data = new RemoteDetectionData(); + static RemoteDetectionData Toshiba_Data = new RemoteDetectionData(); + + static MceDetectionData MCE_Data = new MceDetectionData(); + + #endregion Detection Data + + #region Methods + + /// <summary> + /// Decode timing data to discover IR Protocol and packet payload. + /// </summary> + /// <param name="timingData">Input timing data.</param> + /// <param name="remoteCallback">Method to call when Remote button decoded.</param> + /// <param name="keyboardCallback">Method to call when Keyboard event decoded.</param> + /// <param name="mouseCallback">Method to call when Mouse event decoded.</param> + public static void DecodeIR(int[] timingData, RemoteCallback remoteCallback, KeyboardCallback keyboardCallback, MouseCallback mouseCallback) + { + if (timingData == null) + return; + + try + { + DetectDaewoo(timingData, remoteCallback); + //DetectITT(timingData, remoteCallback); + DetectJVC(timingData, remoteCallback); + DetectMatsushita(timingData, remoteCallback); + DetectMitsubishi(timingData, remoteCallback); + DetectNEC(timingData, remoteCallback); + DetectNRC17(timingData, remoteCallback); + DetectPanasonic(timingData, remoteCallback); + DetectRC5(timingData, remoteCallback); + DetectRC6(timingData, remoteCallback); + DetectRCA(timingData, remoteCallback); + //DetectRCMM(timingData, remoteCallback); + DetectRECS80(timingData, remoteCallback); + //DetectSharp(timingData, remoteCallback); + DetectSIRC(timingData, remoteCallback); + DetectToshiba(timingData, remoteCallback); + //DetectXSAT(timingData, remoteCallback); + + DetectMCE(timingData, keyboardCallback, mouseCallback); + //DetectIMon(timingData, keyboardCallback, mouseCallback); + } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine(ex.ToString()); +#else + catch + { +#endif + Daewoo_Data = new RemoteDetectionData(); + JVC_Data = new RemoteDetectionData(); + Matsushita_Data = new RemoteDetectionData(); + Mitsubishi_Data = new RemoteDetectionData(); + NEC_Data = new RemoteDetectionData(); + NRC17_Data = new RemoteDetectionData(); + Panasonic_Data = new RemoteDetectionData(); + RC5_Data = new RemoteDetectionData(); + RC6_Data = new RemoteDetectionData(); + RCA_Data = new RemoteDetectionData(); + RECS80_Data = new RemoteDetectionData(); + SIRC_Data = new RemoteDetectionData(); + Toshiba_Data = new RemoteDetectionData(); + + MCE_Data = new MceDetectionData(); + } + } + + static void DetectDaewoo(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Daewoo - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Daewoo_Data.State), timingData[i]); + + switch (Daewoo_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 7800, 8200)) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3800 , 4200)) + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 10000 , 40000)) // For Repeats + { + Daewoo_Data.State = RemoteDetectionState.Data; + Daewoo_Data.HalfBit = 0; + Daewoo_Data.Bit = 0; + Daewoo_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 350, 750)) + { + Daewoo_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 250, 650) && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1250, 1650) && Daewoo_Data.HalfBit == 1) + { + Daewoo_Data.Code <<= 1; + Daewoo_Data.Code |= 1; + Daewoo_Data.Bit++; + Daewoo_Data.HalfBit = 0; + ignored = false; + } + else + { + //Trace.WriteLine("Daewoo Error"); + } + + if (Daewoo_Data.Bit == 16) + { + remoteCallback(IrProtocol.Daewoo, Daewoo_Data.Code, false); + Daewoo_Data.State = RemoteDetectionState.Leading; + } + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + if (pulse && IsBetween(duration, 350, 750)) + { + Daewoo_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion Leading + + } + + if (ignored && (Daewoo_Data.State != RemoteDetectionState.HeaderPulse)) + Daewoo_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectJVC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("JVC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), JVC_Data.State), timingData[i]); + + switch (JVC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 8300, 8500)) + { + JVC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 4100, 4300)) + { + JVC_Data.Toggle = 0; + + JVC_Data.State = RemoteDetectionState.Data; + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 450, 650)) + { + JVC_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 450, 650) && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1450, 1700) && JVC_Data.HalfBit == 1) + { + JVC_Data.Code <<= 1; + JVC_Data.Code |= 1; + JVC_Data.Bit++; + JVC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 10000) + { + if (JVC_Data.Bit == 16) + { + bool first = false; + if (JVC_Data.Code != JVC_Data.Toggle) + first = true; + + remoteCallback(IrProtocol.JVC, JVC_Data.Code, first); + ignored = false; + + JVC_Data.Toggle = (int)JVC_Data.Code; + + if (duration > 25000) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + else + JVC_Data.State = RemoteDetectionState.Data; + + JVC_Data.HalfBit = 0; + JVC_Data.Bit = 0; + JVC_Data.Code = 0; + } + else if (JVC_Data.Bit == 32) + { + remoteCallback(IrProtocol.Unknown, JVC_Data.Code, false); + } + else + { + //Trace.WriteLine("JVC Error"); + } + + } + else + { + //Trace.WriteLine("JVC Error"); + } + + break; + #endregion Data + + } + + if (ignored && (JVC_Data.State != RemoteDetectionState.HeaderPulse)) + JVC_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectMatsushita(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Matsushita - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Matsushita_Data.State), timingData[i]); + + switch (Matsushita_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 3300, 3700)) + { + Matsushita_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + //else + //Trace.WriteLine("HeaderPulse fall through"); + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3300, 3700)) + { + Matsushita_Data.State = RemoteDetectionState.Data; + Matsushita_Data.HalfBit = 0; + Matsushita_Data.Bit = 0; + Matsushita_Data.Code = 0; + ignored = false; + } + //else + //Trace.WriteLine("HeaderSpace fell through"); + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 650, 1050)) + { + Matsushita_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 650, 1050) && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 2450, 2850) && Matsushita_Data.HalfBit == 1) + { + Matsushita_Data.Code <<= 1; + Matsushita_Data.Code |= 1; + Matsushita_Data.Bit++; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Matsushita_Data.HalfBit == 1) + { + if (Matsushita_Data.Bit != 22) + break; + + uint code = Matsushita_Data.Code >> 12; + remoteCallback(IrProtocol.Matsushita, code, false); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + Matsushita_Data.HalfBit = 0; + ignored = false; + } + else + { + //Trace.WriteLine("Matsushita Error"); + } + + break; + #endregion Data + + } + + if (ignored && (Matsushita_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Trace.WriteLine("ignored"); + Matsushita_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectMitsubishi(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("Mitsubishi - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), Mitsubishi_Data.State), timingData[i]); + + switch (Mitsubishi_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 7800, 8200)) + { + Mitsubishi_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 3800, 4200)) + { + Mitsubishi_Data.State = RemoteDetectionState.Data; + Mitsubishi_Data.HalfBit = 0; + Mitsubishi_Data.Bit = 0; + Mitsubishi_Data.Code = 0; + ignored = false; + } + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 350, 650)) + { + Mitsubishi_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 350, 650) && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1300, 1700) && Mitsubishi_Data.HalfBit == 1) + { + Mitsubishi_Data.Code <<= 1; + Mitsubishi_Data.Code |= 1; + Mitsubishi_Data.Bit++; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 3800, 4200) && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 8) + { + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 20000 && Mitsubishi_Data.HalfBit == 1 && Mitsubishi_Data.Bit == 16) + { + remoteCallback(IrProtocol.Mitsubishi, Mitsubishi_Data.Code, false); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + Mitsubishi_Data.HalfBit = 0; + ignored = false; + } + + break; + #endregion Data + + } + + if (ignored && (Mitsubishi_Data.State != RemoteDetectionState.HeaderPulse)) + { + //Trace.WriteLine("ignored"); + Mitsubishi_Data.State = RemoteDetectionState.HeaderPulse; + } + } + } + static void DetectNEC(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("NEC - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NEC_Data.State), timingData[i]); + + switch (NEC_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + if (pulse && IsBetween(duration, 8800, 9200)) + { + NEC_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + if (!pulse && IsBetween(duration, 4300, 4700)) + { + NEC_Data.State = RemoteDetectionState.Data; + NEC_Data.HalfBit = 0; + NEC_Data.Bit = 0; + NEC_Data.Code = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 2050, 2450)) // For Repeats + { + //Trace.Write("Repeat"); + + if (NEC_Data.Code != 0) + { + uint address = (NEC_Data.Code >> 24) & 0xFF; + uint command = (NEC_Data.Code >> 8) & 0xFF; + + uint code = (address << 8) + command; + + //Trace.WriteLine(" Code: {0}", code); + + remoteCallback(IrProtocol.NEC, code, false); + + NEC_Data.State = RemoteDetectionState.Leading; + ignored = false; + } + } + + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (pulse && IsBetween(duration, 350, 750)) + { + NEC_Data.HalfBit = 1; + ignored = false; + } + else if (!pulse && IsBetween(duration, 350, 650) && NEC_Data.HalfBit == 1) + { + NEC_Data.Code <<= 1; + NEC_Data.Bit++; + NEC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && IsBetween(duration, 1200, 2800) && NEC_Data.HalfBit == 1) + { + NEC_Data.Code <<= 1; + NEC_Data.Code |= 1; + NEC_Data.Bit++; + NEC_Data.HalfBit = 0; + ignored = false; + } + else if (!pulse && duration >= 12000) + { + if (NEC_Data.Bit != 32) + { + if (NEC_Data.Code != 0) + { + //Trace.WriteLine("Invalid NEC: {0}bit, {1:X}", NEC_Data.Bit, NEC_Data.Code); + remoteCallback(IrProtocol.Unknown, NEC_Data.Code, false); + } + break; + } + + uint address = (NEC_Data.Code >> 24) & 0xFF; + uint notAddress = (NEC_Data.Code >> 16) & 0xFF; + + uint command = (NEC_Data.Code >> 8) & 0xFF; + uint notCommand = NEC_Data.Code & 0xFF; + + if ((address + notAddress == 0xFF) && (command + notCommand == 0xFF)) + { + uint code = (address << 8) + command; + remoteCallback(IrProtocol.NEC, code, true); + NEC_Data.State = RemoteDetectionState.HeaderPulse; + ignored = false; + } + else + { + //Trace.WriteLine("Invalid NEC: {0:X}", NEC_Data.Code); + remoteCallback(IrProtocol.Unknown, NEC_Data.Code, false); + } + } + + break; + #endregion Data + + #region Leading + case RemoteDetectionState.Leading: + if (pulse && IsBetween(duration, 400, 800)) + { + ignored = false; + } + else if (!pulse && duration > 10000) + { + ignored = false; + NEC_Data.State = RemoteDetectionState.HeaderPulse; + } + + break; + #endregion Leading + + } + + if (ignored && (NEC_Data.State != RemoteDetectionState.HeaderPulse)) + NEC_Data.State = RemoteDetectionState.HeaderPulse; + } + } + static void DetectNRC17(int[] timingData, RemoteCallback remoteCallback) + { + for (int i = 0; i < timingData.Length; i++) + { + int duration = Math.Abs(timingData[i]); + bool pulse = (timingData[i] > 0); + bool ignored = true; + + //Trace.WriteLine("NRC17 - {0}: {1}", Enum.GetName(typeof(RemoteDetectionState), NRC17_Data.State), timingData[i]); + + switch (NRC17_Data.State) + { + + #region HeaderPulse + case RemoteDetectionState.HeaderPulse: + + if (pulse && IsBetween(duration, 400, 650)) + { + NRC17_Data.State = RemoteDetectionState.HeaderSpace; + ignored = false; + } + break; + #endregion HeaderPulse + + #region HeaderSpace + case RemoteDetectionState.HeaderSpace: + + if (!pulse && + (IsBetween(duration, 2350, 2600) || // Normal battery + IsBetween(duration, 3350, 3600))) // Low battery + { + NRC17_Data.State = RemoteDetectionState.Data; + NRC17_Data.HalfBit = 0; + NRC17_Data.Bit = 17; + NRC17_Data.Header = 0; + NRC17_Data.Code = 0; + ignored = false; + } + break; + #endregion HeaderSpace + + #region Data + case RemoteDetectionState.Data: + if (NRC17_Data.HalfBit == 0) + { + if (pulse && IsBetween(duration, 300, 700)) + { + // Logic 1 + NRC17_Data.HalfBit = 1; + NRC17_Data.Code |= (uint)(1 << NRC17_Data.Bit--); + ignored = false; + } + else if (!pulse && IsBetween(duration, 300, 700)) + { + // Logic 0 + NRC17_Data.HalfBit = 1; + NRC17_Data.Bit--; + ignored = false; + } + } + else + { + if (!pulse && IsBetween(duration, 300, 700)) + { + NRC17_Data.HalfBit = 0; + ... [truncated message content] |