libCEC e plugin-remote
Moderatori: ragno, tapino, alez, zulu, davidea
Re: libCEC e plugin-remote
Ho provato ad installare il tutto:
la libreria libCEC si puo' instalare dal repository pulse-eight semplicemente lanciando uno script. Altrimenti c'e' la possibilita' di installare i sorgenti della versione 2.0.3. per yavdr: ho provato entrambe le cose.
Quello che non sono riuscito a compilare e' libcec-daemon, anche con la patch di morfsta la compilazione genera decine di errori. Al momento sono arenato e passo.
Comunque da quello che ho capito XBMC gestisce il CEC tramite libCEC in modo nativo, linkandola all'uopo. Per vdr e' necessario compilare ed utilizzare libcec-daemon che s'aggancia a lircd come irmp.
ciao
la libreria libCEC si puo' instalare dal repository pulse-eight semplicemente lanciando uno script. Altrimenti c'e' la possibilita' di installare i sorgenti della versione 2.0.3. per yavdr: ho provato entrambe le cose.
Quello che non sono riuscito a compilare e' libcec-daemon, anche con la patch di morfsta la compilazione genera decine di errori. Al momento sono arenato e passo.
Comunque da quello che ho capito XBMC gestisce il CEC tramite libCEC in modo nativo, linkandola all'uopo. Per vdr e' necessario compilare ed utilizzare libcec-daemon che s'aggancia a lircd come irmp.
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
Ma c'e' qualcuno che sia riuscito a compilare libcec-daemon?
ciao
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
Io si e fatte anche qualche provaragno ha scritto:Ma c'e' qualcuno che sia riuscito a compilare libcec-daemon?
ciao
ma senza dispositivo cec non mi restituisce nessun comando
EDIT:
hai installato liblog4cplus-dev ??
Re: libCEC e plugin-remote
@unixer: build da tar ball perche' sotto natty non esiste il pacchetto.
Per il resto ho vari errori nella compilazione dei sorgenti:
La sintassi del C++ e' abbastanza ostica rispetto al C, e non mi sbatto piu' di tanto. Forse non ho applicato correttamente la patch di Morfsta.
ciao
p.s. gcc 4.5.2
Per il resto ho vari errori nella compilazione dei sorgenti:
Codice: Seleziona tutto
src/libcec.cpp: In constructor ‘Cec::Cec(const char*, CecCallback*)’:
src/libcec.cpp:132:13: error: no match for ‘operator==’ in ‘((Cec*)this)->Cec::cec == 0’
src/libcec.cpp:132:13: note: candidates are: operator==(int, int) <built-in>
/usr/include/c++/4.5/bits/random.h:3360:3: note: bool std::operator==(const std::bernoulli_distribution&, const std::bernoulli_distribution&)
src/libcec.cpp: In member function ‘void Cec::open()’:
src/libcec.cpp:144:2: error: no match for ‘operator!=’ in ‘((Cec*)this)->Cec::cec != 0’
src/libcec.cpp:144:2: note: candidates are: operator!=(int, int) <built-in>
/usr/include/c++/4.5/bits/random.h:3369:3: note: bool std::operator!=(const std::bernoulli_distribution&, const std::bernoulli_distribution&)
make: *** [src/libcec.o] Errore 1
ciao
p.s. gcc 4.5.2
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
Mi daresti il link della patchragno ha scritto:@unixer: build da tar ball perche' sotto natty non esiste il pacchetto.
Per il resto ho vari errori nella compilazione dei sorgenti:
La sintassi del C++ e' abbastanza ostica rispetto al C, e non mi sbatto piu' di tanto. Forse non ho applicato correttamente la patch di Morfsta.Codice: Seleziona tutto
src/libcec.cpp: In constructor ‘Cec::Cec(const char*, CecCallback*)’: src/libcec.cpp:132:13: error: no match for ‘operator==’ in ‘((Cec*)this)->Cec::cec == 0’ src/libcec.cpp:132:13: note: candidates are: operator==(int, int) <built-in> /usr/include/c++/4.5/bits/random.h:3360:3: note: bool std::operator==(const std::bernoulli_distribution&, const std::bernoulli_distribution&) src/libcec.cpp: In member function ‘void Cec::open()’: src/libcec.cpp:144:2: error: no match for ‘operator!=’ in ‘((Cec*)this)->Cec::cec != 0’ src/libcec.cpp:144:2: note: candidates are: operator!=(int, int) <built-in> /usr/include/c++/4.5/bits/random.h:3369:3: note: bool std::operator!=(const std::bernoulli_distribution&, const std::bernoulli_distribution&) make: *** [src/libcec.o] Errore 1
ciao
p.s. gcc 4.5.2
grazie
per il resto io lo faccio con la sifbox
gcc 4.7.2
prima di compilare il daemon
compilo i pacchetti necessari
log4cplus boost libcec
Della libcec metto le 2.0.5
di log4cplus 1.1.0
su Linux Mint 13.0 il pacchetto c'è
liblog4cplus-dev - C++ logging API modeled after the Java log4j API - development library
Magari su natty ha un altro nome
o magari prova a compilarti prima quel pacchetto
Edit
ho provato questa
http://forums.pulse-eight.com/yaf_posts ... x#post5050
ma mi da errore nell'applicazione
Codice: Seleziona tutto
patch: **** malformed patch at line 5: // Map of control codes to Strings
Re: libCEC e plugin-remote
Vedo che l'hai trovataunixer ha scritto:
Mi daresti il link della patch
grazie
per il resto io lo faccio con la sifbox
gcc 4.7.2
prima di compilare il daemon
compilo i pacchetti necessari
log4cplus boost libcec
Della libcec metto le 2.0.5
di log4cplus 1.1.0
su Linux Mint 13.0 il pacchetto c'è
liblog4cplus-dev - C++ logging API modeled after the Java log4j API - development library
Magari su natty ha un altro nome
o magari prova a compilarti prima quel pacchetto
Edit
ho provato questa
http://forums.pulse-eight.com/yaf_posts ... x#post5050
ma mi da errore nell'applicazionedomani magari prova a farla a manoCodice: Seleziona tutto
patch: **** malformed patch at line 5: // Map of control codes to Strings
Anch'io con la patch ho avuto lo stesso errore qundi l'ho applicata a mano...
Riguardo la compilazione:
libcec installata da repository pulse-eight tramite script (sempre nel thread segnalato).
lliblog4cplus-dev compilata ed installata da tarball perche il pacchetto sotto natty non esiste.
Tentando la compilazione di libcec-daemon ottengo sempre quegli orrori (errori).
ciao e grazie
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
E senza la patch ti compila ???
EDIT:
se applico la patch a manoo
ecco
gli errori
EDIT:
se applico la patch a manoo
ecco
gli errori
Codice: Seleziona tutto
/root/openbricks/build/build.i386.eglibc/toolchain/bin/i686-openbricks-linux-gnu-g++ -c -std=c++0x -g -Wall src/main.cpp -o src/main.o
/root/openbricks/build/build.i386.eglibc/toolchain/bin/i686-openbricks-linux-gnu-g++ -c -std=c++0x -g -Wall src/uinput.cpp -o src/uinput.o
/root/openbricks/build/build.i386.eglibc/toolchain/bin/i686-openbricks-linux-gnu-g++ -c -std=c++0x -g -Wall src/libcec.cpp -o src/libcec.o
src/libcec.cpp: In function 'int (* cecCommand(void*, const cec_command&))(void*, CEC::cec_command)':
src/libcec.cpp:58:50: error: 'key' was not declared in this scope
src/libcec.cpp: In function 'int (* cecConfigurationChanged(void*, const libcec_configuration&))(void*, CEC::libcec_configuration)':
src/libcec.cpp:66:49: error: 'command' was not declared in this scope
src/libcec.cpp: In function 'int cecConfigurationChanged(void*, CEC::libcec_configuration)':
src/libcec.cpp:73:75: error: invalid conversion from 'CEC::CBCecConfigurationChangedType {aka int (*)(void*, CEC::libcec_configuration)}' to 'int' [-fpermissive]
src/libcec.cpp: In member function 'CEC::ICECAdapter* Cec::CecInit(const char*, CecCallback*)':
src/libcec.cpp:125:54: error: '::cecKeyPress' has not been declared
make: *** [src/libcec.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from src/main.cpp:9:0:
src/main.h:28:7: error: conflicting return type specified for 'virtual int Main::onCecLogMessage(const cec_log_message&)'
In file included from src/main.h:2:0,
from src/main.cpp:9:
src/libcec.h:16:36: error: overriding 'virtual int (* CecCallback::onCecLogMessage(const cec_log_message&))(void*, CEC::cec_log_message)'
In file included from src/main.cpp:9:0:
src/main.h:29:7: error: conflicting return type specified for 'virtual int Main::onCecKeyPress(const cec_keypress&)'
In file included from src/main.h:2:0,
from src/main.cpp:9:
src/libcec.h:17:34: error: overriding 'virtual int (* CecCallback::onCecKeyPress(const cec_keypress&))(void*, CEC::cec_keypress)'
In file included from src/main.cpp:9:0:
src/main.h:30:7: error: conflicting return type specified for 'virtual int Main::onCecCommand(const cec_command&)'
In file included from src/main.h:2:0,
from src/main.cpp:9:
src/libcec.h:18:33: error: overriding 'virtual int (* CecCallback::onCecCommand(const cec_command&))(void*, CEC::cec_command)'
In file included from src/main.cpp:9:0:
src/main.h:31:7: error: conflicting return type specified for 'virtual int Main::onCecConfigurationChanged(const libcec_configuration&)'
In file included from src/main.h:2:0,
from src/main.cpp:9:
src/libcec.h:19:46: error: overriding 'virtual int (* CecCallback::onCecConfigurationChanged(const libcec_configuration&))(void*, CEC::libcec_configuration)'
make: *** [src/main.o] Error 1
Re: libCEC e plugin-remote
la patch dovrebbe essere fatta così
Codice: Seleziona tutto
--- libcec-daemon-0.9-rddde2ea0ef/src/libcec.cpp.org 2013-01-18 14:04:35.255384738 +0100
+++ libcec-daemon-0.9-rddde2ea0ef/src/libcec.cpp 2013-01-18 14:08:30.711388780 +0100
@@ -44,21 +44,24 @@
// Map of control codes to Strings
const map<enum cec_user_control_code, const char *> Cec::cecUserControlCodeName = Cec::setupUserControlCodeName();
-int cecLogMessage(void *cbParam, const cec_log_message message) {
+//int cecLogMessage(void *cbParam, const cec_log_message message) {
+CEC::CBCecLogMessageType cecLogMessage(void *cbParam, const cec_log_message &message) {
try {
return ((CecCallback*) cbParam)->onCecLogMessage(message);
} catch (...) {}
return 0;
}
-int cecKeyPress(void *cbParam, const cec_keypress key) {
+//int cecKeyPress(void *cbParam, const cec_keypress key) {
+CEC::CBCecCommandType cecCommand(void *cbParam, const cec_command &command) {
try {
return ((CecCallback*) cbParam)->onCecKeyPress(key);
} catch (...) {}
return 0;
}
-int cecCommand(void *cbParam, const cec_command command) {
+//int cecCommand(void *cbParam, const cec_command command) {
+CEC::CBCecConfigurationChangedType cecConfigurationChanged(void *cbParam, const libcec_configuration & configuration) {
try {
return ((CecCallback*) cbParam)->onCecCommand(command);
} catch (...) {}
@@ -109,13 +112,19 @@
config.Clear();
- config.deviceTypes.Add(CEC_DEVICE_TYPE_PLAYBACK_DEVICE);
+ //config.deviceTypes.Add(CEC_DEVICE_TYPE_PLAYBACK_DEVICE);
+ config.deviceTypes.Add(CEC_DEVICE_TYPE_RECORDING_DEVICE);
strncpy(config.strDeviceName, name, sizeof(config.strDeviceName));
+ config.iHDMIPort=2;
- callbacks.CBCecLogMessage = &::cecLogMessage;
- callbacks.CBCecKeyPress = &::cecKeyPress;
- callbacks.CBCecCommand = &::cecCommand;
- callbacks.CBCecConfigurationChanged = &::cecConfigurationChanged;
+// callbacks.CBCecLogMessage = &::cecLogMessage;
+// callbacks.CBCecKeyPress = &::cecKeyPress;
+// callbacks.CBCecCommand = &::cecCommand;
+// callbacks.CBCecConfigurationChanged = &::cecConfigurationChanged;
+ callbacks.CBCecLogMessage = (CEC::CBCecLogMessageType) &::cecLogMessage;
+ callbacks.CBCecKeyPress = (CEC::CBCecKeyPressType) &::cecKeyPress;
+ callbacks.CBCecCommand = (CEC::CBCecCommandType) &::cecCommand;
+ callbacks.CBCecConfigurationChanged = (CEC::CBCecConfigurationChangedType) &::cecConfigurationChanged;
config.callbackParam = callback;
config.callbacks = &callbacks;
--- libcec-daemon-0.9-rddde2ea0ef/src/libcec.h.org 2013-01-18 14:08:43.027388991 +0100
+++ libcec-daemon-0.9-rddde2ea0ef/src/libcec.h 2013-01-18 14:12:39.695393055 +0100
@@ -9,10 +9,14 @@
virtual ~CecCallback() {}
// Virtual methods to handle callbacks
- virtual int onCecLogMessage(const CEC::cec_log_message & message) = 0;
- virtual int onCecKeyPress (const CEC::cec_keypress & key) = 0;
- virtual int onCecCommand (const CEC::cec_command & command) = 0;
- virtual int onCecConfigurationChanged(const CEC::libcec_configuration & configuration) = 0;
+// virtual int onCecLogMessage(const CEC::cec_log_message & message) = 0;
+// virtual int onCecKeyPress (const CEC::cec_keypress & key) = 0;
+// virtual int onCecCommand (const CEC::cec_command & command) = 0;
+// virtual int onCecConfigurationChanged(const CEC::libcec_configuration & configuration) = 0;
+ virtual CEC::CBCecLogMessageType onCecLogMessage(const CEC::cec_log_message & message) = 0;
+ virtual CEC::CBCecKeyPressType onCecKeyPress (const CEC::cec_keypress & key) = 0;
+ virtual CEC::CBCecCommandType onCecCommand (const CEC::cec_command & command) = 0;
+ virtual CEC::CBCecConfigurationChangedType onCecConfigurationChanged(const CEC::libcec_configuration & configuration) = 0;
};
/**
@@ -56,10 +60,14 @@
void close();
// These are just wrapper functions, to map C callbacks to C++
- friend int cecLogMessage (void *cbParam, const CEC::cec_log_message &message);
- friend int cecKeyPress (void *cbParam, const CEC::cec_keypress &key);
- friend int cecCommand (void *cbParam, const CEC::cec_command &command);
- friend int cecConfigurationChanged (void *cbParam, const CEC::libcec_configuration & configuration);
+ //friend int cecLogMessage (void *cbParam, const CEC::cec_log_message &message);
+ //friend int cecKeyPress (void *cbParam, const CEC::cec_keypress &key);
+ //friend int cecCommand (void *cbParam, const CEC::cec_command &command);
+ //friend int cecConfigurationChanged (void *cbParam, const CEC::libcec_configuration & configuration);
+ friend CEC::CBCecLogMessageType cecLogMessage (void *cbParam, const CEC::cec_log_message &message);
+ friend CEC::CBCecKeyPressType cecKeyPress (void *cbParam, const CEC::cec_keypress &key);
+ friend CEC::CBCecCommandType cecCommand (void *cbParam, const CEC::cec_command &command);
+ friend CEC::CBCecConfigurationChangedType cecConfigurationChanged (void *cbParam, const CEC::libcec_configuration & configuration);
};
--- libcec-daemon-0.9-rddde2ea0ef/src/uinput.cpp.org 2013-01-18 14:12:51.191393251 +0100
+++ libcec-daemon-0.9-rddde2ea0ef/src/uinput.cpp 2013-01-18 14:14:36.859395062 +0100
@@ -29,6 +29,7 @@
}
int UInput::open(const char *uinput_path) {
+ //this->fd = ::open(uinput_path, O_WRONLY | O_NONBLOCK);
this->fd = ::open(uinput_path, O_WRONLY | O_NONBLOCK);
if(this->fd < 0) {
return errno;
Re: libCEC e plugin-remote
@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
Forse hai frainteso il mio messaggioragno ha scritto:@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
anche con quella patch mi da errore
Re: libCEC e plugin-remote
Non ti preoccupare. Appena ho un po' di tempo ricomincio con le prove.unixer ha scritto:Forse hai frainteso il mio messaggioragno ha scritto:@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
anche con quella patch mi da errore
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
io sono riuscito a compilarlo ed usarlo correttamente sotto yavdr... se serve una mano puoi chiedere
Re: libCEC e plugin-remote
Posta una guida e spiega per sommi capi quello che hai fatto.italoc ha scritto:io sono riuscito a compilarlo ed usarlo correttamente sotto yavdr... se serve una mano puoi chiedere
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: libCEC e plugin-remote
Salve,
avete trovato la soluzione per aumentare il numero di tasti sul telecomando?
avete trovato la soluzione per aumentare il numero di tasti sul telecomando?