From: <an...@us...> - 2008-03-11 13:02:32
|
Revision: 1445 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1445&view=rev Author: and-81 Date: 2008-03-11 06:02:30 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Technotrend Receiver/Technotrend Receiver.cs trunk/plugins/IR Server Suite/IR Server Suite.sln trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Technotrend/Technotrend.xml trunk/plugins/ShortcutFileSupport/LnkPlayer.cs Added Paths: ----------- trunk/plugins/TechnotrendRemote/ trunk/plugins/TechnotrendRemote/AssemblyInfo.cs trunk/plugins/TechnotrendRemote/Technotrend Plugin.csproj trunk/plugins/TechnotrendRemote/TechnotrendPlugin.cs trunk/plugins/TechnotrendRemote/TechnotrendPlugin.xml Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Technotrend Receiver/Technotrend Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Technotrend Receiver/Technotrend Receiver.cs 2008-03-11 03:29:59 UTC (rev 1444) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Technotrend Receiver/Technotrend Receiver.cs 2008-03-11 13:02:30 UTC (rev 1445) @@ -17,38 +17,6 @@ public class TechnotrendReceiver : PluginBase, IRemoteReceiver { - #region Debug - - [STAThread] - static void Main() - { - try - { - TechnotrendReceiver c = new TechnotrendReceiver(); - - //c.Configure(null); - - //c.RemoteCallback += new RemoteHandler(xRemote); - - c.Start(); - - Console.ReadKey(); - //System.Windows.Forms.Application.Run(); - - c.Stop(); - c = null; - } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } - - Console.ReadKey(); - } - - #endregion Debug - - #region Enumerations /// <summary> @@ -192,7 +160,6 @@ RemoteHandler _remoteButtonHandler; - int _lastTrigger = -1; int _lastCode = -1; DateTime _lastCodeTime = DateTime.Now; @@ -294,22 +261,23 @@ IntPtr handle; TYPE_RET_VAL error; + int context = 1; + for (DEVICE_CAT cat = DEVICE_CAT.UNKNOWN; cat <= DEVICE_CAT.USB_2_DSS; cat++) { - if (bdaapiEnumerate(cat) > 0) + uint enumerate = bdaapiEnumerate(cat); + + for (uint index = 0; index < enumerate; index++) { - handle = bdaapiOpen(cat, 0); + handle = bdaapiOpen(cat, index); + if ((handle != IntPtr.Zero) && (handle.ToInt32() != -1)) { - error = bdaapiOpenIR(handle, _callbackPtr, 0); + error = bdaapiOpenIR(handle, _callbackPtr, context++); if (error == TYPE_RET_VAL.RET_SUCCESS) - { _handles.Add(handle); - } else - { bdaapiClose(handle); - } } } } @@ -367,27 +335,31 @@ { try { - int code = ((int)buffer[0]) & 0x00FF; - int trigger = ((int)buffer[0]) & 0x0800; + int code = ((int)buffer[0]) & 0x00FF; DateTime now = DateTime.Now; TimeSpan timeSpan = now - _lastCodeTime; - if (code != _lastCode || trigger != _lastTrigger || timeSpan.Milliseconds >= 250) + if (code != _lastCode || timeSpan.Milliseconds >= 250) { if (_remoteButtonHandler != null) - _remoteButtonHandler("Technotrend", code.ToString()); + _remoteButtonHandler(this.Name, code.ToString()); _lastCodeTime = now; } - _lastCode = code; - _lastTrigger = trigger; + _lastCode = code; } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine(ex.ToString()); + } +#else catch { - //MessageBox.Show(ex.ToString()); } +#endif } #endregion Implementation Modified: trunk/plugins/IR Server Suite/IR Server Suite.sln =================================================================== --- trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-03-11 03:29:59 UTC (rev 1444) +++ trunk/plugins/IR Server Suite/IR Server Suite.sln 2008-03-11 13:02:30 UTC (rev 1445) @@ -252,6 +252,9 @@ Debug.AspNetCompiler.Debug = "True" Release.AspNetCompiler.Debug = "False" EndProjectSection + ProjectSection(SolutionItems) = preProject + IR Server Suite.nsi = IR Server Suite.nsi + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Direct Input Receiver", "IR Server Plugins\Direct Input Receiver\Direct Input Receiver.csproj", "{732CDF64-D047-4D3C-91DA-E2FF27D84179}" ProjectSection(WebsiteProperties) = preProject Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Technotrend/Technotrend.xml =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Technotrend/Technotrend.xml 2008-03-11 03:29:59 UTC (rev 1444) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Technotrend/Technotrend.xml 2008-03-11 13:02:30 UTC (rev 1445) @@ -36,5 +36,7 @@ <RemoteTable RawCode="87" AbstractButton="Blue" /> <RemoteTable RawCode="90" AbstractButton="TV" /> <RemoteTable RawCode="98" AbstractButton="Guide" /> + <RemoteTable RawCode="97" AbstractButton="Menu" /> + <RemoteTable RawCode="103" AbstractButton="Setup" /> <RemoteTable RawCode="66" AbstractButton="Refresh" /> </DocumentElement> \ No newline at end of file Modified: trunk/plugins/ShortcutFileSupport/LnkPlayer.cs =================================================================== --- trunk/plugins/ShortcutFileSupport/LnkPlayer.cs 2008-03-11 03:29:59 UTC (rev 1444) +++ trunk/plugins/ShortcutFileSupport/LnkPlayer.cs 2008-03-11 13:02:30 UTC (rev 1445) @@ -38,6 +38,8 @@ { ShellLink link = new ShellLink(strFile); + Log.Info("Link Target: {0}", link.Target); + if (Directory.Exists(link.Target)) GotoFolder(link.Target); else if (File.Exists(link.Target)) Added: trunk/plugins/TechnotrendRemote/AssemblyInfo.cs =================================================================== --- trunk/plugins/TechnotrendRemote/AssemblyInfo.cs (rev 0) +++ trunk/plugins/TechnotrendRemote/AssemblyInfo.cs 2008-03-11 13:02:30 UTC (rev 1445) @@ -0,0 +1,67 @@ +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("Technotrend Plugin")] +[assembly: AssemblyDescription("Supports Technotrend remotes")] +[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.4.2")] + +// +// 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.4.2")] + +[assembly: CLSCompliant(true)] + +[assembly: SecurityPermission(SecurityAction.RequestMinimum, UnmanagedCode = true)] Added: trunk/plugins/TechnotrendRemote/Technotrend Plugin.csproj =================================================================== --- trunk/plugins/TechnotrendRemote/Technotrend Plugin.csproj (rev 0) +++ trunk/plugins/TechnotrendRemote/Technotrend Plugin.csproj 2008-03-11 13:02:30 UTC (rev 1445) @@ -0,0 +1,82 @@ +<?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>TechnotrendPlugin</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> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + </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> + <AllowUnsafeBlocks>true</AllowUnsafeBlocks> + </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="TechnotrendPlugin.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="Core, Version=1.0.2581.1884, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Core\bin\Release\Core.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="RemotePlugins, Version=0.2.3.0, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\RemotePlugins\bin\Release\RemotePlugins.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=1.0.2581.1867, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\MediaPortal\Utils\bin\Release\Utils.dll</HintPath> + <Private>False</Private> + </Reference> + </ItemGroup> + <PropertyGroup> + <PostBuildEvent>copy "*.*" "\MediaPortal Development\Plugin Releases\Technotrend Plugin\Release\"</PostBuildEvent> + </PropertyGroup> + <ItemGroup> + <Content Include="TechnotrendPlugin.xml"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + </ItemGroup> +</Project> \ No newline at end of file Added: trunk/plugins/TechnotrendRemote/TechnotrendPlugin.cs =================================================================== --- trunk/plugins/TechnotrendRemote/TechnotrendPlugin.cs (rev 0) +++ trunk/plugins/TechnotrendRemote/TechnotrendPlugin.cs 2008-03-11 13:02:30 UTC (rev 1445) @@ -0,0 +1,311 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Runtime.InteropServices; + +using MediaPortal.GUI.Library; +using MediaPortal.InputDevices; + +namespace MediaPortal.Plugins +{ + + /// <summary> + /// Technotrend remote plugin + /// </summary> + public class TechnotrendPlugin : IPlugin, ISetupForm + { + + #region Enumerations + + /// <summary> + /// Device Category. + /// </summary> + enum DEVICE_CAT + { + /// <summary> + /// Not set. + /// </summary> + UNKNOWN = 0, + /// <summary> + /// Budget 2. + /// </summary> + BUDGET_2, + /// <summary> + /// Budget 3 aka TT-budget T-3000. + /// </summary> + BUDGET_3, + /// <summary> + /// USB 2.0 + /// </summary> + USB_2, + /// <summary> + /// USB 2.0 Pinnacle. + /// </summary> + USB_2_PINNACLE, + /// <summary> + /// USB 2.0 DSS. + /// </summary> + USB_2_DSS, + } + + /// <summary> + /// Return Value. + /// </summary> + enum TYPE_RET_VAL + { + /// <summary> + /// 0 operation finished successful. + /// </summary> + RET_SUCCESS = 0, + /// <summary> + /// 1 operation is not implemented for the opened handle. + /// </summary> + RET_NOT_IMPL, + /// <summary> + /// 2 operation is not supported for the opened handle. + /// </summary> + RET_NOT_SUPPORTED, + /// <summary> + /// 3 the given HANDLE seems not to be correct. + /// </summary> + RET_ERROR_HANDLE, + /// <summary> + /// 4 the internal IOCTL subsystem has no device handle. + /// </summary> + RET_IOCTL_NO_DEV_HANDLE, + /// <summary> + /// 5 the internal IOCTL failed. + /// </summary> + RET_IOCTL_FAILED, + /// <summary> + /// 6 the infrared interface is already initialised. + /// </summary> + RET_IR_ALREADY_OPENED, + /// <summary> + /// 7 the infrared interface is not initialised. + /// </summary> + RET_IR_NOT_OPENED, + /// <summary> + /// 8 length exceeds maximum in EEPROM-Userspace operation. + /// </summary> + RET_TO_MANY_BYTES, + /// <summary> + /// 9 common interface hardware error. + /// </summary> + RET_CI_ERROR_HARDWARE, + /// <summary> + /// a common interface already opened. + /// </summary> + RET_CI_ALREADY_OPENED, + /// <summary> + /// b operation finished with timeout. + /// </summary> + RET_TIMEOUT, + /// <summary> + /// c read psi failed. + /// </summary> + RET_READ_PSI_FAILED, + /// <summary> + /// d not set. + /// </summary> + RET_NOT_SET, + /// <summary> + /// e operation finished with general error. + /// </summary> + RET_ERROR, + /// <summary> + /// f operation finished with ilegal pointer. + /// </summary> + RET_ERROR_POINTER, + } + + #endregion Enumerations + + #region Delegates + + /// <summary> + /// Called by the Technotrend api dll to signal a remote button has been received. + /// </summary> + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + unsafe delegate void CallbackDef(int context, uint* buffer); + + #endregion Delegates + + #region Interop + + [DllImport("ttBdaDrvApi_Dll.dll", EntryPoint = "bdaapiEnumerate")] + static extern UInt32 bdaapiEnumerate(DEVICE_CAT deviceType); + + [DllImport("ttBdaDrvApi_Dll.dll", EntryPoint = "bdaapiOpen")] + static extern IntPtr bdaapiOpen(DEVICE_CAT deviceType, uint deviceId); + + [DllImport("ttBdaDrvApi_Dll.dll", EntryPoint = "bdaapiClose")] + static extern void bdaapiClose(IntPtr handle); + + [DllImport("ttBdaDrvApi_Dll.dll", EntryPoint = "bdaapiOpenIR")] + static extern TYPE_RET_VAL bdaapiOpenIR(IntPtr handle, IntPtr callback, int context); + + [DllImport("ttBdaDrvApi_Dll.dll", EntryPoint = "bdaapiCloseIR")] + static extern TYPE_RET_VAL bdaapiCloseIR(IntPtr handle); + + #endregion Interop + + #region Variables + + InputHandler _inputHandler; + + List<IntPtr> _handles; + CallbackDef _callback; + IntPtr _callbackPtr; + + int _lastCode = -1; + DateTime _lastCodeTime = DateTime.Now; + + #endregion Variables + + #region Constructor + + /// <summary> + /// Initializes a new instance of the <see cref="TechnotrendPlugin"/> class. + /// </summary> + public TechnotrendPlugin() + { + _handles = new List<IntPtr>(); + + unsafe + { + _callback = new CallbackDef(OnIRCode); + _callbackPtr = Marshal.GetFunctionPointerForDelegate(_callback); + } + } + + #endregion Constructor + + #region IPlugin Members + + /// <summary> + /// Starts this instance. + /// </summary> + public void Start() + { + Log.Info("Technotrend Plugin: Start"); + + _inputHandler = new InputHandler("TechnotrendPlugin"); + + IntPtr handle; + TYPE_RET_VAL error; + + int context = 1; + + for (DEVICE_CAT cat = DEVICE_CAT.UNKNOWN; cat <= DEVICE_CAT.USB_2_DSS; cat++) + { + uint enumerate = bdaapiEnumerate(cat); + + for (uint index = 0; index < enumerate; index++) + { + handle = bdaapiOpen(cat, index); + + if ((handle != IntPtr.Zero) && (handle.ToInt32() != -1)) + { + error = bdaapiOpenIR(handle, _callbackPtr, context++); + if (error == TYPE_RET_VAL.RET_SUCCESS) + _handles.Add(handle); + else + bdaapiClose(handle); + } + } + } + + if (_handles.Count == 0) + Log.Warn("No Technotrend IR devices found"); + } + + /// <summary> + /// Stops this instance. + /// </summary> + public void Stop() + { + Log.Info("Technotrend Plugin: Stop"); + + if (_handles.Count == 0) + return; + + foreach (IntPtr handle in _handles) + { + bdaapiCloseIR(handle); + bdaapiClose(handle); + } + + _handles.Clear(); + } + + #endregion IPlugin Members + + #region ISetupForm Members + + public string Author() { return "and-81, with code by Alexander Plas"; } + public bool CanEnable() { return true; } + public bool DefaultEnabled() { return true; } + public string Description() { return "Supports Technotrend remotes"; } + public int GetWindowId() { return 0; } + public bool HasSetup() { return true; } + public string PluginName() { return "Technotrend Plugin"; } + + public void ShowPlugin() + { + InputMappingForm inputMappingForm = new InputMappingForm("Technotrend Remote"); + inputMappingForm.ShowDialog(); + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + strButtonText = strButtonImage = strButtonImageFocus = strPictureImage = ""; + return false; + } + + #endregion ISetupForm Members + + #region Implementation + + /// <summary> + /// Called when an IR code is received. + /// </summary> + /// <param name="context">The context.</param> + /// <param name="buffer">The code.</param> + unsafe void OnIRCode(int context, uint* buffer) + { + try + { + int code = ((int)buffer[0]) & 0x00FF; + + DateTime now = DateTime.Now; + TimeSpan timeSpan = now - _lastCodeTime; + + if (code != _lastCode || timeSpan.Milliseconds >= 250) + { + _inputHandler.MapAction(code); + + _lastCodeTime = now; + } + + _lastCode = code; + } +#if TRACE + catch (Exception ex) + { + Trace.WriteLine(ex.ToString()); + } +#else + catch + { + } +#endif + } + + + #endregion Implementation + + } + +} Added: trunk/plugins/TechnotrendRemote/TechnotrendPlugin.xml =================================================================== --- trunk/plugins/TechnotrendRemote/TechnotrendPlugin.xml (rev 0) +++ trunk/plugins/TechnotrendRemote/TechnotrendPlugin.xml 2008-03-11 13:02:30 UTC (rev 1445) @@ -0,0 +1,512 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mappings version="3"> + <remote family="Technotrend Remote"> + <button name="Home" code="2059"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="0" sound="back.wav" focus="True" /> + </button> + <button name="Power" code="2061"> + <action layer="0" condition="*" conproperty="-1" command="POWER" cmdproperty="EXIT" sound="back.wav" /> + </button> + <button name="TV" code="2028"> + <action layer="0" condition="WINDOW" conproperty="7701" command="WINDOW" cmdproperty="602" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="1" sound="click.wav" /> + </button> + <button name="Videos" code="2024"> + <action layer="0" condition="WINDOW" conproperty="6" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2005" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="6" sound="click.wav" /> + </button> + <button name="Music" code="2025"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="501" sound="click.wav" /> + </button> + <button name="Pictures" code="2026"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="2" sound="click.wav" /> + </button> + <button name="Guide" code="2027"> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="10" sound="back.wav" /> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="600" sound="click.wav" /> + </button> + <button name="Radio" code="2012"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="30" sound="click.wav" /> + </button> + <button name="Cursor Up" code="2020"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="3" sound="cursor.wav" /> + </button> + <button name="Cursor Down" code="2021"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="4" sound="cursor.wav" /> + </button> + <button name="Cursor Left" code="2022"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="1" sound="cursor.wav" /> + </button> + <button name="Cursor Right" code="2023"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="28" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="2" sound="cursor.wav" /> + </button> + <button name="OK" code="2037"> + <action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="47" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="10" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="7" sound="click.wav" /> + </button> + <button name="Back/Exit" code="2031"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="10" sound="back.wav" /> + </button> + <button name="Menu/i" code="2013"> + <action layer="0" condition="FULLSCREEN" conproperty="TRUE" command="ACTION" cmdproperty="24" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="106" sound="click.wav" /> + </button> + <button name="Volume +" code="2016"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="103" sound="cursor.wav" /> + </button> + <button name="Volume -" code="2017"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="102" sound="cursor.wav" /> + </button> + <button name="Mute" code="2015"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="9982" sound="click.wav" /> + </button> + <button name="Previous Channel" code="2018"> + <action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="111" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="111" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="96" sound="back.wav" /> + <action layer="0" condition="PLAYER" conproperty="DVD" command="ACTION" cmdproperty="90" sound="back.wav" /> + <action layer="0" condition="FULLSCREEN" conproperty="TRUE" command="ACTION" cmdproperty="76" sound="back.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="9" sound="back.wav" /> + </button> + <button name="Channel +" code="2032"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="5" sound="cursor.wav" /> + </button> + <button name="Channel -" code="2033"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="6" sound="cursor.wav" /> + </button> + <button name="Record" code="2055"> + <action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="113" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="89" sound="click.wav" /> + </button> + <button name="Stop" code="2054"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="13" sound="click.wav" /> + </button> + <button name="Play" code="2053"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="68" sound="click.wav" /> + </button> + <button name="Pause" code="2048"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="12" sound="click.wav" /> + </button> + <button name="Fast Forward" code="2052"> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="86" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="16" sound="cursor.wav" /> + </button> + <button name="Rewind" code="2050"> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="87" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="17" sound="cursor.wav" /> + </button> + <button name="Skip Forward" code="2030"> + <action layer="0" condition="PLAYER" conproperty="DVD" command="ACTION" cmdproperty="91" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="5" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="28" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2005" command="ACTION" cmdproperty="91" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="14" sound="cursor.wav" /> + </button> + <button name="Skip Previous" code="2036"> + <action layer="0" condition="PLAYER" conproperty="DVD" command="ACTION" cmdproperty="92" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="6" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2005" command="ACTION" cmdproperty="92" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="15" sound="cursor.wav" /> + </button> + <button name="1" code="2001"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="37" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="2" code="2002"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="38" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="3" code="2003"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="39" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="4" code="2004"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="40" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="5" code="2005"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="41" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="6" code="2006"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="42" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="7" code="2007"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="43" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="8" code="2008"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="44" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="9" code="2009"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="45" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="0" code="2000"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="25" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="603" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="605" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="606" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="601" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="759" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="6" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="48" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="48" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="88" sound="back.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="*" code="2010"> + <action layer="0" condition="WINDOW" conproperty="1" command="WINDOW" cmdproperty="7700" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="WINDOW" cmdproperty="7701" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="WINDOW" cmdproperty="7701" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7701" command="WINDOW" cmdproperty="7700" sound="click.wav" /> + <action layer="0" condition="PLAYER" conproperty="TV" command="WINDOW" cmdproperty="7701" sound="click.wav" /> + </button> + <button name="#" code="2014"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="19" sound="click.wav" /> + </button> + <button name="Red" code="2011"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9975" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9975" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="18" sound="click.wav" /> + </button> + <button name="Green" code="2046"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9976" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9976" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="26" sound="click.wav" /> + </button> + <button name="Yellow" code="2056"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9977" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9977" sound="click.wav" /> + <action layer="0" condition="FULLSCREEN" conproperty="true" command="ACTION" cmdproperty="119" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="11" sound="click.wav" /> + </button> + <button name="Blue" code="2041"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9978" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9978" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="122" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="19" sound="click.wav" /> + </button> + <button name="RESTOREMP" code="100000"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="123" sound="cursor.wav" /> + </button> + </remote> + <remote family="Hauppauge 34-button remote"> + <button name="Power" code="1061"> + <action layer="0" condition="*" conproperty="-1" command="POWER" cmdproperty="EXIT" sound="back.wav" /> + </button> + <button name="Home" code="1059"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="0" sound="back.wav" /> + </button> + <button name="1" code="1001"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="37" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="2" code="1002"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="38" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="3" code="1003"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="39" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="4" code="1004"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="40" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="5" code="1005"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="41" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="6" code="1006"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="42" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="7" code="1007"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="43" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="8" code="1008"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="44" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="9" code="1009"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="45" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="0" code="1000"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="25" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="603" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="605" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="606" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="601" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="759" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="6" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="48" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="48" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="88" sound="back.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="Back/Exit" code="1031"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="10" sound="back.wav" /> + </button> + <button name="Menu/i" code="1013"> + <action layer="0" condition="FULLSCREEN" conproperty="TRUE" command="ACTION" cmdproperty="24" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="106" sound="click.wav" /> + </button> + <button name="Red" code="1011"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9975" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9975" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="18" sound="click.wav" /> + </button> + <button name="Green" code="1046"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9976" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9976" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="26" sound="click.wav" /> + </button> + <button name="Yellow" code="1056"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9977" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9977" sound="click.wav" /> + <action layer="0" condition="FULLSCREEN" conproperty="true" command="ACTION" cmdproperty="119" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="11" sound="click.wav" /> + </button> + <button name="Blue" code="1041"> + <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9978" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9978" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="122" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="19" sound="click.wav" /> + </button> + <button name="Channel +" code="1032"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="3" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="5" sound="cursor.wav" /> + </button> + <button name="Channel -" code="1033"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="4" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="6" sound="cursor.wav" /> + </button> + <button name="Volume -" code="1017"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="1" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="102" sound="cursor.wav" /> + </button> + <button name="Volume +" code="1016"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="28" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="2" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="103" sound="cursor.wav" /> + </button> + <button name="OK" code="1037"> + <action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="47" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="10" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="7" sound="click.wav" /> + </button> + <button name="Mute" code="1015"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="9982" sound="click.wav" /> + </button> + <button name="Func" code="1012"> + <action layer="0" condition="*" conproperty="-1" command="TOGGLE" cmdproperty="-1" sound="click.wav" /> + </button> + <button name="Fullscreen" code="1060"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="18" sound="click.wav" /> + </button> + <button name="Fast Forward" code="1052"> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="86" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="16" sound="cursor.wav" /> + </button> + <button name="Rewind" code="1050"> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="87" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="17" sound="cursor.wav" /> + </button> + <button name="Record" code="1055"> + <action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="113" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="89" sound="click.wav" /> + </button> + <button name="Stop" code="1054"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="13" sound="click.wav" /> + </button> + <button name="Pause" code="1048"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="12" sound="click.wav" /> + </button> + <button name="Play" code="1053"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="68" sound="click.wav" /> + </button> + <button name="Skip Previous" code="1036"> + <action layer="0" condition="PLAYER" conproperty="DVD" command="ACTION" cmdproperty="92" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="6" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="15" sound="cursor.wav" /> + </button> + <button name="Skip Forward" code="1030"> + <action layer="0" condition="PLAYER" conproperty="DVD" command="ACTION" cmdproperty="91" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="600" command="ACTION" cmdproperty="5" sound="cursor.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="28" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="14" sound="cursor.wav" /> + </button> + <button name="RESTOREMP" code="100000"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="123" sound="cursor.wav" /> + </button> + </remote> + <remote family="Hauppauge 21-button remote"> + <button name="TV" code="15"> + <action layer="0" condition="WINDOW" conproperty="7701" command="WINDOW" cmdproperty="602" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="18" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="1" sound="click.wav" /> + </button> + <button name="Radio" code="12"> + <action layer="0" condition="*" conproperty="-1" command="WINDOW" cmdproperty="30" sound="click.wav" /> + </button> + <button name="Channel +" code="32"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="click.wav" /> + <action layer="2" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9979" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="31" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="95" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="3" sound="click.wav" /> + </button> + <button name="Channel -" code="33"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="click.wav" /> + <action layer="2" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="9980" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="30" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="1" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="2" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="94" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="4" sound="click.wav" /> + </button> + <button name="Volume -" code="17"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="29" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="1" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="102" sound="cursor.wav" /> + </button> + <button name="Volume +" code="16"> + <action layer="1" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="28" sound="click.wav" /> + <action layer="1" condition="*" conproperty="-1" command="ACTION" cmdproperty="2" sound="cursor.wav" /> + <action layer="2" condition="*" conproperty="-1" command="ACTION" cmdproperty="103" sound="cursor.wav" /> + </button> + <button name="Fullscreen" code="46"> + <action layer="0" condition="WINDOW" conproperty="11" command="ACTION" cmdproperty="47" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdproperty="10" sound="back.wav" /> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="105" sound="click.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="7" sound="click.wav" /> + </button> + <button name="Mute" code="13"> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="9982" sound="click.wav" /> + </button> + <button name="Source" code="34"> + <action layer="0" condition="*" conproperty="-1" command="TOGGLE" cmdproperty="-1" sound="click.wav" /> + </button> + <button name="1" code="1"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="37" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="2" code="2"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="38" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="3" code="3"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="39" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="4" code="4"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="40" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="5" code="5"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="41" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="6" code="6"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="42" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="7" code="7"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="43" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="8" code="8"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="44" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="9" code="9"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="45" sound="cursor.wav" /> + <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="0" sound="cursor.wav" /> + </button> + <button name="0" code="0"> + <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="2" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="25" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="603" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="605" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="606" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="501" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="601" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="759" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="6" command="ACTION" cmdproperty="80" sound="click.wav" /> + <action layer="0" condition="WINDOW" conproperty="10" command="ACTION" cmdpr... [truncated message content] |