No he tenido tiempo de desarrollar un parcheador que solvente ese problema a priori. Tengo que decir que tampoco me parece una operación carente de riesgos para los usuarios no iniciados así que estoy centrando mis esfuerzos en una nueva versión del lanzador de CorePlayer. Esta nueva versión no solventa ese problema pero va encaminada a integrarse con Tucsy. La versión actual de Tucsy incluye CorePlayer pero no hace uso de mi lanzador. Por ello, cuando se ejecuta el reproductor de vídeo desde Tucsy, este sale a Windows primero. Y cuando el usuario cierra CorePlayer, Tucsy reinicia el equipo. Esto imposibilita usar los mapas y el reproductor de forma simultanea.
La nueva versión de Tucsy vendrá cargada de novedades. He desarrollado una librería con cerca de 100 funciones que proporcionan información del equipo como la emisora de radio que está sintonizada, el mp3 que se está escuchando, la imagen de su álbum, las coordenadas del GPS, controlar el reproductor nativo (play/pausa) ... etc. Esta librería y su documentación la he compartido con el desarrollador de Tucsy, el cual está integrando en su proyecto para proporcionar más funcionalidad a los usuarios. Eso por una parte.
Por otra parte, la nueva versión de Tucsy ejecutará (si no hay contratiempos) mi lanzador de CorePlayer, el cual se encargará de integrar el reproductor con el resto de aplicaciones de Hyundai sin que sea necesario salir a Windows. Y aquí quería yo llegar. Una vez que salga la nueva versión de Tucsy, si la instaláis, dispondréis de CorePlayer en ejecución simultánea con los mapas del Tucson.
Así que no será necesario parchear nada.
Como decía, estoy desarrollando una versión nueva del lanzador.
- La nueva versión usa la librería API que he desarrollado para simplificar el código.
- Esta versión corrige un problema que sucede cuando se está en la pantalla de los mapas y el usuario está reproduciendo vídeo a pantalla completa. En ocasiones, si se produce un cambio de pantalla inesperado como cuando se pone la marcha atrás y se vuelve a los mapas, el reproductor deja de estar en pantalla completa y pasa a ocupar toda la pantalla pero mostrando los controles de reproducción (play, avance, retroceso ...). El lanzador no es capaz de saber la diferencia entre pantalla completa y pantalla completa con controles de reproducción (porque no tiene acceso a la memoria de CorePlayer) así que no disminuye el tamaño de la ventana del reproductor para mostrarlo junto con los mapas, por lo que imposibilita ver los mapas a pesar de pulsar el botón físico "MAP". La solución que he encontrado para un caso así es que, el usuario pueda desplazar la ventana del reproductor pulsando con el dedo sobre el título de la ventana y arrastrándola. Como el lanzador sabe que si la ventana ocupa toda la pantalla, esta no debería poder moverse, al detectar el desplazamiento restaura el tamaño de la ventana al que debería tener en la pantalla de mapas.
- La versión actual fuerza la ventana del reproductor en primer plano. Tucsy hace lo mismo con su icono, por lo que el icono de Tucsy aparece y desaparece continuamente. La nueva versión del lanzador soluciona eso, permitiendo al icono de Tucsy situarse por encima del reproductor sin que afecte a la reproducción de vídeo.
- La versión actual detecta el programa al que pertenece la aplicación en primer plano (o la que se encuentra por debajo de CorePlayer) para decidir qué hacer con la ventana del reproductor. En la versión nueva el sistema de detección se ha reescrito completamente para filtrar por ventana en vez de por aplicación. Eso evita tener que buscar la aplicación propietaria de la ventana activa, agilizando todo el proceso.
- Este sistema se ha reescrito a un sistema de reglas, de tal forma que en un futuro, otros desarrolladores podrán comunicarse con el lanzador desde sus programas para establecer reglas sobre cómo se debería comportar el reproductor CorePlayer cuando su programa esté en primer plano, permitiendo establecer la posición y tamaño de la ventana de CorePlayer así como si ésta se puede o no mover por la pantalla o cuándo debe aparecer visible o no.
- Cuando se cierra el reproductor de vídeo, aparece un botón para ejecutarlo de nuevo en la pantalla del reproductor nativo. A este botón le llamo "Botón de ejecución". Hasta ahora, si se mantiene pulsado dicho botón durante 3 segundos, el lanzador se cierra. En la nueva versión, manteniendo pulsado dicho botón 2 segundos, muestra un menú que permite configurar algunas opciones como por ejemplo, forzar la skin del reproductor a KIA o a Hyundai, establecer un idioma distinto del configurado en el equipo, etc.
- En la versión actual, si el software nativo no detecta ningún mp3 en el pendrive, CorePlayer no se ejecuta ya que sin mp3, la pantalla del reproductor nativo no se muestra (muestra un mensaje indicando que no hay archivos multimedia) y la radio se mantiene activa. En la nueva versión, el lanzador detecta si hay mp3 detectados o no. Si no es así, mostrará igualmente CorePlayer en pantalla. Como el reproductor nativo no se muestra, pulsar el botón MEDIA no hará que CorePlayer se muestre en primer plano. Para solventar eso, cada vez que la ventana de CorePlayer desaparezca tras cualquier otra, mostrará un botón en pantalla que, al pulsarlo, volverá a colocar en primer plano el vídeo. Esto permitirá usar el lanzador incluso saliendo a Windows. De igual manera, como el reproductor nativo no se va a mostrar, el "botón de ejecución" se mostrará en la pantalla de radio AM/FM. Nótese que, si el sistema no detecta al menos 2 mp3, no será posible avanzar y retroceder vídeo usando los botones físicos.
Como veis, son muchos cambios internos para dotar de versatilidad el lanzador y mejorar la experiencia de usuario. Espero tenerlo listo antes de que salga la nueva versión de Tucsy para que su desarrollador lo integre.