From 1d22ea404bd76fb6dadb728905eeba6bef3baf94 Mon Sep 17 00:00:00 2001 From: Rarder44 Date: Wed, 23 Nov 2022 18:50:30 +0100 Subject: [PATCH] music implementation progress --- apps/messages_light/messages_light.app.js | 99 ++++++++++++++++----- apps/messages_light/messages_light.music.js | 7 +- apps/messages_light/metadata.json | 3 +- 3 files changed, 83 insertions(+), 26 deletions(-) diff --git a/apps/messages_light/messages_light.app.js b/apps/messages_light/messages_light.app.js index daf173ab8..5b55ab762 100644 --- a/apps/messages_light/messages_light.app.js +++ b/apps/messages_light/messages_light.app.js @@ -53,6 +53,8 @@ var music=undefined; track:"", }*/ +let justOpen=true; + //TODO: RICORDARSI DI FARE IL DELETE @@ -63,32 +65,64 @@ var manageEvent = function(event) { LOG("manageEvent"); LOG(event); - if( event.id=="call"){ showCall(event); } else if( event.id=="music"){ - //TODO: - //se c'è qualcosa nella queue, quindi app già aperta, - //se musicRunngin==true, vuol dire che c'è già della musica in ascolto prima - // quindi non mostro nulla - //se prima era musicRunngin == false - //NON DOVREBBE NEANCHE ARRIVA QUA ( da codice nel proxy ) + + /* + //DEBUG -> save the event into file + let musicLogFile="music_log"; + let logMusic = require('Storage').readJSON(musicLogFile, true) || []; + logMusic.push(event); + require('Storage').writeJSON(musicLogFile, logMusic); + */ + + + //se c'è qualcosa nella queue, quindi app già aperta, + //se musicRunngin==true, vuol dire che c'è già della musica in ascolto prima + // quindi non mostro nulla + + //se prima era musicRunngin == false + //NON DOVREBBE NEANCHE ARRIVA QUA ( da codice nel proxy ) - //LOGICA DA QUA-> - //aggiorno i dati della musica - //quindi se mi arriva la notifica vuol dire che: - //l'app l'ho appena aperta -> visualizzo la schermata di musica - //oppure - //l'app era già stata aperta in modalità musica -> non faccio nulla ( avendo già aggiornato i dati della musica ) - //POI - //se c'è roba nella queue -> NON visualizzo la schermata di musica ( quando finirà la queue, la next visualizzerà la musica ) - //se non c'è roba nella queue -> aggiorno la visualizzazione + //LOGICA DA QUA-> + //aggiorno i dati della musica - + + + LOG("old music",music) + LOG("music event",event) + if( music==undefined) music={}; + Object.assign(music,event); + //tolgo tutto quello che non mi serve salvare ( non lo faccio prima perchè non so se l'event verrà usato da altri) + delete music.t; + delete music.id; + delete music.title; + delete music.new; + LOG("joined",music) + + + + //quindi se mi arriva la notifica vuol dire che: + //l'app l'ho appena aperta -> visualizzo la schermata di musica + //oppure + //l'app era già stata aperta in modalità musica -> non faccio nulla ( avendo già aggiornato i dati della musica ) + + //POI + //se c'è roba nella queue -> NON visualizzo la schermata di musica ( quando finirà la queue, la next visualizzerà la musica ) + //se non c'è roba nella queue -> aggiorno la visualizzazione + + + // ho unito le due condizioni di prima + + if( justOpen || EventQueue.length==0) + showMusic(); + + } else{ @@ -293,7 +327,17 @@ let showCall = function(msg) +let musicCode=undefined; +//visualizza cioè che c'è nella variabile music ( se undefined, richiama la next) +let showMusic=function(){ + if( music===undefined) next(); //TOCHECK: controllo rimuovibile? + //carico dinamicamente il codice per la musica ( non mi serve sempre ) + if(musicCode===undefined) musicCode = require("messages_light.music.js") //eval(require("Storage").read("messages_light.music.js")); + + musicCode.show(); + +} @@ -312,7 +356,16 @@ let next=function(){ if( EventQueue.length == 0) { LOG("no element in queue - closing") - setTimeout(_ => load()); + if( music!==undefined) + { + LOG("opened/received music -> show music"); + showMusic(); + } + else + { + LOG("no music -> close") + setTimeout(_ => load()); + } return; } @@ -339,12 +392,8 @@ let showMap=function(msg) { } -let showMusic=function(msg){ - //TODO: implementa tutte le funzionalità per visualizza la track in corso e gestire la musica -} - let CallBuzzTimer=null; @@ -525,9 +574,11 @@ let main = function(){ manageEvent(eventToShow); else { - LOG("file not found!"); - setTimeout(_ => load(), 0); + LOG("file event not found! -> Open in music mode"); + music={}; //imposto un oggetto nella variabile music, cosi non viene chiuso il programma dalla showMusic + setTimeout(_ => showMusic(), 0); } + justOpen=false; }; diff --git a/apps/messages_light/messages_light.music.js b/apps/messages_light/messages_light.music.js index 86a2b8f68..a9599784e 100644 --- a/apps/messages_light/messages_light.music.js +++ b/apps/messages_light/messages_light.music.js @@ -1,2 +1,7 @@ //TODO: -//codice che verrà evalutato dall'app per caricare l'interfaccia della musica \ No newline at end of file +//codice che verrà evalutato dall'app per caricare l'interfaccia della musica + + +exports.show = function() { + g.drawString("music",20,20); +} \ No newline at end of file diff --git a/apps/messages_light/metadata.json b/apps/messages_light/metadata.json index 3515a75c2..30b6cb288 100644 --- a/apps/messages_light/metadata.json +++ b/apps/messages_light/metadata.json @@ -14,7 +14,8 @@ {"name":"messages_light.settings.js","url":"messages_light.settings.js"}, {"name":"messages_light.img","url":"app-icon.js","evaluate":true}, {"name":"messagesProxy","url":"messages_light.messagesProxy.js"}, - {"name":"messages_light.boot.js","url":"messages_light.boot.js"} + {"name":"messages_light.boot.js","url":"messages_light.boot.js"}, + {"name":"messages_light.music.js","url":"messages_light.music.js"} ], "data": [{"name":"messages_light.settings.json"},{"name":"messages_light.NewMessage.json"}], "screenshots": [{"url":"screenshot-notify.png"} ,{"url":"screenshot-long-text1.png"},{"url":"screenshot-long-text2.png"}, {"url":"screenshot-call.png"} ]