欢迎用户登陆
HTPC原动力论坛 » iMC2错误提交与建议 » I2bate版遥控器按键响应过快
11
发表于 2009-12-22 20:13 | 只看该作者
解决此问题有2个方案

1.使用i2自身的易宝支持,不需要运行任何第三方程序或安装驱动,只要插上遥控就可以使用,关闭其它易宝支持程序即可

  如嫌响应速度过高,则修改 InputConfig.xml 中第300行 RepeatDelay="500" 参数将500改为750、1000等,数值越大响应越慢,即可解决问题

2.使用第三方驱动支持,将InputConfig.xml 中第300~354 行删除,则删除易宝支持,这时候需要第三方程序将易宝模拟成键盘消息才可以使用


再次重申

i2是个开放系统不打算以后也不会将配置强加给用户,现在对于易宝的支持只是减轻用户寻找第三方程序的麻烦而已并不是什么强烈灌输,用户可以通过InputConfig.xml轻易增加删除任何基于HID的输入设备,无论是i2当前支持的还是未支持的你都可以找到自己的出路
TOP
12
发表于 2009-12-24 09:50 | 只看该作者
楼上版主的回答太让人兴奋了.非常好!

有个开放的接口比做固定的好.支持.

努力了解 I2 中.

继续摸索中....
灌自己的水帖,让别人说去吧!      古人云:“独乐乐与众乐乐,孰乐?不若众也。”
网络硬盘:HTTP://MEEDIO.QUPAN.CC
个人资料下载中......请稍候 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 99%   
  
TOP
13
发表于 2009-12-24 10:01 | 只看该作者
非常强悍的说明书!!!!
<!--
方案说明
1.根元素
根元素<InputConfig>,支持容纳3种类型的子元素:
<Keyboard>  - 定义与键盘相关的通用设置。该子元素必须定义,且只允许定义一次。
<Device>    - 定义HID输入设备,并且遵循HID规范获取设备的输入信息。
<RawDevice> - 定义HID输入设备,并且从设备的原始输入数据中提取输入信息。

2.<Keyboard>元素
目前<Keyboard>元素只支持为应用程序动作绑定按键组合。通过<ActionMap>子元素定义一组<Action>元素。每一
个<Action>元素的Value属性指定一个代表应用程序动作的常量。其内部容纳一个<VKey>元素,用于定义按键组合。
<VKey>元素的规范见后。

