Ratinganzeige im Album Art Panel

Begonnen von mexx, 21. August 2009, 14:13:37

Vorheriges Thema - Nächstes Thema

mexx

Nachdem ich leider die Ratinganzeige mit Bildern (jpg,png) im Tackinfo_mod Panel nicht meinen Wünschen entsprechend hinbekommen habe, habe ich es im Album Art Panel versucht.

Es zeigt mir auch alle zum jeweiligen Rating gehörenden Bilder richtig an.

Aber wenn ich bei einem laufenden Titel das Rating ändere, muss ich erst ins Panelfenster klicken, um die Änderung auch dort zu haben. Sonst wird, bis zum Neustart des Titels das Bild des alten Ratings angezeigt.

Dies sollte aber automatisch erfolgen. Geht das überhaupt und wenn ja, wie?

Danke schon mal für die Hilfe
mexx

TomPro

Auch hier steht im dazugehörigen Wiki die Antwort.

Es giebt 4 Bereiche di Du definieren kannst


// Global
// Background
// PerTrack
// PerSecond


Bei der überwachung von Datenveränderungen muss Du also den Bereich mit

// PerSecond

starten und dann deinen Code eingeben.

Gruß TomPro

fbuser

Zitat von: TomPro in 21. August 2009, 15:54:30
Auch hier steht im dazugehörigen Wiki die Antwort.
In diesem? Nö. Was du beschreibst, ist eine Krückenlösung, die sich auf das TrackInfo-Panel bezieht. Danach ist hier aber nicht gefragt. Für das Album-Art-Panel sehe ich für das gewünschte Verhalten momentan keine Lösung.

mexx

#3
Zitat von: fbuser in 21. August 2009, 16:31:15
...Für das Album-Art-Panel sehe ich für das gewünschte Verhalten momentan keine Lösung.

Schade.  :'( Muss ich mir was anderes einfallen lassen.

THX
mexx

Edit:
Hab ne Lösung fürs Album Art Panel gefunden.  :)

$if(%rating%,Pfad zum Bild\images%rating%.*,)
--> Bilder für den Ratingeintrag
--Pfad zum Bild\images.* --> Bild ohne Ratingeintrag

Haken rein bei Cycle sources during playback und Cycle time auf 1 sec stellen.

grimes

#4
Wäre das nicht eine Aufgabe für ein WSH-Panel?

Ein paar Codeschnipsel, die mir durch den Kopf gehen:

img = gdi.image(fb.FoobarPath + "Images\\" ...
(Rating-Bilder laden)

var rating = fb.TitleFormat("%rating%")
(Rating-Information einlesen)

if (rating = 5){img anzeigen}

mexx

Zitat von: grimes in 21. August 2009, 17:34:38
Wäre das nicht eine Aufgabe für ein WSH-Panel?.....

Möglich. Aber leider ist der WSH-Code für mich ein Buch mit sieben Siegeln. :-[

grimes

Hier der WSH-Code:

function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }

var imgPath = fb.FoobarPath + "images\\";
var rat1 = gdi.Image(imgPath + "images1.jpg");
var rat2 = gdi.Image(imgPath + "images3.jpg");
var rat3 = gdi.Image(imgPath + "images2.jpg");

function Rating (x,y,w,h){
var star = fb.TitleFormat("%rating%");

this.draw = function (gr) {
if(star.eval()==0) gr.DrawImage(rat1, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
    else {if(star.eval()==1) gr.DrawImage(rat1, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
              else {if(star.eval()==2) gr.DrawImage(rat1, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
                      else {if(star.eval()==3) gr.DrawImage(rat2, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
                                else {if(star.eval()==4) gr.DrawImage(rat3, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
                                          else {if(star.eval()==5) gr.DrawImage(rat3, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
                                                    else gr.DrawImage(rat1, 0, 0, window.Width, window.Height, 0, 0, 91, 91);
}}}}}
}
}

function on_paint(gr){
rating.draw(gr);
}

function on_size(){
ww = window.Width;
wh = window.Height;
rating = new Rating(0,0,ww,wh);
}


function on_playback_new_track(metadb) {
window.Repaint();
}

//EOF


Ich hoffe es funktioniert einigermaßen, ist schnell hin gehackt.
(Bilder bitte in images-Ordner)

mexx

#7
mmmhhh,

Bilder sind im Image-Ordner von Foobar.

Aber leider : Script Error.

grimes

Funktioniert bei mir klaglos. :-\
Die Bilder müssen images1.jpg bis images3.jpg heißen, sonst funktionierts nicht. In der Console gibts genauere Fehlermeldung.
Fürs sekündliche Repaint bitte folgende Funktion einfügen:


function on_playback_time(time){
window.Repaint();
}


Aber Du hast ja auch eine Lösung gefunden. :)

mexx

Zitat von: grimes in 24. August 2009, 13:23:09
Funktioniert bei mir klaglos. :-\
Die Bilder müssen images1.jpg bis images3.jpg heißen, sonst funktionierts nicht....

Bilder heißen genau so.

Zitat von: grimes in 24. August 2009, 13:23:09
....In der Console gibts genauere Fehlermeldung.....

Wie komm ich da ran?

Zitat von: grimes in 24. August 2009, 13:23:09
....Aber Du hast ja auch eine Lösung gefunden. :)

Naja, ne elegantere wär mir schon lieber. ;)

Gruß
mexx

grimes

Die WSH-Lösung würde ich auch bevorzugen, u.a. dafür ist das Panel ja da!

Zur Console gehts mit: Main Menu | View | Console

mexx

#11
Jetzt gehts. :top:

Keine Ahnung warum es jetzt geht.

Allerdings sollte dann, wenn es keinen Eintrag im Ratingfeld gibt, auch ein Bild angezeigt werden.

Name: images.jpg

Auch wenns jetzt fast OT ist, vielleicht kannst du ja nochmal helfen. ;)

grimes

Bitte Code an geeigneter Stelle einfügen oder ergänzen (rot):


//unter die anderen Variablen
var rat0 = gdi.Image(imgPath + "images.jpg");

//letzte Zeile im if-Bereich
else gr.DrawImage(rat0, 0, 0, window.Width, window.Height, 0, 0, 91, 91);


Bitte viertes Bild Deiner Wahl in images-Ordner kopieren (Name: images.jpg)

Nachfrage: Eigentlich sollte sich das Bild der Panelgröße anpassen (window.Height und window.Width), oder willst Du immer ein quadratisches Bild haben?

mexx

Zitat von: grimes in 24. August 2009, 13:58:44
Bitte Code an geeigneter Stelle einfügen oder ergänzen (rot):


//unter die anderen Variablen
var rat0 = gdi.Image(imgPath + "images.jpg");

//letzte Zeile im if-Bereich
else gr.DrawImage(rat0, 0, 0, window.Width, window.Height, 0, 0, 91, 91);


Bitte viertes Bild Deiner Wahl in images-Ordner kopieren (Name: images.jpg)

:top: :top: :top: Supi....funzt. So wollt ich es haben.  :crazy: :crazy: :crazy:

Zitat von: grimes in 24. August 2009, 13:58:44...Nachfrage: Eigentlich sollte sich das Bild der Panelgröße anpassen (window.Height und window.Width), oder willst Du immer ein quadratisches Bild haben?

Nein. Es ist jetzt alles korrekt. Hatte nur vergessen im Script die Bildgröße 0, 0, 80, 80 anzupassen.

THX
mexx