Autor Tema: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?  (Leído 7085 veces)

Desconectado Jaleos

  • Junior Member
  • **
  • Mensajes: 81
¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« en: 29 de Junio de 2008, 06:51:48 pm »
:) Bueno, nuevas cosas, nuevas dudas...

Sabemos que ejecutando Kdcop con Kaffeine funcionando tenemos acceso gráfico a las llamadas a DCOP que admite, por ejemplo, Kaffeine.

Aquí
http://osdir.com/ml/video.kaffeine.devel/2006-12/msg00010.html
Tenemos el ejemplo (y creación) de una nueva llamada.

La pregunta es..¿Sabéis donde se agrega el código? ¿Será en algún fichero de Kaffeine, o por el contrario será en algún misterioso fichero de DCOP?

Saludos
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
Maxtor (250 GB, 7200 RPM,SATA-II)
AVerMedia TV Hybrid+FM A16AR
WXP-Sp2-ubuntu 8.04

Desconectado Dabo

  • Administrator
  • ******
  • Mensajes: 15348
    • https://www.daboblog.com
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #1 en: 15 de Julio de 2008, 11:51:19 pm »
Se me había pasado este post amigo, a ver si logro ver algo y te comento, saludos -;)
Hacking, computing, are in my blood, are a part of me, a part of my life...Debian GNU/Linux rules.

Twitter; https://twitter.com/daboblog
Instagram: @daboblog


www.daboblog.com | www.debianhackers.net | www.caborian.com | www.apachectl.com | www.davidhernandez

Desconectado Peibol

  • Junior Member
  • **
  • Mensajes: 62
    • Zoocial
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #2 en: 16 de Julio de 2008, 10:27:56 pm »
Por lo que puedo ver ese código (soy programador pero no de C++) modifica Kaffeine para aceptar un tipo de llamada, el tema es ¿desde que aplicación quieres llamar?, supongo que será más interesante ver si el cliente reconoce el servicio.

Salu2
Nikon D80 con AF-S Nikkor 18-135mm 1:3.5-5.6G, Nikkor 50mm 1:1.8 focal fijo, Tokina 11-16 y Sigma 70-300 APO.

Desconectado Jaleos

  • Junior Member
  • **
  • Mensajes: 81
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #3 en: 20 de Julio de 2008, 09:27:35 pm »
Hola Peibol y Dabo.
No podía contestar, porque no era capaz de que me cargara la web, gracias a Liamngls, que me recomendó anony mouse, puedo hacerlo.

Vamos a ver Peibol...
Citar
Por lo que puedo ver ese código (soy programador pero no de C++) modifica Kaffeine para aceptar un tipo de llamada, el tema es ¿desde que aplicación quieres llamar?,
Creo que es irexec.
El tema es que tengo hecho un "Como-truco" para hacer funcionar el mando RM-FP de Avermedia, lo puedes ver aquí mismo en el foro de linux, con una chinchetilla.
Si te fijas, en las llamadas a dcop que utiliza el archivo .lircrc no hay ninguna que se refiera a "instant record", el caso es que buscando por google encontré esas lineas de código que implementan la función.
Pero claro, no sé donde ni como se puede agregar dicho código, :) hasta ahí no me llegan los conocimientos.
No sé si es en algún archivo nuevo en Kaffeine, en Lirc, en alguno que tenga que ver con Dcop, que no se nada de él, o hay que copiarlo al final de alguno de los archivos de esas aplicaciones.
Ni siquiera sé si la función ya está disponible por las nuevas versiones de Kaffeine, yo en la que tengo ahora en uso, cuando ejecuto Kdcop no la veo por ningún lado, quizás no mire bien....

Citar
supongo que será más interesante ver si el cliente reconoce el servicio.

Pues ¿me podrias decir como lo compruebo?, con alguna ligera explicación...soy aplicado   :destroyer:

Saludos
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
Maxtor (250 GB, 7200 RPM,SATA-II)
AVerMedia TV Hybrid+FM A16AR
WXP-Sp2-ubuntu 8.04

Desconectado Peibol

  • Junior Member
  • **
  • Mensajes: 62
    • Zoocial
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #4 en: 21 de Julio de 2008, 04:58:26 pm »
En primer lugar, el código que aportas es un diff, o patch, según se lo quiera ver, esto se aplica al código de kaffeine utilizando el comando patch en bash. Asegurate de tener la versión correcta del código ya que sino el parche no aplicará.