3.<Device>元素
<Device>元素为HID输入设备绑定各个输入对象的功能,所支持功能包括模拟键盘按键、触发应用程序动作、模拟
鼠标移动和鼠标按键、模拟WM_APPCOMMAND消息等。
HID输入对象分为“按钮”和“数值”两类。“按钮”具备“按下”和“松开”两种状态,“数值”输入对象则能提供介于一段
范围内的数值。比如摇杆上的x轴和y轴,通常用[0,255]范围内的一个数字来代表当前轴所处于的位置。精度更高
的摇杆,提供的范围更大,能达到[0,511]甚至[0,1023]。另外一些手柄上的十字方向键,实际上是提供了八个方
向的位置,落在[0,7]的范围内。这些都属于“数值”型输入对象。
<Device>元素必须在最前面容纳一个<MatchList>子元素,其后可以跟随若干个<Usage>子元素。
<MatchList>子元素定义识别输入设备的方式,可以根据硬件的厂商标识、产品标识、修订版本号、UsagePage和
Usage五个条件进行组合匹配。<MatchList>元素容纳一个到多个<Match>子元素,每一个<Match>子元素定义匹配
硬件的一组条件。如果从系统枚举出来的HID设备,与某一个<Match>元素的条件匹配成功,则会用该<Match>所归
属<Device>元素包裹下的各个<Usage>元素中定义的信息来绑定该设备的各个输入对象。
<Usage>元素有一个必须定义Value属性,其类型为32位数值,如0x00010030,代表了HID的UsagePage=0x0001页的
Usage=0x0030对象,根据HID规范(http://www.usb.org/developers/devclass_docs/Hut1_12.pdf),这个对象是
“x轴”。一些常用的Usage值有:
0x00090001 - 按钮1
0x00090002 - 按钮2
...
0x0009FFFF - 按钮65535
0x00010030 - x轴
0x00010031 - y轴
0x00010032 - z轴
0x00010033 - x旋转
0x00010034 - y旋转
0x00010035 - z旋转
0x000200ba - 油门(也是轴)
0x000200bb - 刹车(也是轴)
0x00010039 - 十字方向键

每一个<Usage>元素必须容纳以下几种子元素之一:
<VKey>        - 模拟按键,通常用于“按钮”输入对象。
<AppCommand>  - 模拟产生WM_APPCOMMAND消息,通常用于“按钮”输入对象。
<Action>      - 触发应用程序动作,通常用于“按钮”输入对象。
<MouseButton> - 模拟鼠标按键,通常用于“按钮”输入对象。
<MouseMove>   - 模拟鼠标移动,必须用于“轴”输入对象。
<ButtonEmu>   - 将一个“轴”输入对象模拟成两个按钮对象。
<HatSwitch>   - 将一个十字方向键输入对象模拟成上下左右四个按钮对象。

<VKey>元素
必备属性:
Value          - 指定一个VK_开头的常量,或者一个数字常量,用来代表按键的代码。
可选属性:
Alt            - 为true标识同时按下ALT键。缺省为false。
Ctrl           - 为true标识同时按下CTRL键。缺省为false。
Shift          - 为true标识同时按下SHIFT键。缺省为false。
Win            - 为true标识同时按下WIN键。缺省为false。
特殊属性:
RepeatDelay    - 按下按钮不放,持续一定时间后将开始按键自动重复。RepeatDelay用于指定这个时间。单位为
                 毫秒。该属性只在父元素为<Usage>时有效。缺省情况下没有按键自动重复功能。
RepeatDuration - 两次按键自动重复的间隔时间,单位为毫秒。该属性只在父元素为<Usage>时有效。缺省情况下
                 没有按键自动重复功能。

<AppCommand>元素
必备属性:
Value          - 指定一个APPCOMMAND_开头的常量,或者一个数字常量。如APPCOMMAND_MEDIA_FAST_FORWARD。
特殊属性:
RepeatDelay    - 按下按钮不放,持续一定时间后将开始按键自动重复。RepeatDelay用于指定这个时间。单位为
                 毫秒。该属性只在父元素为<Usage>时有效。缺省情况下没有按键自动重复功能。
RepeatDuration - 两次按键自动重复的间隔时间,单位为毫秒。该属性只在父元素为<Usage>时有效。缺省没有按键自动重复功能。

<Action>元素
必备属性:
Value          - 指定一个A_开头的常量,或者一个数字常量。如A_IMCE_CONTEXTMENU。
特殊属性:
RepeatDelay    - 按下按钮不放,持续一定时间后将开始按键自动重复。RepeatDelay用于指定这个时间。单位为
                 毫秒。该属性只在父元素为<Usage>时有效。缺省情况下没有按键自动重复功能。
RepeatDuration - 两次按键自动重复的间隔时间,单位为毫秒。该属性只在父元素为<Usage>时有效。缺省没有按键自动重复功能。

<MouseButton>元素
必备属性:
Value          - 必须为VK_LBUTTON、VK_RBUTTON、VK_MBUTTON、VK_XBUTTON1或VK_XBUTTON2其一。分别对应鼠标
                 的左、右、中、X1和X2按键。

<MouseMove>元素
用“轴”类型的输入信息控制鼠标移动,其父元素必须是<Usage>,并且Value所对应的输入对象应该是“轴”类型。另
外对应“轴”还有一个“死区”的概念。轴通常有左(上)、中、右(下)3个位置。有些摇杆,即使轴处于中间位置时,也
会产生一些围绕中心点两边抖动的数据。这些抖动的幅度通常很小,可以忽略不计。死区就是用来定义这个一个范
围,当报告的数值落在该范围时,忽略不计,并且认为该轴仍处于中间位置。
必备属性:
Axis           - 指定模拟鼠标的x轴或y轴。
DeadZoneStart  - 指定轴的“死区”范围的开始值。数值取决于特定输入对象所能产生的范围,和抖动范围。
DeadZoneEnd    - 指定轴的“死区”范围的结束值。数值取决于特定输入对象所能产生的范围,和抖动范围。
Speed          - 鼠标移动速度。通常取[5,15]范围内的数值。

<ButtonEmu>元素
把“轴”类型的输入信息模拟成两个按钮。当轴处于左(上)位置时,表示按钮1按下。当轴处于右(下)位置时,表示
按钮2按下。当轴处于中间位置时,表示两个按钮都松开。
<ButtonEmu>本身用RepeatDelay属性和RepeatDuration属性来决定模拟出来的两个按钮是否支持自动按键重复,此
外必须依次容纳<Near>和<Far>两个子元素,分别代表模拟的按钮1和按钮2。<Near>或<Far>子元素又可以包裹
<VKey>、<AppCommand>、<Action>、<MouseButton>这四种元素中的一种,用来定义所模拟出来按钮的功能。

<HatSwitch>元素
只能用于0x00010039即十字方向键输入对象上,将其模拟成左右上下四个按钮。依次用<Left>、<Right>、<Up>、
<Down>子元素定义,每一个代表方向的子元素又可以包裹<VKey>、<AppCommand>、<Action>、<MouseButton>这四
种元素中的一种,用来定义所模拟出来按钮的功能。

4.<RawDevice>元素
属于比较特殊的一种使用方式。目前只发现盛大易宝遥控需要用这种方式来支持。

5.VK_常量
        VK_BACK                   Backspace
        VK_TAB                    Tab
        VK_RETURN                 回车
        VK_SHIFT                  Shift
        VK_CONTROL                Ctrl
        VK_MENU                   Alt
        VK_ESCAPE                 Escape
        VK_SPACE                  空格
        VK_PRIOR                  Page Up
        VK_NEXT                   Page Down
        VK_END                    End
        VK_HOME                   Home

        VK_LEFT                   左
        VK_UP                     上
        VK_RIGHT                  右
        VK_DOWN                   下

        VK_INSERT                 Insert
        VK_DELETE                 Delete

        VK_LWIN                   Windows键(左)
        VK_RWIN                   Windows键(右)
        VK_APPS                   快捷菜单键

        VK_NUMPAD0                小键盘0
        VK_NUMPAD1                小键盘1
        VK_NUMPAD2                小键盘2
        VK_NUMPAD3                小键盘3
        VK_NUMPAD4                小键盘4
        VK_NUMPAD5                小键盘5
        VK_NUMPAD6                小键盘6
        VK_NUMPAD7                小键盘7
        VK_NUMPAD8                小键盘8
        VK_NUMPAD9                小键盘9
        VK_MULTIPLY               小键盘*
        VK_ADD                    小键盘+
        VK_SEPARATOR              小键盘-
        VK_SUBTRACT               小键盘-
        VK_DECIMAL                小键盘.
        VK_DIVIDE                 小键盘/

        VK_F1
        VK_F2
        VK_F3
        VK_F4
        VK_F5
        VK_F6
        VK_F7
        VK_F8
        VK_F9
        VK_F10
        VK_F11
        VK_F12

        VK_NUMLOCK                Num Lock
        VK_SCROLL                 Scroll Lock

        VK_BROWSER_BACK           浏览器后退
        VK_BROWSER_FORWARD        浏览器前进
        VK_BROWSER_REFRESH        浏览器刷新
        VK_BROWSER_STOP           浏览器停止
        VK_BROWSER_SEARCH         浏览器搜索
        VK_BROWSER_FAVORITES      浏览器收藏
        VK_BROWSER_HOME           浏览器主页

        VK_VOLUME_MUTE            静音
        VK_VOLUME_DOWN            减小音量
        VK_VOLUME_UP              增大音量
        VK_MEDIA_NEXT_TRACK       下一首
        VK_MEDIA_PREV_TRACK       上一首
        VK_MEDIA_STOP             停止
        VK_MEDIA_PLAY_PAUSE       播放/暂停
        VK_LAUNCH_MAIL            邮件程序
        VK_LAUNCH_MEDIA_SELECT
        VK_LAUNCH_APP1            自定义程序1
        VK_LAUNCH_APP2            自定义程序2

6.APPCOMMAND_常量
完全被A_常量覆盖,含义相同,只需把A_替换为APPCOMMAND_。(A_IMCE是IMC2专属动作,没有对应的APPCOMMAND_)

7.A_常量
        A_IMCE_MENU               菜单
        A_IMCE_CONTEXTMENU        快捷菜单
        A_IMCE_CHANNEL_SWITCH     返回上一频道
        A_IMCE_TOGGLE_FULLSCREEN  切换全屏和窗口模式
        A_IMCE_LEFT               左
        A_IMCE_RIGHT              右
        A_IMCE_UP                 上
        A_IMCE_DOWN               下
        A_IMCE_CUSTOM1            红
        A_IMCE_CUSTOM2            绿
        A_IMCE_CUSTOM3            黄
        A_IMCE_CUSTOM4            蓝
        A_IMCE_OK                 确认
        A_IMCE_DVD                DVD动作(菜单)
        A_BROWSER_BACKWARD        浏览器后退
        A_BROWSER_FORWARD         浏览器前进
        A_BROWSER_REFRESH         浏览器刷新
        A_BROWSER_STOP            浏览器停止
        A_BROWSER_SEARCH          浏览器搜索
        A_BROWSER_FAVORITES       浏览器收藏
        A_BROWSER_HOME            浏览器主页
        A_VOLUME_MUTE             静音
        A_VOLUME_DOWN             减小音量
        A_VOLUME_UP               增大音量
        A_MEDIA_NEXTTRACK         下一首
        A_MEDIA_PREVIOUSTRACK     上一首
        A_MEDIA_STOP              停止
        A_MEDIA_PLAY_PAUSE        播放/暂停
        A_LAUNCH_MAIL             邮件程序
        A_LAUNCH_MEDIA_SELECT
        A_LAUNCH_APP1             自定义程序1
        A_LAUNCH_APP2             自定义程序2
        A_BASS_DOWN
        A_BASS_BOOST
        A_BASS_UP
        A_TREBLE_DOWN
        A_TREBLE_UP
        A_MICROPHONE_VOLUME_MUTE
        A_MICROPHONE_VOLUME_DOWN
        A_MICROPHONE_VOLUME_UP
        A_HELP
        A_FIND
        A_NEW
        A_OPEN
        A_CLOSE
        A_SAVE
        A_PRINT
        A_UNDO
        A_REDO
        A_COPY
        A_CUT
        A_PASTE
        A_REPLY_TO_MAIL
        A_FORWARD_MAIL
        A_SEND_MAIL
        A_SPELL_CHECK
        A_DICTATE_OR_COMMAND_CONTROL_TOGGLE
        A_MIC_ON_OFF_TOGGLE
        A_CORRECTION_LIST
        A_MEDIA_PLAY              播放
        A_MEDIA_PAUSE             暂停
        A_MEDIA_RECORD            录制
        A_MEDIA_FAST_FORWARD      快进
        A_MEDIA_REWIND            快退
        A_MEDIA_CHANNEL_UP        频道加
        A_MEDIA_CHANNEL_DOWN      频道减
        A_DELETE
        A_DWM_FLIP3D
-->
灌自己的水帖,让别人说去吧!      古人云:“独乐乐与众乐乐,孰乐?不若众也。”
网络硬盘:HTTP://MEEDIO.QUPAN.CC
个人资料下载中......请稍候 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 99%   
  
TOP
14
发表于 2009-12-25 22:38 | 只看该作者
解决此问题有2个方案

1.使用i2自身的易宝支持,不需要运行任何第三方程序或安装驱动,只要插上遥控就可以使用,关闭其它易宝支持程序即可

  如嫌响应速度过高,则修改 InputConfig.xml 中第300行 RepeatDelay= ...
ken19 发表于 2009-12-22 20:13
I2的开发者应该明白由于目前可以说没有一款完美的媒体中心软件,因此很多HTPC的用户都是装几个不同的媒体中心或者播放软件备用的,如果用退出驱动程序的方式,一旦用户还要使用其它软件就显得不是很方便了,特别是有些可能还要重新启动系统。

修改配置文件不失为一个方法,但是这种方法对于大多数人来说是有风险的,如果能增加一个开关,何乐而不为呢?
每一天都是灿烂的笑容,每一天都是灿烂的阳光。
TOP
15
发表于 2009-12-27 17:40 | 只看该作者
困扰我多时的问题终于解决了~!~!~~感谢分享!~!~!
TOP
16
发表于 2009-12-28 10:20 | 只看该作者
I2的开发者应该明白由于目前可以说没有一款完美的媒体中心软件,因此很多HTPC的用户都是装几个不同的媒体中心或者播放软件备用的,如果用退出驱动程序的方式,一旦用户还要使用其它软件就显得不是很方便了,特别 ...
长江一号 发表于 2009-12-25 22:38
是会有开关的,为了由用户自定义i2所不兼容的遥控和键值配置,这个工具在制作之中........

i2因为不指定设备,所以它兼容无限的设备,这样就无法实现挂个设备图然后点击按钮来设置操作,比标定设备的方案复杂很多.....
TOP
17
发表于 2009-12-28 23:39 | 只看该作者
是会有开关的,为了由用户自定义i2所不兼容的遥控和键值配置,这个工具在制作之中........

i2因为不指定设备,所以它兼容无限的设备,这样就无法实现挂个设备图然后点击按钮来设置操作,比标定设备的方案复 ...
ken19 发表于 2009-12-28 10:20
呵呵,是的,所以选择做一个支持不同遥控器的驱动等于选择了一个噩梦,而且不但对开发人员是噩梦,对使用都也是噩梦
每一天都是灿烂的笑容,每一天都是灿烂的阳光。
TOP
18
发表于 2009-12-29 12:53 | 只看该作者
培养我们成为“兼职软件工程师”。哈哈

开个玩笑。
灌自己的水帖,让别人说去吧!      古人云:“独乐乐与众乐乐,孰乐?不若众也。”
网络硬盘:HTTP://MEEDIO.QUPAN.CC
个人资料下载中......请稍候 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 99%   
  
TOP
19
发表于 2010-1-3 09:38 | 只看该作者
同上问题解决
TOP
20
发表于 2010-1-6 08:27 | 只看该作者
是会有开关的,为了由用户自定义i2所不兼容的遥控和键值配置,这个工具在制作之中........

i2因为不指定设备,所以它兼容无限的设备,这样就无法实现挂个设备图然后点击按钮来设置操作,比标定设备的方案复 ...
ken19 发表于 2009-12-28 10:20
期待这个功能得到实现,其实现在已很好了,用girder的IF功能来配合I2本身的遥控支持,也能达到完美的效果
TOP