Bedingte Keybindings?

  • Gelöst: Die Tastenbelegung je nach Aktivität (Videowiedergabe, LiveTV, Radio) konnte anhand des aktiven Fensters in der keyboard adds.xml hinterlegt werden. Genaue Infos in meinen letzten Posts hier im Thread.


    Hallo zusammen,

    Disclaimer: Ich habe schon diverse Stunden mit Recherchen zur Optimierung von Kodi verbracht, es könnten aber natürlich noch mehr sein... Alas, aber da ich eine Familie mit Kids und einen normalen Job habe, bitte ich jetzt einfach mal um Community Hilfe. Mea culpa für meine Unwissenheit!

    "Bedingte Tastenbelegungen"? Ich nenne das jetzt einfach mal so, vielleicht gibt es aber einen besseren Begriff. Jedenfalls soll je nachdem was Kodi gerade tut, ein anderer Befehl bei einer Taste ausgelöst werden. Am Beispiel:

    Ich möchte eine Taste, die egal wo ich bin, die aktuelle Wiedergabe wenn möglich pausiert, ansonsten stoppt und dann zum Homescreen geht:
    F1 -> wenn aktuelle Wiedergabe = Video, führe folgende Befehle aus: Pause, Return, ActivateWindow(Home)
    -> wenn aktuelle Wiedergabe = TV/Radio, führe Befehle aus: Stop, Return, ActivateWindow(Home)

    Außerdem möchte ich auf eine Taste Playlist, bzw. EPG legen, je nachdem ob ich ein Video schaue, oder einen TV Stream:
    F3 -> wenn aktuelle Wiedergabe = Video, öffne Playlist
    -> wenn aktuelle Wiedergabe = TV, öffne tvguide


    Ich rufe erfolgreich mit einem Eintrag in der keyboard adds.xml mein Script auf:
    <[definition=10,0][definition='3','0']keymap[/definition][/definition]>
    <global>
    <keyboard>
    <f1>XBMC.RunScript(C:\Users\<username>\AppData\Roaming\Kodi\addons\script.favourites\home.py)</f1>
    (...)

    Das Script home.py ist primitiv, funktioniert aber zumindest soweit, als dass die drei Befehle abgearbeitet werden:
    import xbmc
    xbmc.executebuiltin('Action(pause)', True)
    xbmc.executebuiltin('Action(back)', True)
    xbmc.executebuiltin('ActivateWindow(Home)', True)


    Mein erster Gedanke war ja, dass ich die Bedingungen an dem aktuellen Fenster festmachen könnte. Aber wenn ich das richtig sehe, ist die Wiedergabe bei Videos, als auch TV-Streams immer fullscreenvideo (12005) und somit kann ich am Fenster nicht ableiten, ob nun ein TV/Radio Stream, oder ein Video läuft.

    Hat jemand eine Idee, Schlagwörter, etc. womit dies umsetzbar wäre und wo ich mich dazu einlesen kann? :)


    Viele Grüße
    :)

    Setup:

    PC:
    Kodi 17.4 zum basteln

    MediaCenter:
    Kodi 17.4, Raspberry 3 mit OSMC
    Flirc + Harmony One
    TVHeadend


    P.s.:
    Weitere Punkte auf der 2Do Liste:
    - Menüeintrag (Longpress) um in einer Staffel einer Serie eine Folge auszuwählen und diese, sowie alle folgenden Episoden in eine Playlist packen.

  • am Fenster nicht ableiten, ob nun ein TV/Radio Stream, oder ein Video läuft.

    Musst du auch nicht, weil du in der [definition=10,0][definition='3','0']keymap[/definition][/definition] für beide Bereiche separate Einträge vorfinden solltest.
    Also einen Fullscreenvideo und einen "irgendwas mit" PVR oder Live-TV.

  • beim normalen einrichten der FB, entweder via keymapEditor - Addon, oder via manuellem erstellen/editieren einer [definition=10,0][definition='3','0']keymap[/definition][/definition], sind neben der global definierbaren Funktionen die Einstellungen an ein derzeit aktives Fenster (filemanager, OSD Teletext, usw.) gebunden.

    Wenn Du aber per FB n python script aufrufst, solltest Du die "normalen" boolean von kodi als condition verwenden können. (für python bin ich aber leider der falsche ansprechpartner.)

    Edit:
    Die boolean die sich für dein Vorhaben anbieten würde weis ich nicht auswendig. (ev. VideoPlayer.Content(parameter))Auch nicht sicher ob und wen ja wie das via pyton geht, und aussehen sollte. Die boolean findest Du jedenfals hier

  • Musst du auch nicht, weil du in der [definition=10,0][definition='3','0']keymap[/definition][/definition] für beide Bereiche separate Einträge vorfinden solltest.Also einen Fullscreenvideo und einen "irgendwas mit" PVR oder Live-TV.

    !!! Da kommen wir der Sache schon sehr viel näher, werde ich mir später mal genauer ansehen!

    <FullscreenLiveTV>
    <FullscreenRadio>

  • Ich fasse noch mal zusammen, was ich gemacht habe:

    Ausgangssituation:
    Die folgenden Logitech Harmony Tasten sind per Flirc auf Keyboard Tasten gelegt:

    Menü = F1
    Exit = F2
    Info = F3
    Guide = F4

    In der Tastaturbelegung von Kodi habe ich nun diese Tasten bei unterschiedlichen Aktion auf unterschiedliche Funktionen gemappt:

    <global>
    <keyboard>
    <f1>Menu</f1>
    <f2>XBMC.RunScript(C:\Users\mtsnoop\AppData\Roaming\Kodi\addons\script.favourites\home.py)</f2>
    <f3>Info</f3>
    <f4>ActivateWindow(VideoPlaylist)</f4>

    <FullscreenLiveTV>
    <keyboard>
    <f1>ActivateWindow(osdaudiosettings)</f1>
    <f1 mod="longpress">PlayerProcessInfo</f1>
    <f2>XBMC.RunScript(C:\Users\mtsnoop\AppData\Roaming\Kodi\addons\script.favourites\homestop.py)</f2>
    <f3>Info</f3>
    <f3 mod="longpress">ActivateWindow(Teletext)</f3>
    <f4>ActivateWindow(pvrosdchannels)</f4>
    <f4 mod="longpress">ActivateWindow(TVGuide)</f4>

    <fullscreenvideo>
    <keyboard>
    <f1>ActivateWindow(osdaudiosettings)</f1>
    <f1 mod="longpress">PlayerProcessInfo</f1>
    <f2>XBMC.RunScript(C:\Users\mtsnoop\AppData\Roaming\Kodi\addons\script.favourites\homepause.py)</f2>
    <f3>Info</f3>
    <f3 mod="longpress">ActivateWindow(movieinformation)</f3>
    <f4>ActivateWindow(VideoPlaylist)</f4>
    <f4 mod="longpress">ActivateWindow(videobookmarks)</f4>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!