Pagina 2 di 2
Re: libCEC e plugin-remote
Inviato: 08 gen 2013, 09:19
da ragno
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
Re: libCEC e plugin-remote
Inviato: 16 gen 2013, 09:59
da ragno
Ma c'e' qualcuno che sia riuscito a compilare libcec-daemon?
ciao
Re: libCEC e plugin-remote
Inviato: 16 gen 2013, 21:24
da unixer
ragno ha scritto:Ma c'e' qualcuno che sia riuscito a compilare libcec-daemon?
ciao
Io si e fatte anche qualche prova
ma senza dispositivo cec non mi restituisce nessun comando
EDIT:
hai installato liblog4cplus-dev ??
Re: libCEC e plugin-remote
Inviato: 17 gen 2013, 08:51
da ragno
@unixer: build da tar ball perche' sotto natty non esiste il pacchetto.
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
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
Re: libCEC e plugin-remote
Inviato: 17 gen 2013, 11:59
da unixer
ragno ha scritto:@unixer: build da tar ball perche' sotto natty non esiste il pacchetto.
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
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
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'applicazione
Codice: Seleziona tutto
patch: **** malformed patch at line 5: // Map of control codes to Strings
domani magari prova a farla a mano
Re: libCEC e plugin-remote
Inviato: 18 gen 2013, 09:51
da ragno
unixer 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'applicazione
Codice: Seleziona tutto
patch: **** malformed patch at line 5: // Map of control codes to Strings
domani magari prova a farla a mano
Vedo che l'hai trovata
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
Re: libCEC e plugin-remote
Inviato: 18 gen 2013, 13:56
da unixer
E senza la patch ti compila ???
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
Inviato: 18 gen 2013, 14:20
da unixer
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
Inviato: 18 gen 2013, 18:42
da ragno
@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
Re: libCEC e plugin-remote
Inviato: 18 gen 2013, 19:23
da unixer
ragno ha scritto:@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
Forse hai frainteso il mio messaggio
anche con quella patch mi da errore
Re: libCEC e plugin-remote
Inviato: 21 gen 2013, 09:06
da ragno
unixer ha scritto:ragno ha scritto:@unixer: grazie appena posso "gitto" nuovamente libcec-daemon ed applichero' la patch.
ciao
Forse hai frainteso il mio messaggio
anche con quella patch mi da errore
Non ti preoccupare. Appena ho un po' di tempo ricomincio con le prove.
ciao
Re: libCEC e plugin-remote
Inviato: 03 apr 2013, 14:30
da italoc
io sono riuscito a compilarlo ed usarlo correttamente sotto yavdr... se serve una mano puoi chiedere
Re: libCEC e plugin-remote
Inviato: 03 apr 2013, 19:33
da ragno
italoc ha scritto:io sono riuscito a compilarlo ed usarlo correttamente sotto yavdr... se serve una mano puoi chiedere
Posta una guida e spiega per sommi capi quello che hai fatto.
Re: libCEC e plugin-remote
Inviato: 17 nov 2013, 11:40
da ilfabius
Salve,
avete trovato la soluzione per aumentare il numero di tasti sul telecomando?