From: <an...@us...> - 2008-04-10 15:47:24
|
Revision: 1624 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=1624&view=rev Author: and-81 Date: 2008-04-10 08:47:17 -0700 (Thu, 10 Apr 2008) Log Message: ----------- Modified Paths: -------------- trunk/plugins/IR Server Suite/IR Server Plugins/Imon Receiver/Imon Receiver.cs trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon PAD.xml trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs Added Paths: ----------- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Front Panel.xml trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Volume Knob.xml Modified: trunk/plugins/IR Server Suite/IR Server Plugins/Imon Receiver/Imon Receiver.cs =================================================================== --- trunk/plugins/IR Server Suite/IR Server Plugins/Imon Receiver/Imon Receiver.cs 2008-04-10 14:17:58 UTC (rev 1623) +++ trunk/plugins/IR Server Suite/IR Server Plugins/Imon Receiver/Imon Receiver.cs 2008-04-10 15:47:17 UTC (rev 1624) @@ -95,6 +95,9 @@ const uint IMON_PAD_BUTTON = 1000; const uint IMON_MCE_BUTTON = 2000; + const uint IMON_PANEL_BUTTON = 3000; + const uint IMON_VOLUME_UP = 4001; + const uint IMON_VOLUME_DOWN = 4002; static readonly byte[][] SetModeMCE = new byte[][] { new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 }, @@ -438,7 +441,8 @@ { try { - SafeFileHandle deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + //SafeFileHandle deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + SafeFileHandle deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Normal, IntPtr.Zero); int lastError = Marshal.GetLastWin32Error(); if (deviceHandle.IsInvalid) @@ -466,7 +470,8 @@ LoadSettings(); - _deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + //_deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Overlapped, IntPtr.Zero); + _deviceHandle = CreateFile(DevicePath, CreateFileAccessTypes.GenericRead | CreateFileAccessTypes.GenericWrite, CreateFileShares.Read | CreateFileShares.Write, IntPtr.Zero, CreateFileDisposition.OpenExisting, CreateFileAttributes.Normal, IntPtr.Zero); int lastError = Marshal.GetLastWin32Error(); if (_deviceHandle.IsInvalid) @@ -695,6 +700,20 @@ MouseEvent(xSign * xSize, ySign * ySize, right, left); } + else if (dataBytes[7] == 0xEE) // Front panel buttons/volume knob + { + if (dataBytes[3] != 0x01) + { + uint keyCode = IMON_PANEL_BUTTON + dataBytes[3]; + RemoteEvent(keyCode, _remoteToggle != dataBytes[3]); + } + _remoteToggle = dataBytes[3]; + + if (dataBytes[0] == 0x01) + RemoteEvent(IMON_VOLUME_DOWN, true); + if (dataBytes[1] == 0x01) + RemoteEvent(IMON_VOLUME_UP, true); + } } void ReceiveThread() @@ -720,7 +739,12 @@ byte[] dataBytes = new byte[bytesRead]; Marshal.Copy(deviceBufferPtr, dataBytes, 0, bytesRead); - if (dataBytes[0] != 0xFF && dataBytes[0] != 0x00) + // Rubbish data: + // FF, FF, FF, FF, FF, FF, 9F, FF, + // 00, 00, 00, 00, 00, 00, 00, F0, + + if (dataBytes[0] != 0xFF && dataBytes[1] != 0xFF && dataBytes[2] != 0xFF && dataBytes[3] != 0xFF && + dataBytes[0] != 0x00 && dataBytes[1] != 0x00 && dataBytes[2] != 0x00 && dataBytes[3] != 0x00) ProcessInput(dataBytes); } } @@ -745,6 +769,21 @@ void IoControl(uint ioControlCode, IntPtr inBuffer, int inBufferSize, IntPtr outBuffer, int outBufferSize, out int bytesReturned) { + try + { + DeviceIoControl(_deviceHandle, ioControlCode, inBuffer, inBufferSize, outBuffer, outBufferSize, out bytesReturned, IntPtr.Zero); + } + catch + { + if (_deviceHandle != null) + CancelIo(_deviceHandle); + + throw; + } + } + + void IoControlOverlapped(uint ioControlCode, IntPtr inBuffer, int inBufferSize, IntPtr outBuffer, int outBufferSize, out int bytesReturned) + { int lastError; using (WaitHandle waitHandle = new ManualResetEvent(false)) Added: trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Front Panel.xml =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Front Panel.xml (rev 0) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Front Panel.xml 2008-04-10 15:47:17 UTC (rev 1624) @@ -0,0 +1,12 @@ +<?xml version="1.0" standalone="yes"?> +<DocumentElement> + <RemoteTable RawCode="3018" AbstractButton="Up" /> + <RemoteTable RawCode="3019" AbstractButton="Down" /> + <RemoteTable RawCode="3020" AbstractButton="Left" /> + <RemoteTable RawCode="3021" AbstractButton="Right" /> + <RemoteTable RawCode="3022" AbstractButton="OK" /> + <RemoteTable RawCode="3044" AbstractButton="Start" /> + <RemoteTable RawCode="3023" AbstractButton="Back" /> + <RemoteTable RawCode="3045" AbstractButton="Info" /> + <RemoteTable RawCode="3043" AbstractButton="Power" /> +</DocumentElement> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon PAD.xml =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon PAD.xml 2008-04-10 14:17:58 UTC (rev 1623) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon PAD.xml 2008-04-10 15:47:17 UTC (rev 1624) @@ -1,9 +1,5 @@ <?xml version="1.0" standalone="yes"?> <DocumentElement> - <RemoteTable RawCode="?1" AbstractButton="Up" /> - <RemoteTable RawCode="?2" AbstractButton="Down" /> - <RemoteTable RawCode="?3" AbstractButton="Left" /> - <RemoteTable RawCode="?4" AbstractButton="Right" /> <RemoteTable RawCode="1148" AbstractButton="OK" /> <RemoteTable RawCode="1038" AbstractButton="VolumeUp" /> <RemoteTable RawCode="1042" AbstractButton="VolumeDown" /> @@ -11,7 +7,6 @@ <RemoteTable RawCode="1014" AbstractButton="ChannelDown" /> <RemoteTable RawCode="1178" AbstractButton="Start" /> <RemoteTable RawCode="1032" AbstractButton="Back" /> - <RemoteTable RawCode="?5" AbstractButton="Info" /> <RemoteTable RawCode="1218" AbstractButton="Mute" /> <RemoteTable RawCode="1234" AbstractButton="Number0" /> <RemoteTable RawCode="1058" AbstractButton="Number1" /> @@ -33,11 +28,6 @@ <RemoteTable RawCode="1208" AbstractButton="PreviousChapter" /> <RemoteTable RawCode="1002" AbstractButton="Power" /> <RemoteTable RawCode="1016" AbstractButton="Power2" /> - <RemoteTable RawCode="?6" AbstractButton="Teletext" /> - <RemoteTable RawCode="?7" AbstractButton="Red" /> - <RemoteTable RawCode="?8" AbstractButton="Green" /> - <RemoteTable RawCode="?9" AbstractButton="Yellow" /> - <RemoteTable RawCode="?10" AbstractButton="Blue" /> <RemoteTable RawCode="1252" AbstractButton="Clear" /> <RemoteTable RawCode="1034" AbstractButton="Enter" /> <RemoteTable RawCode="1096" AbstractButton="Hash" /> @@ -47,12 +37,8 @@ <RemoteTable RawCode="1200" AbstractButton="Videos" /> <RemoteTable RawCode="1102" AbstractButton="DVD" /> <RemoteTable RawCode="1040" AbstractButton="TV" /> - <RemoteTable RawCode="?11" AbstractButton="Guide" /> - <RemoteTable RawCode="?12" AbstractButton="LiveTV" /> - <RemoteTable RawCode="?13" AbstractButton="Radio" /> - <RemoteTable RawCode="?14" AbstractButton="Print" /> - <RemoteTable RawCode="?15" AbstractButton="RecordedTV" /> <RemoteTable RawCode="1106" AbstractButton="AspectRatio" /> - <RemoteTable RawCode="?16" AbstractButton="Print" /> - <RemoteTable RawCode="?17" AbstractButton="Messenger" /> + <RemoteTable RawCode="1114" AbstractButton="Eject" /> + <RemoteTable RawCode="1002" AbstractButton="Close" /> + <RemoteTable RawCode="1166" AbstractButton="Fullscreen" /> </DocumentElement> \ No newline at end of file Added: trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Volume Knob.xml =================================================================== --- trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Volume Knob.xml (rev 0) +++ trunk/plugins/IR Server Suite/Input Service/Input Service/Abstract Remote Maps/Imon/Imon Volume Knob.xml 2008-04-10 15:47:17 UTC (rev 1624) @@ -0,0 +1,5 @@ +<?xml version="1.0" standalone="yes"?> +<DocumentElement> + <RemoteTable RawCode="4001" AbstractButton="VolumeUp" /> + <RemoteTable RawCode="4002" AbstractButton="VolumeDown" /> +</DocumentElement> \ No newline at end of file Modified: trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs =================================================================== --- trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs 2008-04-10 14:17:58 UTC (rev 1623) +++ trunk/plugins/IR Server Suite/MediaPortal Plugins/MP Control Plugin/InputMapper/InputHandler.cs 2008-04-10 15:47:17 UTC (rev 1624) @@ -324,7 +324,7 @@ Log.Info("{0} / {1} / {2} / {3}", map.Condition, map.ConProperty, map.Command, map.CmdProperty); #endif Action action; - if (map.Sound != string.Empty) + if (map.Sound != string.Empty) // && !g_Player.Playing) MediaPortal.Util.Utils.PlaySound(map.Sound, false, true); if (map.Focus && !GUIGraphicsContext.HasFocus) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |