Autor Tema: Agregar Jukebox  (Leído 11118 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #120 en: Junio 17, 2018, 04:04:29 pm »
Advertisement
Después de un par de días de sinusitias asquerosa, vuelvo medio vivo medio muerto :P

Bueno, pues para que la cosa quede completita, creo que le faltan estas cositas, en orden de importancia, según mi pobre criterio:

1 - Poder eliminar temas de la Play List (No de la Album List, esa inamovible, como Los últimos de Filipinas). Como se meten albums enteros, eliminar las canciones que no interesen reproducir, antes de llegar a ellas.
No es mala idea, yo había pensado que se podría eliminar el album completo, pero no costaría mucho hacerlo tambien para temas de la Playlist. Obviamente hay que jugar haciendo combinaciones de teclas para estas acciones.



Citar
2 - Si hay más de 15 pistas en la Lista de álbumes, hacer que se desplacen --en lugar de eliminarlas--, con las mismas teclas que desplazan la Play List.
Esto no lo he entendido... la lista del album ya se desplaza igual que la Playlist!



Citar
3 - Sistema de búsqueda y/o filtrado de datos de la Album List, el plugin KeyboardSearch no funciona bien en este invento tuyo... y además no tenemos teclas custom libres :D
No conozco el plugin pero seguramente sea porque las canciones no son visibles para AM, sólo los nombres de los albumes y artistas. Habría que ver si se puede hacer algo, ya lo miraré.


Citar
4 - Soporte especial de caracteres españoles: acentos y ñ.
Habría que hacer algunas pruebas con AM en estado puro, a ver si acepta carpetas con caracteres especiales en los nombres de las carpetas, en nuestro caso las canciones sí pueden tener caracteres especiales pero las carpetas (que es de donde sale el nombre del artista y del album) en principio los caracteres especiales la lian.
Digo la prueba con AM básico, porque si AM se lía entonces nada podemos hacer.



Citar
5 - Detener el protector de pantalla solo para este layout.
En su momento lo estuve mirando y no llegué a nada definitivo, en el codigo hay un intento de ver ese tema pero hasta donde investigué, no hay manera de hacerlo. Ojo, quizás haya alguna manera.
« Última modificación: Junio 17, 2018, 04:06:41 pm por Josepzin »

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Agregar Jukebox
« Respuesta #121 en: Junio 17, 2018, 08:54:04 pm »
Tu trabajo me cuesta dios y ayuda utilizarlo, porque partimos de bases diferentes en las carpetas:  tu usas Album - Cantante y yo utilizo Cantante - Album - Año.
Y de tanto modificar tu código, pues toco lo que no debo, así que si no se me movía la lista de la derecha ha sido por un fallo mío, que ya he corregido (de hecho tampoco se me movía la izquierda, y no me había dado cuenta... :D).

Por lo demás, me parece más útil y más sencillo borrar una canción que un álbum, sobre todo si hemos hecho el shuffle sobre la lista -que, por cierto, es con dos "f", pero porsi yo lo llamo random--, pero eso tú verás...

Y lo de la búsqueda, si no recuerdo mal, el plugin KeyboardSearch venía incluido en AM por defecto, pero buscaré a ver si es que yo lo cambié por otro... En cualquier caso, yo lo que quiero es poder filtrar por cantante y/o por album, no por canciones, aunque esto último tampoco estaría mal...  ::)

Ah, que se me olvidaba, lo de cambiar las teclas up down por left right, es fácil, solo añadir esto al final del layout:

Código: [Seleccionar]
// Change keys
function onsignal(sig)
{
switch(sig)
{
case "up":
fe.signal("");
return true;

case "down":
fe.signal("");
return true;

case "left":
fe.signal("prev_game");
return true;

case "right":
fe.signal("next_game");
return true;

case "select":
default:
}
return false;
}

fe.add_signal_handler(this, "onsignal");
« Última modificación: Junio 18, 2018, 01:23:08 pm por zlagos »

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #122 en: Junio 18, 2018, 09:15:16 pm »
Tu trabajo me cuesta dios y ayuda utilizarlo, porque partimos de bases diferentes en las carpetas:  tu usas Album - Cantante y yo utilizo Cantante - Album - Año.
Y de tanto modificar tu código, pues toco lo que no debo, así que si no se me movía la lista de la derecha ha sido por un fallo mío, que ya he corregido (de hecho tampoco se me movía la izquierda, y no me había dado cuenta... :D).

Uffufu... te compadezco... tener que estar intentando entender el código de otro... tuve que cambiar unas cuantas cosas del mio, creo que para mejor, creo... :P


