bandavi escribió:crees que lo que tienes hecho puede funcionar en cualquier plataforma o revision?, o crees que deberiamos de mantener dos versiones:
- Una para mantener la compatibilidad con las demas plataformas
- otra que vaya a la par con los cambios del xbmc 10.5 para quedarnos descolgados
Yo estoy intentando que sirva para todas las versiones/plataformas. He creado una rutina que intenta averiguar la revisión de XBMC (esto ni siquiera es siempre posible ya que hay compilaciones de debug que no incorporan número de revisión, sino UNKNOWN). Lo que hago es si no soy capaz de averiguar la revisión (por un xbmc debug u otra plataforma) asumir que es anterior (rev0 para los desconocidos y los no-xbmc) y hacer que actúe como anteriormente). Esto funcionará de momento, pero no dudo que en unos meses tanto el resto de plataformas empezará a incorporar de alguna forma los cambios y habrá que ampliar la función para detectarlos.
Podéis probarlo sencillamente cuando queráis haciendo un switch al branch (
https://xbmc-tvalacarta.googlecode.com/ ... isalacarta). Luego podéis hacer switch back sin problema (siempre que no tengáis modificaciones sin commitear en vuestra working copy).
bandavi escribió:Todo esto hasta que lo tengan claro los del teamxbmc.
Dale tiempo para que eso suceda. Por mis conversaciones con ellos veo que ni dentro del equipo están del todo seguros sobre la dirección que han tomado los cambios. Muchos son los que opinan que el tema de los addons se ha incorporado cuando todavía estaba demasiado verde
bandavi escribió:Podrias listar los cambios que hiciste para poder utilizar pelisalacarta en las revisiones 289xx?, para saber si son muchos.
No sería sencillo (tengo memoria de pez). Por eso intento documentar siempre los commits, para que quede constancia en algún lado.
De todas formas no es que sean demasiados, lo que lleva tiempo es averiguar la solución.
A ver que hago un esfuerzo:
1. Cambio de localización del plugin: Pasa de pugins/video/ a addons/. Esto en sí no es un problema salvo porque he detectado un par de sitios en el código que tenían hardcoded el lugar antiguo. Cambiando por os.getcwd() debería funcionar en todas las plataformas (salvo por el bug de boxee que sigue yendo a buscar la configuración a plugins/video)
2. Añadir fichero descriptor: Listo. No es problema
3. Cambio de la función getParam: Solucionado añadiendo función getPluginParam en xbmctools y usando la detección de revisión para saber si hay que llamar a getParam con 1 parámetro (rev0-28764) o 2 (rev28764 en adelante). Lógicamente requiere sustituir las llamada a xbmcgui.getParam por llamadas a xbmctools.getPluginParam en todos los módulos (detectados ciento y pico usos en 56 módulos y creciendo). Como curiosidad, si eliminamos lo del singlechanel (alquien lo usa?) nos quitamos la modificación de el 70% de los canales que no usan parámetros para nada.
4. Desaparición de la rutina xbmcplugin.openSettings: Encontré una forma alternativa de llamar a la pantalla de configuración, aunque no es tan limpia ni elegante como la antigua. Aún no me explico porqué han eliminado esta función. No descarto que vuelva a aparecer. En cualquier caso la solución es equivalente a la del punto 3, sustituir las llamadas a xbmcplugin.opensettings por una a xbmctools.openPluginSettings. Lógicamente se usa la misma rutina de detección de revisión.
5. El tema del pluginhandle y el isFolder a False. Este es uno que todavía tengo abierto. Cambiar la rutina addnewvideo para que tenga isfolder a true y ponerle un thunbnail de video en lugar de carpeta hace que funcione más o menos. Me estoy encontrando con que en algunos casos la reproducción del vídeo comienza pero se queda en la pantalla el típico diálogo de "Leyendo archivos" o algo así. No pasa siempre y no lo he analizado aún. Pero imagino que tendrá que ver con que xbmc se queda esperando que le llenemos una lista de items (al ser una carpeta). No sé si se solucionaría llamando a xbmcplugin.endOfDirectory. Tendré que probarlo
Estoy pensando si sería conveniente mover estas rutinas de xbmctools a un módulo independiente xbmcplugin_abstraccion (o algo mejor

). Lo digo porque hay un problema con un módulo (Creo recordar que es downloadtools) que importa a xbmctools y a su vez es importado por xbmctools. Esto crea problemas raros en la inicialización de módulos. Por ejemplo el cargador no era capaz de indicar bien donde había problemas de sistaxis. También hace que desde downloadtools no se pudiera llamar a las rutinas de xbmctools y tuve que duplicar el código de getPluginSetting. (estas son los famosos import circulares que no entendías jesus).
Así a bote pronto no recuerdo nada más (aunque seguro que algo se me escapa). Como veis para todos los puntos se puede crear una solución multi-plataforma.
Me preocupa no obstante la divergencia que puede causar que cada plataforma vaya evolucionando de forma independiente, como sin duda pasará. Cada proyecto que cobra vida propia intentará aportar soluciones propias cuando consideren que la de la solución base no es óptima.
Por mi parte, siendo usuario exclusivo de XBMC, la idea de emplear mi escaso tiempo en dar soporte a otras plataformas no me ilusiona. Filosóficamente hablando me fastidian soluciones como Plex que toman el trabajo de cientos de personas durante más de 10 años y la mejoran pero sólo para una plataforma específica, dejando al resto si posibilidad de disfrutar de lo bueno que puedan aportar. En mi opinión deberían emplear ese esfuerzo en mejorar el producto base.
Sé que muchos me dirán que se encargan de funciones no compatibles con plataformas no apple como el itunes, pero a mi no me vale eso. En mi poco uso de Plex he visto cosas como una funcionalidad de temporizador de apagado en el menú de salida que sería perfecto para incorporarlo a XBMC, pero no lo hacen...
Alguien me dirá también que es mejor que haya opciones donde elegir para quedarte con el mejor. Estaría de acuerdo si no fuera porque uno es el donante para todos. Mi presión irá siempre en que todos los que usan XBMC (y eso incluye a todos los usuarios de Boxee y Plex) ayuden a mejorar XBMC. Me consta que la gente de Boxee lo hace (de hecho son patrocinadores del proyecto). No me consta que sea así con Plex (que alguien me corrija si me equivoco). Como digo es un tema de filosofía personal.
Pero como siempre jesus, tu diriges el barco.
Vaya, hacía que no me soltaba un chorreo de varias páginas (se nota que el finde no he tocado el ordena). Sorry