sto lavorando su un Minix NEO X8-H (media center Android, 4.4.2) e devo inviare il comando HDMI-CEC alla TV: quando la mia app riceve una chiamata che voglio cambiare automaticamente la Sorgente TV sulla sorgente Minix hdmi.Android - invia comandi HDMI CEC a TV - minix - libCEC
In realtà il Minix offre alcune opzioni per abilitare HDMI-CEC e il software del centro multimediale XBMC è segnalato per supportare CEC. Ma solo in "modalità di ricezione" credo: l'utente può comandare il dispositivo Android utilizzando il telecomando TV. Voglio lavorare in modo opposto. Scorro il codice sorgente di XBMC e ho trovato codice molto interessante ma non so se può essermi utile.
Ho trovato il dispositivo seriale ottenere comandi di input HDMI-CEC
/dev/input/event7
Il kernel riferimenti sono posti: "/ sys/devices/virtuale/ingresso/input7 /"
# cat /sys/devices/virtual/input/input7/name
cec_input
questa è una parte di log dmesg:
<5>[ [email protected]] Kernel command line: init=/init console=ttyS0,115200n8 no_console_suspend storage=5 cvbsdrv=0 vdaccfg=0xa007 logo=osd1,loaded,0x15100000,4k2ksmpte,full hdmimode=4k2ksmpte cvbsmode=576cvbs androidboot.firstboot=0 hdmitx=cec0
<4>[ [email protected]] kernel get hdmimode form uboot is 4k2ksmpte
<4>[ [email protected]] hdmitx: cec: Function List: disable, , ,
<4>[ [email protected]] hdmitx: cec: HDMI aml_read_reg32(P_AO_DEBUG_REG0):0x0
<4>[ [email protected]] hdmitx: cec: HDMI hdmi_cec_func_config:0x0
<4>[ [email protected]] hdmitx: cec: CEC not ready
<4>[ [email protected]] hdmitx: cec: CEC init
<4>[ [email protected]] hdmitx: cec: CEC task process
<4>[ [email protected]] hdmitx: cec: hdmitx_device->cec_init_ready:0x1
che dimostra l'effettiva presenza del supporto integrato HDMI-CEC.
Ho trovato libCEC e sono riuscito a eseguire la cross-compilazione utilizzando la toolchain di Android NDK e sono stato in grado di installare "libcec.so" e un client demo binario "cec-client" sul Minix.
Queste sono le opzioni di generazione:
[email protected]:~/Desktop/libcec/libcec-master/build$ cmake ..
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
-- Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
-- Configured features:
-- Pulse-Eight CEC Adapter: no
-- Pulse-Eight CEC Adapter detection: no
-- lockdev support: no
-- xrandr support: no
-- Raspberry Pi support: no
-- TDA995x support: no
-- Exynos support: no
-- Python support: no
-- lib info: compiled on Linux-3.13.0-35-generic, features: P8_USB
-- Configuring done
-- Generating done
-- Build files have been written to: /home/asd/Desktop/libcec/libcec-master/build
So che libcec funziona con un controller HDMI-CEC esterno o, se costruire con funzione di supporto lampone si può gira senza problemi su un Raspi, utilizzando il suo controller video integrato .
Se può funzionare su raspi, deve essere in grado di funzionare su un Minix, credo.
CEC-cliente era un client demo, sviluppato per comunicare con un'interfaccia seriale e in realtà non può comunicare con/dev/input/evet7 a causa di alcuni errori:
[email protected]:/data # cec-client -t p -p 4 /dev/input/event7
== using device type 'playback device'
using HDMI port '4'
CEC Parser created - libCEC version 3.0.0
opening a connection to the CEC adapter...
DEBUG: [ 7] Broadcast (F): osd name set to 'Broadcast'
ERROR: [ 3520] error opening serial port '/dev/input/event7': Invalid argument
ERROR: [ 3521] could not open a connection (try 1)
ERROR: [ 6355] error opening serial port '/dev/input/event7': Too many open files
ERROR: [ 6355] could not open a connection (try 2)
ERROR: [ 8243] error opening serial port '/dev/input/event7': Too many open files
ERROR: [ 8243] could not open a connection (try 3)
ERROR: [ 9501] error opening serial port '/dev/input/event7': Too many open files
ERROR: [ 9501] could not open a connection (try 4)
unable to open the device on port /dev/input/event7
NOTICE: [ 10506] connection opened
Ma per quanto ne so HDMI-CEC utilizzare un protocollo di comunicazione seriale usando il pin 13 del connettore HDMI, quindi anche se "cec-client" è un client demo, deve essere in grado di funzionare correttamente! Come vedi, c'è un problema nel bloccare il dispositivo o qualcosa di simile.
Problemi:
- è possibile inviare il comando CEC tramite Android utilizzando Java?
- se no, qualcuno sa come adattare libCEC/cec-client a lavorare su Minix?
Se modo Java non è possibile non ci sono problemi: la mia app è costruito utilizzando Qt e in realtà sto già usando un paio di Librare condivisa nativa ".so"
Qualcuno ha suggerimenti? Come può farlo?
Come sei andato d'accordo? È qualcosa che devo esaminare molto presto per un progetto su cui sto lavorando. Sono riuscito a farlo funzionare con Linux incorporato ma non ancora per Android. Un rapido ficcanaso e ho trovato questo: http://0x1c3.blogspot.co.uk/2015/09/libcec-compilation-for-android-example.html – WLGfx
@Matt puoi aiutarmi come hai integrato libCEC in Android – PankajAndroid
@Matt Hai trovato una soluzione per controllare il televisore tramite l'hardware Minix? –