Citar
Por lo demás, me parece más útil y más sencillo borrar una canción que un álbum, sobre todo si hemos hecho el shuffle sobre la lista -que, por cierto, es con dos "f", pero porsi yo lo llamo random--, pero eso tú verás...
Cierto, con dos FFs!

Lo de borrar una cancion es facil, ya lo pondré!


Citar
Y lo de la búsqueda, si no recuerdo mal, el plugin KeyboardSearch venía incluido en AM por defecto, pero buscaré a ver si es que yo lo cambié por otro... En cualquier caso, yo lo que quiero es poder filtrar por cantante y/o por album, no por canciones, aunque esto último tampoco estaría mal...  ::)

Tendré que probar ese plugin, a ver... KeyboardSearch

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Agregar Jukebox
« Respuesta #123 en: Junio 18, 2018, 09:49:28 pm »

Uffufu... te compadezco... tener que estar intentando entender el código de otro... tuve que cambiar unas cuantas cosas del mio, creo que para mejor, creo... :P


No sé si para mejor o para peor, pero a mí me estás volviendo loco... :D :D :D

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Agregar Jukebox
« Respuesta #124 en: Junio 23, 2018, 06:31:10 pm »
No sé cómo llevarás el tema de la búsqueda, pero yo he simplificado un poco el código del plugin KeyboardSearch, quitando todo lo que no necesitamos para que lo pruebes:

En vez de un pluguin, lo que he hecho es convertirlo en una función que saca el diálogo para buscar en pantalla con la tecla Custom1, (luego ya se pondrá la tecla o combi que se quiera), y después filtra por lo introducido, pero no reproduce correctamente.

Código: [Seleccionar]
// Search
class Search
{
last_search="";
my_key="custom1";

constructor()
{
fe.add_signal_handler(this, "on_search_signal")
}

// Adjust search word
function normalize(my_search)
{
local words = split(my_search, " ");

local temp="";
foreach (w in words)
{
if (temp.len() > 0)
temp += " ";

local f = w.slice(0, 1);
temp += "["+f.toupper()+f.tolower()+"]"+w.slice(1);
}

return temp;
}

// Select game
function selecct(game)
{
for (local i=0; i<fe.list.size; i++)
{
if (fe.game_info(Info.Name, i) == game)
{
fe.list.index += i;
return true;
}
}

return false;
}

// Captures data
function on_search_signal(signal)
{
if (signal == my_key)
{
last_search = fe.overlay.edit_dialog(
"Search for:",
last_search);

local sel_game = fe.game_info(Info.Name);

// Filter
if (last_search.len() < 1)
fe.list.search_rule = "";
else
{
fe.list.search_rule = "Title contains "
+ normalize(last_search);
::print(" > DEBUG: : " + fe.list.search_rule + "\n"); // This is the filter
selecct(sel_game);
}
return true;
}
return false;
}
}
local jbfs = Search();

Con la tecla que no doy es cómo hacer llegar el contenido de fe.list.search_rule, que es el filtro en cuestión a la wheel y al player.

Mira a ver tú si esto te sirve de algo...
« Última modificación: Junio 23, 2018, 06:34:16 pm por zlagos »

Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Agregar Jukebox
« Respuesta #125 en: Julio 03, 2018, 04:36:35 pm »
Bueno, pues como no das señales de vida... o estás de vacaciones o missing in action... :D

Yo dejo el mío como está, sin búsqueda y voy a ponerlo por aquí, a ver si a la gente le gusta... :-[

Yo, con tu formato, ya lo sabes, no me es cómodo trabajar... y a lo mejor otros están en la misma situación... quién sabe  ::)

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #126 en: Julio 03, 2018, 08:13:04 pm »
Llevo un par de semanas con mucho curro y otros temas. Ya volveré a esto!

pero tu aprovechas mi ausencia para traicionarme publicando tu versión, zlagos, nunca te lo perdonaremos!!!

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #127 en: Julio 28, 2018, 10:07:13 pm »
Estoy probando este código tuyo (vaya forma que has tenido de arruinarme mi día de cumpleaños).

En principio veo dos problemas:
1 - La lista se llena de albumes duplicados, pero eso lo hace AM solito, no sé si se puede solucionar
2 - Cuando seleccionas un album no lo mete a la lista de reproducción y eso sí es un problema.

A ver que miro un poco mas.
« Última modificación: Julio 28, 2018, 11:00:35 pm por Josepzin »

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #128 en: Julio 28, 2018, 11:02:35 pm »
Sobre el punto 2, que es el grave ya he descubierto el motivo. Cuando le doy a SELECT uso el fe.list.index para saber qué album agregar, pero al estar la wheel filtrada por búsqueda la posición ya no vale como referencia, debería tomar el título y buscar la posición. A ver si me sale rapidito.

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #129 en: Julio 29, 2018, 01:12:53 am »
Al final el tema 2 se ha complicado pero lo he resuelto, todavía no pongo el código porque creo que lo puedo simplificar bastante más.

Sobre el 1, a ver si puedo hacer algo también.

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #130 en: Julio 29, 2018, 01:56:36 am »
Mmhhh... fracaso casi total.

No tengo idea como evitar que la wheel se llene de caratulas duplicadas, lo he probado en otro layout (con juegos) y hace lo mismo al aplicar algun tipo de filtro a la lista, no tengo ni idea como se puede evitar.

Sobre la optimización, tampoco pude encontrar cómo hacer eso que se me había ocurrido, asi que adjunto mi layout.nut completo y te marco los dos lugares que he modificado.

Mírate el bloque va desde las lineas 195 hasta 240. Allí he borrado la declaracion de una tabla que no se usaba y luego otra que tampoco se usaba la he renombrado para crear un indice alternativo con todos los nombres de juegos que aparecen en la wheel.

Lineas nuevas:
Código: [Seleccionar]
local wheel_titles = [];
Código: [Seleccionar]
// obtener el nombre del m3u para crear una lista paraleta a la wheel
// esta lista se usa para buscar el album a reproducir cuando se selecciona
// porque el index de la wheel no es el mismo si estamos dentro de una busqueda
local lt = split( dir_name, "\\" ); // separar por "\"
lt = split( lt.pop(), "/" ); // separar por "/"
wheel_titles.push( strip( lt.pop().slice( 0, -4 ) ) ); // sólo nombre del archivo sin la extensión;

Y algunas lineas que he borrado.

Luego en este otro bloque, a partir de la linea 486 agregué este for que busca en la lista de nombres anterior:

Código: [Seleccionar]
// buscar album seleccionado en la lista inicial de la wheel
local music_db_index = 0;
for( local i=0; i<wheel_titles.len(); i++ )
{
if( wheel_titles[i] == fe.game_info(Info.Name) )
{
music_db_index = i;
break;
}
}

Y a continuación se modifica este foreach:
      
Código: [Seleccionar]
// agregar temas a la lista de reproducción
//foreach( song in music_db[ fe.list.index ] )
foreach( song in music_db[ music_db_index ] )

No creo que tengas problemas en implementar estos cambios pero por si acaso pregunta!

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #131 en: Julio 29, 2018, 01:58:42 am »
Creo que funciona bien, pero al principio me dio la impresión de hacer cosas raras, asi que ponlo en cuarentena hasta estar seguros que va bien.

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Agregar Jukebox
« Respuesta #132 en: Julio 29, 2018, 02:11:03 am »
Si te fijas en mi layout.nut, está tu código del plugin de busqueda comentado. Está así porque probé con el plugin que viene de serie a ver si las cosas raras eran de este código o no.

Y no, hace las mismas cosas raras, pero creo que el problema no es del plugin de busqueda sino del modulo Conveyor, el que hace la wheel, que a veces al filtrar por palabra no muestra lo que debería, aunque el filtro está bien hecho. Y ademas lo hace de forma aleatoria, o eso me parece...

Por cierto, he borrado varias lineas a tu código, parece seguir funcionando igual :P


Desconectado iOtero

  • VIP
  • *
  • Mensajes: 2961
  • Gracias 104
  • Ciudad: Uno de Bilbao en Villanueva de la Cañada (Madrid)
  • Pais: España
  • Iniciales nick: ioc
Re:Agregar Jukebox
« Respuesta #133 en: Julio 31, 2018, 02:40:40 am »
Lo que tú has hecho, a mí no me funciona. Pero no pasa nada.  :D

Y mira que te gusta complicarte la vida.  ::) No hay que crear otra tabla paralela, sino crear la original pero filtrada.

Por lo que veo, lo único que hay que hacer es aplicar el filtro obtenido por el plugin, o la función que derivé yo, a la creación de music.db, para que se cree solo con los elementos filtrados, no con toda la base de datos.

El filtro se almacena en
Código: [Seleccionar]
fe.list.search_ruleque según el código del Mickelson, es el filtro a aplicar en cada momento.

A mí me funciona para sacar las carátulas filtradas en el CoverFlow perfectamente. Y sin carátulas duplicadas.

Pero como el music.db no está filtrado, pues va a su bola... Incluso con la tabla paralela que has creado.

Si el music.db no se puede filtrar con fe.list.search_rule, se puede crear una variable con el dato a buscar e intentar filtrar con ella.

Y eso es lo que yo no consigo: meterle un filtro a los foreach que has hecho tú para crear la music.db.

Este es el código más reducido que me permite filtrar las wheel sin problemas. En él está definida la variable de la que te hablo más arriba. Y sí, tenías razón, había código innecesario que ya he eliminado.  :-[

Código: [Seleccionar]

// Search
class Search
{
last_search="";
my_key="custom1";

constructor()
{
fe.add_signal_handler(this, "on_search_signal")
}

function normalize(my_search)
{
local words = split(my_search, " ");

local temp="";
foreach (w in words)
{
if (temp.len() > 0)
temp += " ";

local f = w.slice(0, 1);
temp += "["+f.toupper()+f.tolower()+"]"+w.slice(1);
}

return temp;


function on_search_signal(signal)
{
if (signal == my_key)
{
last_search = fe.overlay.edit_dialog(
"Search for:",
last_search);

// Esta es la variable que se podría utilizar para filtrar
// si no se puede hacer con el fe.list.search_rule =
local sel_game = "";

if (last_search.len() < 1)
fe.list.search_rule = "";
else
{
sel_game = last_search.toupper();

fe.list.search_rule = "Name contains "
+ normalize(last_search);


}

// ::print("DEBUG: fe.list: " + fe.list.search_rule + "\n");
return true;
}
return false;
}
}

local jbfs = Search();
« Última modificación: Julio 31, 2018, 02:57:53 am por zlagos »

 


* Ayuda con configuración emulador PXSX2  Autor: bakojo84 Foro: Emuladores 06/06/2024 (18:14)
* ZX Touch o el timo de la estampita  Autor: sirdrak Foro: Retroconsolas 05/06/2024 (06:07)
* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: hoz3 Foro: Salón Recreativo FaseBonus 04/06/2024 (05:52)
* Amiga Games + 1.9.6  Autor: empardopo Foro: Emuladores 03/06/2024 (20:21)
* El megapost del ZX Spectrum  Autor: empardopo Foro: Offtopic 03/06/2024 (20:13)
* ASUS, ¿me engaña, me tima o se rie de mí?  Autor: empardopo Foro: Offtopic 03/06/2024 (20:09)
* [PS4] PS4 5.05 - Should I Stay or Shoud I Go?  Autor: empardopo Foro: Consolas actuales 03/06/2024 (20:07)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 03/06/2024 (20:03)
* Volante PXN V9 - ¿Ganga... o tongo?  Autor: Zael Foro: Reviews tecnológicas 01/06/2024 (12:08)
* MPAGD (Multi Platform Arcade Game Designer)  Autor: Zael Foro: Creación de juegos 31/05/2024 (11:32)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 30/05/2024 (19:35)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 28/05/2024 (20:58)
* GB-Operator (Emulador GB/GBC/GBA en PC)  Autor: Zael Foro: Retroconsolas 28/05/2024 (20:12)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: arquillos Foro: Offtopic 27/05/2024 (11:38)
* ¿A qué estáis jugando ahora mismo?  Autor: joselopez Foro: Offtopic 25/05/2024 (01:08)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 24/05/2024 (10:21)
* Música y artistas aptos para nuestra jukebox  Autor: empardopo Foro: Offtopic 22/05/2024 (20:02)
* [Recomendacion] Series para ver  Autor: empardopo Foro: Offtopic 20/05/2024 (20:21)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: joselopez Foro: Offtopic 16/05/2024 (00:56)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: sirdrak Foro: Noticias de emuladores 13/05/2024 (00:53)
* La inteligencia artificial ha llegado a la música  Autor: Zael Foro: Offtopic 12/05/2024 (20:24)
* Info sobre MARP  Autor: empardopo Foro: Records y wolfmame 12/05/2024 (20:09)
* Stop the express  Autor: empardopo Foro: ZX Spectrum 12/05/2024 (20:05)
* Recopilatorio Retos: Desde el 1 hasta .....  Autor: montypepa Foro: Competiciones y concursos 05/05/2024 (21:30)
* iojukebox Theme, un JukeBox para Attract-Mode  Autor: gucaza Foro: Themes AM 04/05/2024 (02:47)
* Nuevo miniPc para mi vieja recre y juegos Windows compatibles formato 4:3  Autor: jmpuk Foro: Offtopic 02/05/2024 (23:31)
* Homenaje a Locomalito  Autor: beaches Foro: Otros programas 02/05/2024 (23:03)

Reto 320: Wizard of Wor
Buscaunchollo.click