PSS und die relativen Pfade

Begonnen von Foo Foo, 12. Mai 2010, 08:51:56

Vorheriges Thema - Nächstes Thema

Foo Foo

Mit den Global Variables ist es möglich den Speicherort der images (Bilder) festzulegen...

$init_ps_global(images,%ps_foobar2000_path%\images\Silent Night)
%images%/Bild.png

+ wenn Player über das Kontextmenue geöffnet wird werden Buttons und Bilder korrekt angezeigt
+ wenn Player über die .exe (oder Verknüpfung) geöffnet wird werden Buttons und Bilder korrekt angezeigt

- wenn eine portable Installation gewählt wird und der Speicherort des Player sich verändert
   muss die Variable gelöscht werden und neu eingelesen werden

oder man legt den Speicherort der images (Bilder) so fest...

,images\Silent Night\Slist.png

+ wenn Player über die .exe (oder Verknüpfung) geöffnet wird werden Buttons und Bilder korrekt angezeigt
+ wenn eine portable Installation gewählt wird und der Speicherort des Player sich verändert
   werden Buttons und Bilder korrekt angezeigt

- wenn Player über das Kontextmenue geöffnet wird werden Buttons und Bilder nicht korrekt angezeigt

Frage:
Kennt jemand eine elegantere Lösung die keinen Nachteil hat ??

:crazy2:

tedgo

Hab das jetzt ausprobiert und kann dein Problem nicht nachvollziehen...
%ps_foobar2000_path% funktioniert bei mir auch mit einer portablen Version und wechselnden Laufwerksbuchstaben, ohne dass ich die Variable löschen und neu anlegen muss.

Foo Foo

Hier noch mal die Global Variablen Version...

//GLOBAL VARIABLES
$init_ps_global(images,%ps_foobar2000_path%\images\Silent Night)

//BUTTONS
$imagebutton($sub(%_width%,205),18,27,22,%images%/Slist1.png,%images%/Slist1.png,SETGLOBAL:Main.switch:1;REFRESH,,)

...vieleicht kommst Du ja dahinter?

tedgo

Ach, jetzt seh ich es:
Nimm statt $init_ps_global() bitte $set_ps_global().
Mit $init_ps_global() wird die Variable einmalig bei der Initialisierung der Config erstellt und sozusagen "fixiert". Das empfiehlt sich, wenn man Variablen für Buttons erstellt, diese per Buttonklick ändern kann und die beim nächsten Start von foobar2000 den letzten Stand beibehalten sollen (z. B. für Tabs im PSS).
Für Images empfiehlt sich das nicht, eben weil sich beim Start einer portablen foobar2000-Installation der Laufwerksbuchstabe u. U. ändern kann.
Dafür brauchst du $set_ps_global(), da diese Variable bei jedem foobar2000 Start neu "gesetzt" wird.

Ich hoffe, ich habe mich verständlich ausgedrückt. Ich versteh mich manchmal selbst nicht... :D