[Finished] - [MP1-4795] Add keyboard support to HID handler | Page 5

Discussion in 'Area 51 - Testing Area' started by Stéphane Lenclud, April 29, 2016.

  1. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    That's intended. This version is purposely leaving the legacy keyboard handler on by default.
    This is what it looks like in the configuration after installation:

    upload_2016-10-10_21-40-39.png



    To enable it you need to tick that new option and change the profile to "full". The tool tip message explains that and the documentation should be updated accordingly too.

    Yes that would be nice to have but that's slightly outside the scope of those changes.
    I'll possibly implement that in the next release.

    That's provided by leaving the legacy keyboard handler as default. If you need full compatibility with plug-ins just don't use HID keyboard.
    My plan for plug-ins to be able to take advantage of HID has been explained multiple times above in this thread.
     
    • Thank You! Thank You! x 1
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    I would say it is ready for master. It does not break anything in its default configuration and provides plenty of new features if you do use it.
    It's also a first step for further rework and consolidation. It's important to get this out-of-the-door in the main release so that we can get more and more users using it and providing feedback to keep improving it.

    See the plan as described here and quoted below:
     
    • Like Like x 2
  4. Rick164
    • Super User

    Rick164 Super User

    Joined:
    January 7, 2006
    Messages:
    1,335
    Likes Received:
    918
    Ratings:
    +1,359 / 0
    Home Country:
    Netherlands Netherlands
    Show System Specs
    The tooltip below would suggest it might no longer work at all the legacy way as that is why I assumed it required HID setup :)

    If the users installs it and doesn't check config it might not work as before or only if they decided they decide to go the new HID keyboard route they might need to re-do any custom key mappings?

    keyboard_tooltip.PNG

    When I kept the HID keyboard option off it didn't work in the plugins as the key event didn't get triggered any more, so tried both with HID keyboard on and legacy approach.
    Will re-test again just to be sure :)

    // Update

    Disabled HID and remove my old keymap from previous testing just to be sure and indeed plugins work fine so long as you keep the HID keyboard setting off.
    Know that we talked about this a couple of times but didn't know you already added legacy support (thought it was undecided yet).

    This might create some problems for plugins if the user decide to enable it and find that it no longer processes key events but we would need more testing as I only know of the few which are maintained here that use it.
     
    Last edited: October 10, 2016
    • Like Like x 1
    • Thank You! Thank You! x 1
  5. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    Only if they enable HID keyboard will legacy keyboard be disabled.
    That red warning is confusing. I'll change that and disable the "Keys and Sounds" panel if HID Keyboard is enabled.
     
    • Thank You! Thank You! x 2
  6. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    Thanks for the feedback again guys. Here is what I came up with:

    upload_2016-10-11_1-10-3.png

    When HID Keyboard is enabled, legacy keyboard section is disabled.
    I also rephrased the deprecated label.
    New build provided.
     
    Last edited: October 11, 2016
    • Thank You! Thank You! x 2
  7. Rick164
    • Super User

    Rick164 Super User

    Joined:
    January 7, 2006
    Messages:
    1,335
    Likes Received:
    918
    Ratings:
    +1,359 / 0
    Home Country:
    Netherlands Netherlands
    Show System Specs
    Perfect (y)

    With HID keyboard all the regular commands worked as they did before just with a lot more control and options, liking the way you can create multiple profiles and have all of them combined in one XML (easier to backup or share as well).

    For 1.16 we might need to test some of the internals (TV / EPG etc..) or the stock plugins that ship with it by default with both legacy (keys and sounds) and HID keyboard so would be great if we can get some testers for this before merge or indeed in pre-release as you do get a lot more feedback that way :)
     
    • Thank You! Thank You! x 2
  8. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    Actually each profile is stored in a dedicated XML file.
    However one profile can contain mapping for Keyboard, Remote, Gamepad and more... That's probably what you meant.

    Indeed we need more testers. I'm sure there will be bugs or differences with HID in some situations since our keyboard handling is quite intricate.
    Hopefully most of those bugs we should be able to fix by changing the configuration.
    They should also not be seen as show stopper. If an obscure key does not work in some situation we should still contribute this to master as long as the legacy keys work the same.
    Improvements and consolidation of the HID Keyboard itself will come over several releases. We can't get everything perfect on the first try.
     
    • Agree Agree x 1
  9. Rick164
    • Super User

    Rick164 Super User

    Joined:
    January 7, 2006
    Messages:
    1,335
    Likes Received:
    918
    Ratings:
    +1,359 / 0
    Home Country:
    Netherlands Netherlands
    Show System Specs
    Yep meant one profile for multiple devices :)
     
    • Like Like x 1
  10. te3hpurp
    • Team MediaPortal

    te3hpurp Retired Team Member

    Joined:
    September 23, 2008
    Messages:
    898
    Likes Received:
    180
    Gender:
    Male
    Occupation:
    Senior Software Architect
    Location:
    Rovaniemi
    Ratings:
    +223 / 0
    Home Country:
    Finland Finland
    Show System Specs
    Hi.

    Im now testing 1.16 pre, and trying hid keyboard with full profile. I made few mappings for myself, for usinf up,down,left,right in teletex to move next,prev page and subpage, but I cannot get numbers to work with fullscreen teletex

    Br
     
    • Thank You! Thank You! x 1
  11. Stéphane Lenclud
    • Team MediaPortal

    Stéphane Lenclud Development Group

    Joined:
    April 29, 2013
    Messages:
    2,559
    Likes Received:
    652
    Gender:
    Male
    Ratings:
    +1,265 / 8
    Home Country:
    Germany Germany
    Show System Specs
    @te3hpurp Thanks a lot for the testing and feedback.
    It turns out you can fix that by adding the missing entries to your XML.
    I'll make sure it reaches the release.
    The missing entries are shown below in red:
    Show Spoiler

    <button code="D0" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="48" cmdkeycode="0" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="6" 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="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="603" command="ACTION" cmdproperty="80" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="3" command="ACTION" cmdproperty="80" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="58" sound="cursor.wav" />
    </button>

    <button code="D1" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="1" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="1" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="49" cmdkeycode="1" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="37" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="59" sound="cursor.wav" />
    </button>
    <button code="D2" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="2" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="2" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="50" cmdkeycode="2" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="38" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="3" command="ACTION" cmdproperty="81" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="60" sound="cursor.wav" />

    </button>
    <button code="D3" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="3" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="3" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="51" cmdkeycode="3" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="39" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="3" command="ACTION" cmdproperty="82" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="61" sound="cursor.wav" />
    </button>
    <button code="D4" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="4" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="4" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="52" cmdkeycode="4" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="40" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="62" sound="cursor.wav" />
    </button>
    <button code="D5" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="5" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="5" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="53" cmdkeycode="5" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="41" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="63" sound="cursor.wav" />
    </button>
    <button code="D6" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="6" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="6" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="54" cmdkeycode="6" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="42" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="64" sound="cursor.wav" />
    </button>
    <button code="D7" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="7" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="7" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="55" cmdkeycode="7" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="43" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="65" sound="cursor.wav" />
    </button>
    <button code="D8" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="8" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="8" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="56" cmdkeycode="8" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="44" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="66" sound="cursor.wav" />
    </button>
    <button code="D9" repeat="true">
    <action layer="0" condition="WINDOW" conproperty="602" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="9" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7700" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="9" sound="click.wav" />
    <action layer="0" condition="WINDOW" conproperty="7701" command="ACTION" cmdproperty="93" cmdkeychar="57" cmdkeycode="9" sound="click.wav" />

    <action layer="0" condition="WINDOW" conproperty="2007" command="ACTION" cmdproperty="45" sound="click.wav" />
    <action layer="0" condition="*" conproperty="-1" command="ACTION" cmdproperty="67" sound="cursor.wav" />
    </button>



    It's actually fixing both teletext page selection and channel zapping.
     
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!