Posts by caps!


    KEY_CLEAR durch den libcec-daemon hätte eigentlich klappen sollen (remappen über eventlircd geht nur bei namespace-konformen Tastennamen) - möglich sind alle KEY_* Tasten aus http://lxr.free-electrons.com/source/include/uapi/linux/input.h


    Danke, seahawk1986, daß Du mir weiterhin zu helfen versuchst. Habe mir mal für die Samsung-Return Taste "KEY_EQUAL" (Code13) ausgesucht. Kommt auch im libcec-daemon Log an:

    Code
    DEBUG - Main::onCecLogMessage(123236 [T]>> 01:8a:91
    )
    DEBUG - Main::onCecLogMessage(123236 [D]>> TV (0) -> Recorder 1 (1): vendor remote button down (8A)
    )
    DEBUG - Main::onCecLogMessage(123237 [D]key pressed: return (Samsung) (91)
    )
    DEBUG - Main::onCecKeyPress(Key press: EQUAL for 125ms)
    DEBUG - sent 13

    Beim Aufruf von evtest wird "KEY_EQUAL" auch "announced" (KEY_EQUAL gab's vorher nicht in der Liste):


    Es kommt dennoch nichts bei evtest an!?! Kapier ich nicht. Wo ist der Hund begraben? Wie debugged man sowas?

    Sodala, das mit dem "ComboKey" ist nun wohl tatsächlich kein Problem mehr. Tastenwiederholung funktionieren hier sehr angenehm.

    Leider habe ich es immer noch nicht geschafft, alle FB-Tasten zuzuordnen und per uinput anprechbar zu machen. Mit dem aktuellen libcec-daemon (inkl. Patches von 9000H) reagieren alle Tasten wie gewünscht. Im Log von libcec-daemon werden auch die entsprechenden "Responses" protokolliert:

    Auszug libcec-daemon-log

    Samsung Return:
    DEBUG - Main::onCecLogMessage(18103 [T]>> 01:8a:91
    )
    DEBUG - Main::onCecLogMessage(18103 [D]>> TV (0) -> Recorder 1 (1): vendor remote button down (8A)
    )
    DEBUG - Main::onCecLogMessage(18103 [D]key pressed: return (Samsung) (91)
    )
    DEBUG - Main::onCecKeyPress(Key press: AN_RETURN for 125ms)
    DEBUG - sent 355


    Stop:
    DEBUG - Main::onCecLogMessage(44888 [T]>> 01:42:03
    )
    DEBUG - Main::onCecLogMessage(44888 [D]>> TV (0) -> Recorder 1 (1): deck control (42)
    )


    Play:
    DEBUG - Main::onCecLogMessage(79146 [T]>> 01:41:24
    )
    DEBUG - Main::onCecLogMessage(79146 [D]>> TV (0) -> Recorder 1 (1): play (41)
    )


    Ch. List:
    DEBUG - Main::onCecLogMessage(130279 [T]>> 01:8a:96
    )
    DEBUG - Main::onCecLogMessage(130279 [D]>> TV (0) -> Recorder 1 (1): vendor remote button down (8A)
    )
    DEBUG - Main::onCecLogMessage(130279 [D]key pressed: channels list (Samsung) (96)
    )
    DEBUG - Main::onCecKeyPress(Key press: UNKNOWN for 125ms)

    Leider erkennt uinput (getestet mittels evtest) die Signale AN_RETURN oder UNKOWN nicht und reicht sie deshalb auch nicht weiter. Habe auch mal die Buttons anders gemappt (z.b. CLEAR oder KEY_CLEAR), das funktioniert aber auch nicht. Damit bin ich leider mit meine Latein am Ende... Schade. Die Bedienung ist echt spitze mit der Fernbedienung vom Fernseher. Da muß ich wohl auf kommende libcec(-daemon) Versionen warten.

    Grüße
    caps!

    Hi

    der combo key bug scheint jetzt im libcec git gefixed zu sein libcec issue

    CU
    9000h


    Sehr schön! Mit den Änderungen lassen sich die "Problemtasten" bei mir jetzt direkt per cec-client ansprechen. Endlich gehen auch die Multimedia- und die Samsung RETURN-Taste!

    Leider habe ich (aus Mangel an Zeit im Moment) es nicht geschafft, Deinen libcec-daemon daran anzupassen. Da werden die Tasten leider nicht durchgereicht. Auch mit dem "originalen" libcec-daemon geht's nicht. Aber da kann ich ja am verlängerten Wochenende rumspielen...

    Vielen Dank für Deine Mühen im P8-Forum und das ich davon profitieren kann!
    Grüße
    caps!


    Du musst einfach das Gerät das der libcec-daemon anlegt ps3remote übergeben und das Gerät, das ps3remote anlegt dann eventlircd (über eine udev-Regel).


    Alles klar, das probier ich mal aus.


    Dein Compiler sucht aber unter /usr/include/libcec - also musst du als Include noch das zusätzliche Verzeichnis übergeben oder die Dateien dorthin kopieren wo sie erwartet werden...

    Code
    -I/usr/local/include/libcec


    Das war's, danke!! :)

    Hi,

    da fehlt libcec-dev.

    einfach das ppa einbinden

    Pulse8 ppa

    CU
    9000h


    Wie cool! Jetzt bin ich schon mal einen riesen Schritt weiter. Riesen Dank für Deine libcec-daemon Sourcen! Jetzt funktionieren schon mal die Tasten "GUIDE", "FAV.CH", "CHAN UP", "CHAN DOWN".

    evtest log

    Event: time 1368479183.190434, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 1
    Event: time 1368479183.190437, -------------- SYN_REPORT ------------
    Event: time 1368479183.440214, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 2
    Event: time 1368479183.440215, -------------- SYN_REPORT ------------
    Event: time 1368479183.473213, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 2
    Event: time 1368479183.473214, -------------- SYN_REPORT ------------
    Event: time 1368479183.506212, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 2
    Event: time 1368479183.506214, -------------- SYN_REPORT ------------
    Event: time 1368479183.539212, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 2
    Event: time 1368479183.539213, -------------- SYN_REPORT ------------
    Event: time 1368479183.572213, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 2
    Event: time 1368479183.572214, -------------- SYN_REPORT ------------
    Event: time 1368479183.581051, type 1 (EV_KEY), code 364 (KEY_FAVORITES), value 0
    Event: time 1368479183.581053, -------------- SYN_REPORT ------------
    Event: time 1368479192.703590, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 1
    Event: time 1368479192.703594, -------------- SYN_REPORT ------------
    Event: time 1368479192.953213, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 2
    Event: time 1368479192.953215, -------------- SYN_REPORT ------------
    Event: time 1368479192.986213, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 2
    Event: time 1368479192.986214, -------------- SYN_REPORT ------------
    Event: time 1368479193.019212, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 2
    Event: time 1368479193.019213, -------------- SYN_REPORT ------------
    Event: time 1368479193.052214, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 2
    Event: time 1368479193.052215, -------------- SYN_REPORT ------------
    Event: time 1368479193.085213, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 2
    Event: time 1368479193.085214, -------------- SYN_REPORT ------------
    Event: time 1368479193.088459, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 0
    Event: time 1368479193.088461, -------------- SYN_REPORT ------------
    Event: time 1368479193.744834, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 1
    Event: time 1368479193.744837, -------------- SYN_REPORT ------------
    Event: time 1368479193.994214, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 2
    Event: time 1368479193.994215, -------------- SYN_REPORT ------------
    Event: time 1368479194.027213, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 2
    Event: time 1368479194.027214, -------------- SYN_REPORT ------------
    Event: time 1368479194.060214, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 2
    Event: time 1368479194.060215, -------------- SYN_REPORT ------------
    Event: time 1368479194.093214, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 2
    Event: time 1368479194.093215, -------------- SYN_REPORT ------------
    Event: time 1368479194.126212, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 2
    Event: time 1368479194.126213, -------------- SYN_REPORT ------------
    Event: time 1368479194.139518, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 0
    Event: time 1368479194.139521, -------------- SYN_REPORT ------------
    Event: time 1368479195.894463, type 1 (EV_KEY), code 365 (KEY_EPG), value 1
    Event: time 1368479195.894467, -------------- SYN_REPORT ------------
    Event: time 1368479196.144213, type 1 (EV_KEY), code 365 (KEY_EPG), value 2
    Event: time 1368479196.144215, -------------- SYN_REPORT ------------
    Event: time 1368479196.166519, type 1 (EV_KEY), code 365 (KEY_EPG), value 0
    Event: time 1368479196.166522, -------------- SYN_REPORT ------------
    Event: time 1368479198.631107, type 1 (EV_KEY), code 14 (KEY_BACKSPACE), value 1
    Event: time 1368479198.631110, -------------- SYN_REPORT ------------
    Event: time 1368479198.880213, type 1 (EV_KEY), code 14 (KEY_BACKSPACE), value 2
    Event: time 1368479198.880215, -------------- SYN_REPORT ------------
    Event: time 1368479198.909074, type 1 (EV_KEY), code 14 (KEY_BACKSPACE), value 0
    Event: time 1368479198.909077, -------------- SYN_REPORT ------------


    Leider sind "RETURN", die "INFO"-Taste und die Medien-Tasten "PAUSE", "PLAY", "STOP" und "RECORD". Noch nicht dabei. Aber da kann man vielleicht in der main.cpp etwas nachhelfen. Muß ich jetzt ausprobieren.

    Nochmals Danke an 9000H und seahawk1986!

    Hmm...

    Code
    g++ -c -std=c++0x -g -Wall -I/usr/include/libcec src/main.cpp -o src/main.o
    In file included from src/main.h:2:0,
                     from src/main.cpp:9:
    src/libcec.h:2:17: schwerwiegender Fehler: cec.h: Datei oder Verzeichnis nicht gefunden
    Kompilierung beendet.
    make: *** [src/main.o] Fehler 1


    cec.h ist die von libcec, oder? Die liegt bei mir unter "/usr/local/include/libcec/cec.h" oder eben im libcec-src-Verzeichnis. Muß ich das irgendwo hinkopieren oder in main.cpp einen Pfad angeben? Sorry für die blöden Fragen, aber ich kann kein C++.

    Evtl. könnte das über den VDR gehen, wenn sich das Remote-Plugin an die Parameter aus der setup.conf des VDR hält (hab ich noch nicht ausprobiert).


    Das hatte ich gleich beim ersten Test ausprobiert. Ändert leider nichts...

    Sonst gäbe es glaube ich noch noch die Möglichkeit das das im Quelltext des Plugins zu ändern - müsste repeatfreq in der remote.c sein:


    Das war ne gute Idee, aber leider ändert sich da ebenfalls nichts. Mist... Ich hab mal das hier (einfach ein paar Tausender dran) ausprobiert:


    Spielt überhaupt keine Rolle. :( Es läuft wohl auf eine Änderung am libcec-daemon hinaus. Oder ich schaue mir wirklich mal Dein ps3remote Programm an. Allerdings seh ich da aus Mangel an C++-Kenntnis schwarz. Ich werd mich mal an Andrew Brampton, dem Autor von libcec-daemon, wenden. Wahrscheinlich ist dem allerdings eine Abhängigkeit zum remote-Plugin herzlich egal. Mal sehen... Trotzdem vielen Dank für Deine Hilfe!


    Da ich keine Hardware zum Testen habe ist es das für mich auch ;) Die Idee wäre die automatische Tastenwiederholung des Remote-Plugin zu nutzen, die einsetzt wenn ein Gerät nur die values 1 (wenn die Taste gedrückt wird) und 0 (wenn die Taste losgelassen wird) sendet.


    Sodala, hab das mal eingebaut. Das scheint schon mal viel besser zu funktionieren! Es kommt im Log so an wie von Dir gedacht: Taste drücken -> Value 1, Taste loslassen -> Value 0. Danke für den Code!

    Das remote-Plugin scheint das auch als "Dauerfeuer" zu interpretieren (bis eben Ende per value 0 getriggert wird), nur läuft das ganze dann scheinbar so schnell ab, daß im OSD teilweise 10 Einträge auf einmal übersprungen werden. Könnte man das jetzt wieder am remote-Plugin einstellen/regeln? Evtl. sollte ich mir doch eventlircd angucken...

    Leider werden die Problem-Tasten (inkl. STOP) immer noch nicht angesprochen. Da kommt nix am Device an... :( Hoffe, 9000H kann mir da weiterhelfen...

    Servus,

    konnte gestern leider nicht mehr weitertesten, die Familie wollte dann doch mehr Aufmerksamkeit... Vielen Dank schon mal, daß ihr hier Vorschläge einbringt!

    im upstart /etc/init/eventlircd.conf Script muss unbedingt --repeat-filter angegeben werden sonst filtert eventlircd alle events vom libcec-daemon aus.


    Hmm, auf eventlircd werde ich dann wohl auch umsteigen. Ich wollte erstmal das ganze so am Laufen haben und mich dann um eventlircd kümmern. Aber das scheint ja ein Problem zu lösen. Das teste ich heute Abend mal.


    Jepp sieht man ja "SELECT" Was kommt da wenn du die Tasten drückst was nicht gehen. Evtl. Muß man da was ummappen main.cpp ab Zeile 97 glaub ich


    Da kommt leider bei besagten Tasten (GUIDE, INFO, PRE-CH usw.) leider gar nichts an. Die werden von libcec (oder libcec-daemon?) gar nicht "verwendet"/"gemapped". D.h. die werden nicht an den cec-client weitergegeben sondern sprechen immer noch Funktionen des Fernsehers an. Das war damals mit dem RPi anders. Da wurden die Tasten von XBMC angesprochen.

    Das ist übrigens mein Hauptproblem. Diese Tasten belegbar / von libcec verwendbar machen. Evtl. bringen ja die Änderungen von 9000H was, aber das scheine ich nicht richtig eingepflegt zu haben.

    9000H: Könnest Du mir einen Patch für die Main.cpp und libcec.cpp mit Deinen Änderungen zukommen lassen? Das wäre der Oberknaller. Funktionieren damit nur die Tasten "STOP" und "RETURN" oder lassen sich damit auch die "Problemtasten" einbinden?


    Bei 320 ms Abstand zwischen den Tastendrücken sieht der VDR mit eventlircd -> Lirc Sockel sowieso nur Einzeltastendrücke.

    Was sagt denn die key.duration aus? Weiß man damit, dass eine Taste gedrückt gehalten wurde?
    Hier scheint das ja durchaus auswertbar zu sein: https://github.com/Pulse-Eight/li…comment-8042687

    Wenn das so ist, dass key.duration=0 ein Signal für Taste gedrückt und key.duration > 0 beim Loslassen kommt (sollte man ja mit der Verbose-Option sehen können), wäre für das remote-Plugin ja vermutlich eher so etwas interessant, weil es dann die automatische Tastenwiederholung nutzen kann:


    Das werde ich heute Abend mal ausprobieren, danke. Ist für mich halt "trail&error". Ahnung, was ich da mache, hab ich nicht.

    Man könnte z.B. den libcec-daemon so modifizieren, dass er Tastendrücke mit value 2 wegwirft. Dann springt die Autofeuer-Funktion des remote-Plugins ein (kann man z.B. mit der PS3 Remote beobachten). Oder man setzt ein Programm dazwischen, das zusätzliche Tastendrücke mit dem value 2 generiert.


    Ah, verstehe. Ich hab mal in der Main.cpp aus

    Code
    uinput.send_event(EV_KEY, uinputKey, key.duration == 0 ? 2 : 0);
    Code
    uinput.send_event(EV_KEY, uinputKey, key.duration == 0 ? 1 : 0);

    gemacht. Jetzt ist es ein wenig besser, aber immer noch nicht zufriedenstellend. Leider reichen meine Programmierkenntnisse dafür nicht aus.

    Hi,

    das ist das Problem mit den combo keys siehe libcec git issues oder hier libcec.

    CU
    9000h


    Ah, Du hast ja im p8-Forum fleißig gepostet und einiges dazu beigetragen! Ich hoffe, es macht Dir nichts aus, wenn ich hier mal Deine Anleitung vom anderen Thread poste:

    Ich hab das jetzt mal eingebaut, aber die "STOP"-Taste funktioniert leider immer noch nicht. Allerdings weiß ich nicht, ob ich es an die richtigen Stellen eingefügt habe. Sieht bei mir jetzt so aus:
    src/libcec.cpp:

    src/Main.cpp:

    War das richtig? Scheinbar nicht... ;)


    Wenn du mal die Ausgabe bei gedrückt gehaltener Taste postest, schau ich gerne mal, ob man da ein "Autofeuer" nutzen kann. Dazu müsste der Tastendruck mit dem value 1 beginnen, optional zwischendrin Value 2 liefern und mit einem Value 0 abschließen - in etwa so:

    Hmm, das verstehe ich nicht ganz. Was meinst Du mit "mit dem value 1 beginnen"? Wie "steuere" ich das? Hier mal die Ausgabe bei gedrückter "Down"-Taste:

    Display Spoiler

    vent: time 1368382698.775753, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382698.775757, -------------- SYN_REPORT ------------
    Event: time 1368382699.309577, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382699.309580, -------------- SYN_REPORT ------------
    Event: time 1368382699.636071, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382699.636074, -------------- SYN_REPORT ------------
    Event: time 1368382699.956194, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382699.956197, -------------- SYN_REPORT ------------
    Event: time 1368382700.275580, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382700.275583, -------------- SYN_REPORT ------------
    Event: time 1368382700.600603, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382700.600606, -------------- SYN_REPORT ------------
    Event: time 1368382700.928733, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382700.928737, -------------- SYN_REPORT ------------
    Event: time 1368382701.247663, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382701.247666, -------------- SYN_REPORT ------------
    Event: time 1368382701.566757, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382701.566761, -------------- SYN_REPORT ------------
    Event: time 1368382701.890059, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382701.890062, -------------- SYN_REPORT ------------
    Event: time 1368382702.216128, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382702.216131, -------------- SYN_REPORT ------------
    Event: time 1368382702.547887, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382702.547891, -------------- SYN_REPORT ------------
    Event: time 1368382702.857646, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382702.857649, -------------- SYN_REPORT ------------
    Event: time 1368382703.176788, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382703.176800, -------------- SYN_REPORT ------------
    Event: time 1368382703.511332, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382703.511336, -------------- SYN_REPORT ------------
    Event: time 1368382703.830307, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382703.830310, -------------- SYN_REPORT ------------
    Event: time 1368382704.146928, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382704.146931, -------------- SYN_REPORT ------------
    Event: time 1368382704.464842, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382704.464845, -------------- SYN_REPORT ------------
    Event: time 1368382704.787375, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382704.787378, -------------- SYN_REPORT ------------
    Event: time 1368382705.115136, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382705.115140, -------------- SYN_REPORT ------------
    Event: time 1368382705.434229, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382705.434232, -------------- SYN_REPORT ------------
    Event: time 1368382705.765557, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382705.765567, -------------- SYN_REPORT ------------
    Event: time 1368382706.074622, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382706.074626, -------------- SYN_REPORT ------------
    Event: time 1368382706.409439, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382706.409442, -------------- SYN_REPORT ------------
    Event: time 1368382706.728805, type 1 (EV_KEY), code 108 (KEY_DOWN), value 2
    Event: time 1368382706.728808, -------------- SYN_REPORT ------------

    Hi

    Hast du mal probiert libcec-deamon im verbose mode (-v [ --verbose ]) zu starten um zu sehen ob er die Tasten erkennt?


    Gute Idee avjui, danke. Leider sieht man da in der Ausgabe nicht viel:

    Ausgabe von libcec-daemon

    ~ # libcec-daemon -vvv
    INFO - Opened /dev/uinput
    INFO - Created uinput device
    TRACE - Main::Main()
    TRACE - Main::loop()
    TRACE - Cec::open()
    DEBUG - Main::onCecLogMessage(1045 [D]unregistering all CEC clients)
    DEBUG - Main::onCecLogMessage(1045 [D]Broadcast (F): osd name set to 'Broadcast')
    DEBUG - Main::onCecLogMessage(1047 [D]connection opened, clearing any previous input and waiting for active transmissions to end before starting)
    DEBUG - Main::onCecLogMessage(1048 [D]communication thread started)
    DEBUG - Main::onCecLogMessage(1058 [D]turning controlled mode on)
    DEBUG - Main::onCecLogMessage(1082 [N]connection opened)
    DEBUG - Main::onCecLogMessage(1084 [D]<< Broadcast (F) -> TV (0): POLL)
    DEBUG - Main::onCecLogMessage(1084 [T]<< f0)
    DEBUG - Main::onCecLogMessage(1084 [D]setting the line timeout to 3)
    DEBUG - Main::onCecLogMessage(1085 [D]processor thread started)
    DEBUG - Main::onCecLogMessage(1125 [D]>> POLL sent)
    DEBUG - Main::onCecLogMessage(1125 [D]TV (0): device status changed into 'present')
    DEBUG - Main::onCecLogMessage(1125 [D]<< requesting vendor ID of 'TV' (0))
    DEBUG - Main::onCecLogMessage(1125 [T]<< f0:8c)
    DEBUG - Main::onCecLogMessage(1320 [T]>> 0f:87:00:00:f0)
    DEBUG - Main::onCecLogMessage(1320 [D]>> TV (0) -> Broadcast (F): device vendor id (87))
    DEBUG - Main::onCecLogMessage(1321 [D]TV (0): vendor = Samsung (0000f0))
    DEBUG - Main::onCecLogMessage(1321 [D]expected response received (87: device vendor id))
    DEBUG - Main::onCecLogMessage(1321 [D]replacing the command handler for device 'TV' (0))
    DEBUG - Main::onCecLogMessage(1321 [N]registering new CEC client - v2.1.3)
    DEBUG - Main::onCecLogMessage(1321 [D]detecting logical address for type 'playback device')
    DEBUG - Main::onCecLogMessage(1321 [D]trying logical address 'Playback 1')
    DEBUG - Main::onCecLogMessage(1321 [D]<< Playback 1 (4) -> Playback 1 (4): POLL)
    DEBUG - Main::onCecLogMessage(1321 [T]<< 44)
    DEBUG - Main::onCecLogMessage(1356 [D]CEC transmission - received response - TRANSMIT_FAILED_ACK)
    DEBUG - Main::onCecLogMessage(1356 [T]<< 44)
    DEBUG - Main::onCecLogMessage(1392 [D]CEC transmission - received response - TRANSMIT_FAILED_ACK)
    DEBUG - Main::onCecLogMessage(1392 [D]>> POLL not sent)
    DEBUG - Main::onCecLogMessage(1392 [D]using logical address 'Playback 1')
    DEBUG - Main::onCecLogMessage(1392 [D]Playback 1 (4): device status changed into 'handled by libCEC')
    DEBUG - Main::onCecLogMessage(1392 [D]Playback 1 (4): power status changed from 'unknown' to 'on')
    DEBUG - Main::onCecLogMessage(1392 [D]Playback 1 (4): CEC version 1.4)
    DEBUG - Main::onCecLogMessage(1392 [D]AllocateLogicalAddresses - device '0', type 'playback device', LA '4')
    DEBUG - Main::onCecLogMessage(1392 [D]setting ackmask to 10)
    DEBUG - Main::onCecLogMessage(1398 [D]Playback 1 (4): osd name set to 'VDR CEC')
    DEBUG - Main::onCecLogMessage(1398 [D]Playback 1 (4): menu language set to 'eng')
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - trying to get the physical address via ADL)
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - ADL returned physical address 0000)
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - trying to get the physical address via nvidia driver)
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - nvidia driver returned physical address 0000)
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - trying to get the physical address from the OS)
    DEBUG - Main::onCecLogMessage(1398 [D]GetPhysicalAddress - OS returned physical address 0000)
    DEBUG - Main::onCecLogMessage(1398 [D]SetDevicePhysicalAddress - not setting invalid physical address 0000)
    DEBUG - Main::onCecLogMessage(1398 [N]setting HDMI port to 2 on device TV (0))
    DEBUG - Main::onCecLogMessage(1398 [D]Playback 1 (4): physical address changed from ffff to 2000)
    DEBUG - Main::onCecLogMessage(1398 [D]<< Playback 1 (4) -> broadcast (F): physical adddress 2000)
    DEBUG - Main::onCecLogMessage(1398 [T]<< 4f:84:20:00:04)
    DEBUG - Main::onCecLogMessage(1531 [D]using persisted autonomous mode setting: 'enabled')
    DEBUG - Main::onCecLogMessage(1536 [D]using persisted CEC version setting: '1.4')
    DEBUG - Main::onCecLogMessage(1541 [D]using persisted logical address setting: 'Playback 1')
    DEBUG - Main::onCecLogMessage(1546 [D]using persisted device type setting: 'playback device')
    DEBUG - Main::onCecLogMessage(1551 [D]using persisted logical address mask setting: '910')
    DEBUG - Main::onCecLogMessage(1561 [D]using persisted device name setting: 'VDR CEC')
    DEBUG - Main::onCecLogMessage(1566 [D]using persisted physical address setting: '2000')
    DEBUG - Main::onCecLogMessage(1566 [D]making Playback 1 (4) the active source)
    DEBUG - Main::onCecLogMessage(1566 [D]TV (0): power status changed from 'unknown' to 'in transition from standby to on')
    DEBUG - Main::onCecLogMessage(1566 [D]marking the adapter as active source)
    DEBUG - Main::onCecLogMessage(1571 [N]>> source activated: Playback 1 (4))
    DEBUG - Main::onCecLogMessage(1571 [D]scheduling active source message for 'Playback 1')
    DEBUG - Main::onCecLogMessage(1572 [N]CEC client registered: libCEC version = 2.1.3, client version = 2.1.3, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Playback 1 (4) , base device: TV (0), HDMI port number: 2, physical address: 2.0.0.0, host: i686-pc-linux-gnu, features: 'P8 USB' 'P8 USB detect', git revision: b53bfc2, compiled on: Fri May 10 18:26:48 UTC 2013 by root on Linux 3.2.41-gentoo (i686))
    DEBUG - Main::onCecLogMessage(1572 [D]<< Playback 1 (4) -> TV (0): OSD name 'VDR CEC')
    DEBUG - Main::onCecLogMessage(1572 [T]<< 40:47:56:44:52:20:43:45:43)
    DEBUG - Main::onCecLogMessage(1797 [D]<< requesting power status of 'TV' (0))
    DEBUG - Main::onCecLogMessage(1797 [T]<< 40:8f)
    DEBUG - Main::onCecLogMessage(1946 [T]>> 04:90:00)
    DEBUG - Main::onCecLogMessage(1946 [D]>> TV (0) -> Playback 1 (4): report power status (90))
    DEBUG - Main::onCecLogMessage(1946 [D]TV (0): power status changed from 'in transition from standby to on' to 'on')
    DEBUG - Main::onCecLogMessage(1946 [D]expected response received (90: report power status))
    INFO - Opened /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1
    DEBUG - Main::onCecLogMessage(1946 [D]Playback 1 (4) was already marked as active source)
    DEBUG - Main::onCecLogMessage(1946 [D]sending active source message for 'Playback 1')
    DEBUG - Main::onCecLogMessage(1946 [T]<< 40:04)
    DEBUG - Main::onCecLogMessage(2007 [N]<< Playback 1 (4) -> broadcast (F): active source (2000))
    DEBUG - Main::onCecLogMessage(2007 [T]<< 4f:82:20:00)
    DEBUG - Main::onCecLogMessage(2115 [D]<< Playback 1 (4) -> TV (0): menu state 'activated')
    DEBUG - Main::onCecLogMessage(2115 [T]<< 40:8e:00)
    TRACE - Loop
    DEBUG - Main::onCecLogMessage(2289 [T]>> 04:8d:02)
    DEBUG - Main::onCecLogMessage(2290 [D]>> TV (0) -> Playback 1 (4): menu request (8D))
    DEBUG - Main::onCecLogMessage(2290 [D]<< Playback 1 (4) -> TV (0): menu state 'activated')
    DEBUG - Main::onCecLogMessage(2290 [T]<< 40:8e:00)
    DEBUG - Main::onCecLogMessage(2459 [T]>> 04:1a:01)
    DEBUG - Main::onCecLogMessage(2460 [D]>> TV (0) -> Playback 1 (4): give deck status (1A))
    DEBUG - Main::onCecLogMessage(2460 [D]<< Playback 1 (4) -> TV (0): deck status 'stop')
    DEBUG - Main::onCecLogMessage(2460 [T]<< 40:1b:1a)
    TRACE - Loop
    TRACE - Loop
    TRACE - Loop
    TRACE - Loop
    DEBUG - Main::onCecLogMessage(13678 [T]>> 04:44:00)
    DEBUG - Main::onCecLogMessage(13678 [D]>> TV (0) -> Playback 1 (4): user control pressed (44))
    DEBUG - Main::onCecLogMessage(13678 [D]key pressed: select (0))
    DEBUG - Main::onCecKeyPress(Key press: SELECT for 0ms)
    DEBUG - sent 28
    DEBUG - Main::onCecLogMessage(14063 [T]>> 04:45)
    DEBUG - Main::onCecLogMessage(14063 [D]>> TV (0) -> Playback 1 (4): user control release (45))
    DEBUG - Main::onCecLogMessage(14063 [D]key released: select (0))
    DEBUG - Main::onCecKeyPress(Key press: SELECT for 385ms)

    Müsste da was zu den Tasten auftauchen? Bei den letzten beiden "Meldeblöcke" hab ich mal auf "Enter" gedrückt...


    Hast du mal geschaut was evtest Liefert, wenn du eine Taste einmal drückst und was passiert, wenn du die gedrückt hältst? Soweit ich das mitbekommen habe macht CEC keine Tastenwiederholung sondern kennt nur Einzeltastendrücke - falls es doch ein Unterscheidungskriterium zwischen gedrückt gehalten und einem einzelnen Tastendruck geben sollte, kann man was machen, sonst eher nicht.


    Manche Tasten (z.B. "Up" oder "Down") zeigen per evtest eine Wiederholung, "Enter" jedoch nicht. Die Wiederholrate ist allerdings schon bei evtest so lahm. Na dann bin ich da ja schon mal ein Stück weiter. Am remote-Plugin liegt es nicht... Danke für die Antwort.

    Kann man da bzgl. uinput ewtas "drehen"?

    Guten Abend,

    weil wir grad beim Thema Pulse Eight USB-CEC-Adapter sind (anderer Thread von gda):

    Hab mich diese WE endlich mal damit auseinandergesetzt und hab das Ding nun am laufen. Damit lässt sich der VDR jetzt mit der TV-FB bedienen. Is ja auch (ein) Sinn der Sache. udev-Regel erstellt, libcec & libcec-daemon kompiliert/installiert und am VDR per remote-Plugin angebunden.

    Funktioniert super, nur lassen sich nicht alle Tasten meiner Samsung-TV-FB nutzen!

    Taste INFO: Bringt ein Info-Fenster vom Fernseher.
    Taste GUIDE: Zeigt Fernseher-Meldung "Nicht verfügbar".
    Taste RETURN mach gar nichts.
    Taste PRE-CH schaltet auf TV-Modus des Fernsehers um

    Diese Tasten werden als vom libcec-daemon also gar nicht "in Beschlag" genommen. Man sieht auch keine Reaktion der Tasten, wenn man per

    Code
    evtest /dev/input/libcec-daemon

    testet. Ich hab das ganze mal mit einem Raspberry Pi ausprobiert, natürlich ohne den USB-CEC-Adapter, eben nur über HDMI-Kabel. Der Pi unterstützt das ja ootb. Da sind diese Tasten sehr wohl in XBMC nutzbar.

    1. Hat jemand das gleiche Problem und schon eine Lösung gefunden? So ist das ganze leider nicht so komfortabel nutzbar.

    2. Beim Start des libcec-daemons wird automatisch der Fernseher angeschaltet. Lässt sich dieses Verhalten irgendwie abstellen?

    3. Die Wiederholrate der FB am Fernseher ist gut. Per remote-Plugin am VDR leider sehr langsam. Kann man das irgendwo steuern?

    4. Wenn der libcec-daemon läuft, kann man keiner "Befehle" mehr an den Fernseher per cec-client absetzen. Das Device ist gesperrt. Geht das auch anders? FIFO einbauen?

    Grüße
    caps!

    Hast Recht.

    Code
    ...
    X 2 03 deu deutsch
    X 2 03 fra französisch
    X 3 20 fra DVB Sous-Titre
    X 3 20 deu DVB-Untertitel
    X 4 40 deu Dolby Digital
    X 5 0B deu HD-Video
    X 3 03 deu
    X 3 03 fra
    ...


    Da müssten eigentlich laut EPG drei Tonspuren (inkl. Dolby Digital) gesendet werden. Nur glaube ich nicht, daß das KDG interessiert, wenn ich mich in dem Fall beschwere. Wo doch für die neuesten Homeshopping-Kanäle Bandbreite gespart werden muß!
    Bis jetzt war ich mit dem Kundenservice der Firma sehr zufrieden. Da kann ich schon mal alle fünfe grade sein lassen...

    Grüße
    caps!

    Aha! Danke für den Tipp! In der DolbyDigital-Spur ist die deutsche Audio-Spur enthalten! Das wusste ich nicht. Hab die Audio-Sprachen in den Einstellungen rausgenommen und eben DolbyDigital zugelassen. Jetzt kann ich darauf schalten.

    Vielen Dank! Problem für mich gelöst! Jetzt steht einem Doku-Abend nichts mehr im weg... :)

    Grüße
    caps!

    So, grad eine dieser Aufnahmen mit VLC abgespielt. Tatsächlich: Es gibt zwei Tonspuren, die zweite ist die deutsche. Immerhin...

    Wie kann ich denn nun den VDR dazu bewegen, die Audiokanäle zur Verfügung zu stellen? Liegt es evtl. an dem Eintrag in der channels.conf für arteHD? Ich hätte auch gerne im Live-Betrieb den deutschen Audiokanal.

    Code
    arte HD;Digital Free:114000:C0M256:C:6900:6661=27:6663=fra@3;6662=deu@106:6664;6665=deu,6666=fra:0:11120:61441:10014:0