Luego, para enterarte si kaffeine está aportando la funcionalidad que pides lo suyo sería probarla desde bash, mira, por ejemplo aqui tienes una breve explicación de como se invoca dcop desde bash: http://mundogeek.net/traducciones/oregan2.html
Todo esto sería considerando que has modificado el código de kaffeine y luego lo has recompilado/instalado.

En caso de que no lo reconozca, por lo que estoy leyendo aqui: http://www.usenix.org/event/usenix04/tech/freenix/full_papers/faure/faure_html/node6.html DCOP utiliza un sistema de reflexión para enterarse de que tiene (objetos, funciones, etc), por lo que la manera de registrar tu nueva función sería simplemente creando/modificando el fichero de cabecera siguiendo las reglas de la interfaz de dcop. Tal vez te toque luego volver a compilar el servidor de dcop para que este incluya la interfaz correspondiente en su proceso de compilación, esto ya no lo se.

Aquí tienes aún más información al respecto: http://developer.kde.org/documentation/other/dcop.html#sec2.3

Comprueba primero si aparece en la lista de funciones solamente recompilando kaffeine, sino tendrás que ir un paso más allá.

Salu2
Nikon D80 con AF-S Nikkor 18-135mm 1:3.5-5.6G, Nikkor 50mm 1:1.8 focal fijo, Tokina 11-16 y Sigma 70-300 APO.

Desconectado Dabo

  • Administrator
  • ******
  • Mensajes: 15348
    • https://www.daboblog.com
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #5 en: 22 de Julio de 2008, 12:07:45 am »
Gracias por la info Peibol, creo que con esto lo arreglará -;)
Hacking, computing, are in my blood, are a part of me, a part of my life...Debian GNU/Linux rules.

Twitter; https://twitter.com/daboblog
Instagram: @daboblog


www.daboblog.com | www.debianhackers.net | www.caborian.com | www.apachectl.com | www.davidhernandez

Desconectado Jaleos

  • Junior Member
  • **
  • Mensajes: 81
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #6 en: 24 de Julio de 2008, 06:50:49 pm »
 :haha: :haha: :haha: O lo destrozará..... :haha:
Un poco complicado para mi después de un vistazo rápido, intentaré digerirlo este finde. A ver si me entero de algo y puedo hacer una pregunta "digna".
Saludos
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
Maxtor (250 GB, 7200 RPM,SATA-II)
AVerMedia TV Hybrid+FM A16AR
WXP-Sp2-ubuntu 8.04

Desconectado Jaleos

  • Junior Member
  • **
  • Mensajes: 81
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #7 en: 30 de Julio de 2008, 11:43:47 pm »
Bueno, bueno, bueno..me voy enterando de algo pero aún necesito ayuda.

Ya tengo descomprimido el tar.bz2 y localizados los archivos a los que se refieren las cabeceras del diff, y por ejemplo, en Kaffeine.cpp, en la sección DCOP INTERFACE no hay ninguna acción "instant record", hasta ahí bien ( ¡lo que me costó comprender que tenia que bajarme el código fuente!  :danae: ).
Desde bash tampoco aparece la función, claro, sin recompilar..

Para aplicar el parche he hecho:
Copiar el contenido del diff que proponen y hacer un archivo "instant.diff".
Moverlo a la carpeta del código de Kaffeine donde apuntan las cabeceras del diff (kaffeine-0.8.7/kaffeine/src).

Y
Código: [Seleccionar]
jaleos@Core-Duo:~/Escritorio/kaffeine-0.8.7/kaffeine/src$ patch < instantcpp.diff
patching file kaffeine.cpp
patch: **** malformed patch at line 19:
Aquí le quité un espacio que había delante de la # en la linea 19 del diff y me pasó el error a la siguiente linea, vease

Código: [Seleccionar]
jaleos@Core-Duo:~/Escritorio/kaffeine-0.8.7/kaffeine/src$ patch < instant.diffpatching file kaffeine.cpp
patch: **** malformed patch at line 20:
Aquí le quito una linea en blanco entre la linea 19 y 20,  :pardiez: y la misma de antes

Código: [Seleccionar]
jaleos@Core-Duo:~/Escritorio/kaffeine-0.8.7/kaffeine/src$ patch < instant.diff
patching file kaffeine.cpp
patch: **** malformed patch at line 21: Index: /home/tomas/multimedia2/kaffeine/src/kaffeine.h
 
Y aquí, como no le quite la cartera :) . Atascado estoy y no salgo.

Se supone que la primera parte del diff debería aplicar, porque ya no da errores,  todo esto será por....
Citar
Asegurate de tener la versión correcta del código ya que sino el parche no aplicará
Este diff es de hace 2 años, quizás sea eso, ¿cuestión de versiones?.

¿No sería más fácil, ya que es poco código y además no elimina ninguna linea, cambiar los archivos a mano? ¿puede que funcione luego?

Saludos
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
Maxtor (250 GB, 7200 RPM,SATA-II)
AVerMedia TV Hybrid+FM A16AR
WXP-Sp2-ubuntu 8.04

Desconectado Peibol

  • Junior Member
  • **
  • Mensajes: 62
    • Zoocial
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #8 en: 31 de Julio de 2008, 08:56:36 pm »
Los diff son ficheros muy simples que solo indican que lineas se agregan y cuales se eliminan, tranquilamente puedes hacerlo a mano. Incluso en lo que respecta al código, por lo que pude ver son funciones nuevas que ya están anunciadas en los ficheros de cabecera, por lo que no deberías tener ningún problema en agregar las líneas que tienen un + por delante directamente al código que te has descargado.

Si miras el fichero, se agrega esto

void Kaffeine::setRecord()
{
#ifdef HAVE_DVB
       if ( dvbPanel )
              dvbPanel->setRecord();
#endif
}

alrededor de la línea 1901 del fichero kaffeine.cpp

Si miras los demás trozos del patch:

Index: /home/tomas/multimedia2/kaffeine/src/kaffeine.h
===================================================================
--- /home/tomas/multimedia2/kaffeine/src/kaffeine.h     (revision 611002)
+++ /home/tomas/multimedia2/kaffeine/src/kaffeine.h     (working copy)
@@ -113,6 +113,7 @@
        void quit();
        void setNumber( int num );
        void dvbNewTimer( QString name, QString channel, QString datetime,
QString duration );
+       void setRecord();
        int dvbSNR( int device );
        void dvbOSD();
        void playDvb();

Te indica que se va a modificar el fichero kaffeine.h (fichero de cabecera cpp), y que en la línea 113 se agrega el prototipo de función "void setRecord()" que has definido en la parte anterior del parche. Así con todos los "Index" que aparecen.

Lo malo de los ficheros diff es que si las líneas no concuerdan por un espacio el parche no aplica y te da los mensajes de error que te está dando. Por lo que te conviene hacerlo a mano porque tardarás menos.

Luego me cuentas que tanto te complica para compilar, que eso es otro mundo.

Salu2
Nikon D80 con AF-S Nikkor 18-135mm 1:3.5-5.6G, Nikkor 50mm 1:1.8 focal fijo, Tokina 11-16 y Sigma 70-300 APO.

Desconectado Jaleos

  • Junior Member
  • **
  • Mensajes: 81
Re: ¿Como agregar nuevas llamadas a DCOP (o KDCOP)?
« Respuesta #9 en: 03 de Agosto de 2008, 11:24:48 am »
Hola Peibol.
Primero, muchas gracias por la explicación y confirmación.
Bueno, ya están hechos los cambios en los tres archivos a que se refiere el diff, a mano.
He llegado a hacer el make así:

Código: [Seleccionar]
apt-get build-dep kaffeine
./configure
make

Como la seda, no da ningún error, hasta aquí parece todo bien.

Actualmente tengo instalada y configurada óptimamente la versión 0.8.6 de Kaffeine en Gnome, usando KDE 3.5.9, supongo que cuando haga el make install tendré que tener desinstalada ésta versión, claro, no quiero perder el trabajo hecho, ¿si guardo la configuración de /home/jaleos/.kde/share/apps/kaffeine seria facil restaurarla?

Otra pregunta, ¿cuando haces "./configure" y "make" se producen cambios en el archivo de fuentes bajado (y parcheado)?.
Lo digo por usar esas mismas fuentes, porque estoy por hacer la instalación en una live-cd, a ver como se comporta y si aparece implementada la nueva función.
(Según escribo) Sí, creo que eso haré, a no ser que me recomiendes otro procedimiento....

Saludos
DualCore Intel Core2 Duo E6600, 2400 MHz (9x267)
ASUS p5B Deluxe wifi socket LGA 775
512+512 Kingston DDR2-800 (400 MHz)
GeForce 6500 (256 MB) VIVO
Maxtor (250 GB, 7200 RPM,SATA-II)
AVerMedia TV Hybrid+FM A16AR
WXP-Sp2-ubuntu 8.04

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License