Zwei PSS mit Code aus DarkOne: Filter werden nicht angezeigt

Begonnen von Mazey, 22. Oktober 2011, 18:21:51

Vorheriges Thema - Nächstes Thema

Mazey

Ich benutze Foobar 1.8, CUI und habe insgesamt 3 PSS in meinem Layout; davon zwei mit Tedgos Code von hier Nun habe ich in einem Script auch "do.panel.show" ausgetauscht (wie in der Beschreibung empfohlen).
Den $init code habe ich auch versucht einzufügen, allerdings funktioniert das aus irgendeinem Grund nicht (welches Panel ich auch einstelle, es wird immer das angezeigt, das ich als letztes offen hatte - den Grund dafür hab ich noch nicht herausgefunden  :-[ )

Ich habe in einem der beiden PSS noch einen Horizontal Splitter mit drei Filtern.


Mein Problem ist, dass beim Start von Foobar die Filter nicht angezeigt werden.


Wenn ich rechts klicke, habe ich das Kontextmenü vom Splitter und kann mit Show Caption die Filter problemlos anzeigen, allerdings ist es einerseits bißchen nervig, andrerseits möchte ich eben verhindern, dass ich doch einen Fehler irgendwo drinhabe und frage daher lieber hier einmal nach.

Etwas, was mir komisch vorkommt, ist dass im rechten PSS unter globalen Variablen auch einmal die Variable des linken PSS vorkommen (das do.panel.switch, was ja im anderen PSS Code geändert worden ist). Allerdings blicke ich beim PSS noch überhaupt nicht durch  :-[ weiß daher nicht, ob das so richtig ist oder nicht.

Wenn ich nun den rechten PSS bei "title format mode on startup: follow cursor" stelle, wird das Splitterpanel mit den drei Filtern geladen. Wäre das denn die Lösung, oder muss ich etwas anderes verändern?

Falls wichtig, kann ich gern beide Codes posten; ich wollt nur nicht gleich das Posting so riesig lang machen  :-[








tedgo

Dass du bei Verwendung von $init_ps_global() und dem Umschalten mit globalen Variablen immer das zuletzt geöffnete Panel beim nächsten foobar2000-Start hast, ist durchaus so gewollt.
Das blanke Panel dürfte bei Verwendung von $init_ps_global() jedenfalls nicht vorkommen. Oder hast du da auch das Problem bevor du einen Button betätigst?

Falls ja, poste bitte mal deinen Code in einer Codebox.

Mazey

#2
Hab noch nicht darauf geachtet, wenn ich Foobar neu starte und den Filterpanel zuletzt offen hatte, ob die dann angezeigt werden, sorry. Anscheinend geht es weg, wenn ich beim PSS, der die Filter enthält, auf "follow cursor" stelle.
Ich poste mal den Code von beiden Panelen.

Linkes PSS (ohne Filter):

$init_ps_global(panel.switch.two,2)


// ----- PANEL PLACEMENT -------------------------------------------------------------------------------------

$puts(panel.h,$sub(%ps_height%,24))

$movepanel(0,0,0,%ps_width%,$get(panel.h))
$movepanel(1,0,0,%ps_width%,$get(panel.h))
$movepanel(2,0,0,%ps_width%,$get(panel.h))
$movepanel(3,0,0,%ps_width%,$get(panel.h))
$movepanel(4,0,0,%ps_width%,$get(panel.h))
$movepanel(5,0,0,%ps_width%,$get(panel.h))
$movepanel(6,0,0,%ps_width%,$get(panel.h))
$movepanel(7,0,0,%ps_width%,$get(panel.h))

// ----- SHOWPANEL ---------------------------------------------------------------------------------------------

$showpanel(0,$ifequal(%panel.switch.two%,1,1,0))
$showpanel(1,$ifequal(%panel.switch.two%,2,1,0))
$showpanel(2,$ifequal(%panel.switch.two%,3,1,0))
$showpanel(3,$ifequal(%panel.switch.two%,4,1,0))
$showpanel(4,$ifequal(%panel.switch.two%,5,1,0))
$showpanel(5,$ifequal(%panel.switch.two%,6,1,0))
$showpanel(6,$ifequal(%panel.switch.two%,7,1,0))
$showpanel(7,$ifequal(%panel.switch.two%,8,1,0))

// ----- BUTTON-VARIABLES -------------------------------------------------------------------------------------

$puts(col1,0-255-255)
$puts(col2,150-150-150)
$puts(dir,hcenter vcenter)
$puts(btn.y,$sub(%ps_height%,24))
$puts(div.x,$div(%ps_width%,8))

// ----- BUTTONS -------------------------------------------------------------------------------------------------

$font(Impact,10,)
$textbutton(0,2,1,1,,,CONTEXT:Main Menu/File/,,)
$textbutton(0,$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(0)),0,$getcaption(0),RES),$ifgreater($len($getcaption(0)),0,$getcaption(0),RES),SETGLOBAL:panel.switch.two:1;REFRESH,fontcolor:$ifequal(%panel.switch.two%,1,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($get(div.x),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(1)),0,$getcaption(1),RES),$ifgreater($len($getcaption(1)),0,$getcaption(1),RES),SETGLOBAL:panel.switch.two:2;REFRESH,fontcolor:$ifequal(%panel.switch.two%,2,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),2),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(2)),0,$getcaption(2),RES),$ifgreater($len($getcaption(2)),0,$getcaption(2),RES),SETGLOBAL:panel.switch.two:3;REFRESH,fontcolor:$ifequal(%panel.switch.two%,3,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),3),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(3)),0,$getcaption(3),RES),$ifgreater($len($getcaption(3)),0,$getcaption(3),RES),SETGLOBAL:panel.switch.two:4;REFRESH,fontcolor:$ifequal(%panel.switch.two%,4,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($div(%ps_width%,2),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(4)),0,$getcaption(4),RES),$ifgreater($len($getcaption(4)),0,$getcaption(4),RES),SETGLOBAL:panel.switch.two:5;REFRESH,fontcolor:$ifequal(%panel.switch.two%,5,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),5),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(5)),0,$getcaption(5),RES),$ifgreater($len($getcaption(5)),0,$getcaption(5),RES),SETGLOBAL:panel.switch.two:6;REFRESH,fontcolor:$ifequal(%panel.switch.two%,6,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),6),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(6)),0,$getcaption(6),RES),$ifgreater($len($getcaption(6)),0,$getcaption(6),RES),SETGLOBAL:panel.switch.two:7;REFRESH,fontcolor:$ifequal(%panel.switch.two%,7,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),7),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(7)),0,$getcaption(7),RES),$ifgreater($len($getcaption(7)),0,$getcaption(7),RES),SETGLOBAL:panel.switch.two:8;REFRESH,fontcolor:$ifequal(%panel.switch.two%,8,$get(col1),$get(col2)),fontcolor:$get(col1))


Rechtes PSS(mit Filter):

$init_ps_global(do.panel.switch,6)

// ----- PANEL PLACEMENT -------------------------------------------------------------------------------------

$puts(panel.h,$sub(%ps_height%,24))

$movepanel(0,0,0,%ps_width%,$get(panel.h))
$movepanel(1,0,0,%ps_width%,$get(panel.h))
$movepanel(2,0,0,%ps_width%,$get(panel.h))
$movepanel(3,0,0,%ps_width%,$get(panel.h))
$movepanel(4,0,0,%ps_width%,$get(panel.h))
$movepanel(5,0,0,%ps_width%,$get(panel.h))
$movepanel(6,0,0,%ps_width%,$get(panel.h))
$movepanel(7,0,0,%ps_width%,$get(panel.h))


// ----- SHOWPANEL ---------------------------------------------------------------------------------------------

$showpanel(0,$ifequal(%do.panel.switch%,1,1,0))
$showpanel(1,$ifequal(%do.panel.switch%,2,1,0))
$showpanel(2,$ifequal(%do.panel.switch%,3,1,0))
$showpanel(3,$ifequal(%do.panel.switch%,4,1,0))
$showpanel(4,$ifequal(%do.panel.switch%,5,1,0))
$showpanel(5,$ifequal(%do.panel.switch%,6,1,0))
$showpanel(6,$ifequal(%do.panel.switch%,7,1,0))
$showpanel(7,$ifequal(%do.panel.switch%,8,1,0))

// ----- BUTTON-VARIABLES -------------------------------------------------------------------------------------

$puts(col1,0-255-255)
$puts(col2,150-150-150)
$puts(dir,hcenter vcenter)
$puts(btn.y,$sub(%ps_height%,24))
$puts(div.x,$div(%ps_width%,8))

// ----- BUTTONS -------------------------------------------------------------------------------------------------

$font(Impact,10,)
$textbutton(0,2,1,1,,,CONTEXT:Main Menu/File/,,)
$textbutton(0,$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(0)),0,$getcaption(0),RES),$ifgreater($len($getcaption(0)),0,$getcaption(0),RES),SETGLOBAL:do.panel.switch:1;REFRESH,fontcolor:$ifequal(%do.panel.switch%,1,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($get(div.x),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(1)),0,$getcaption(1),RES),$ifgreater($len($getcaption(1)),0,$getcaption(1),RES),SETGLOBAL:do.panel.switch:2;REFRESH,fontcolor:$ifequal(%do.panel.switch%,2,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),2),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(2)),0,$getcaption(2),RES),$ifgreater($len($getcaption(2)),0,$getcaption(2),RES),SETGLOBAL:do.panel.switch:3;REFRESH,fontcolor:$ifequal(%do.panel.switch%,3,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),3),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(3)),0,$getcaption(3),RES),$ifgreater($len($getcaption(3)),0,$getcaption(3),RES),SETGLOBAL:do.panel.switch:4;REFRESH,fontcolor:$ifequal(%do.panel.switch%,4,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($div(%ps_width%,2),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(4)),0,$getcaption(4),RES),$ifgreater($len($getcaption(4)),0,$getcaption(4),RES),SETGLOBAL:do.panel.switch:5;REFRESH,fontcolor:$ifequal(%do.panel.switch%,5,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),5),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(5)),0,$getcaption(5),RES),$ifgreater($len($getcaption(5)),0,$getcaption(5),RES),SETGLOBAL:do.panel.switch:6;REFRESH,fontcolor:$ifequal(%do.panel.switch%,6,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),6),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(6)),0,$getcaption(6),RES),$ifgreater($len($getcaption(6)),0,$getcaption(6),RES),SETGLOBAL:do.panel.switch:7;REFRESH,fontcolor:$ifequal(%do.panel.switch%,7,$get(col1),$get(col2)),fontcolor:$get(col1))
$textbutton($mul($get(div.x),7),$get(btn.y),$get(div.x),24,$ifgreater($len($getcaption(7)),0,$getcaption(7),RES),$ifgreater($len($getcaption(7)),0,$getcaption(7),RES),SETGLOBAL:do.panel.switch:8;REFRESH,fontcolor:$ifequal(%do.panel.switch%,8,$get(col1),$get(col2)),fontcolor:$get(col1))


Vielen Dank schon mal fürs Nachschauen!  :)

EDIT: Vielleicht hab ich mich auch doof ausgedrückt: Wenn ich Foobar starte, geht meist als erstes mein EsPanel auf, wenn ich danach auf Filter klicke, seh ich nix (Screenshot oben).

tedgo

#3
Kann jetzt in den jeweiligen Codes keinen Fehler entdecken.

Mit "Follow cursor" sollte das ganze nichts zu tun haben.

Übrigens: Dass die globalen Variablen auf der jeweiligen Registerkarte in den Splitter Settings in beiden PSS angezeigt werden muss schon so sein. Sie lassen sich von beiden PSS schalten - theoretisch. Deshalb ja "global".

Hast du denn überhaupt deine Musik in die Media Library hinzugefügt?

Mazey

#4
Klar :) Ich hab ne ganze Menge Daten in der Library; vieles falsch/schlecht getaggt, aber einiges auch schon bereinigt.
Muss mich berichtigen: Wenn ich "follow cursor" einschalte, bleiben die Filter auch leer ABER sobald ich umschalte (zB von "follow cursor" auf "now playing") dann kommen die Filter plötzlich.
Mir wäre halt sehr wichtig, den Fehler zu finden, weil ich seit ich die PSS verwende, auch das "Gefühl" hab, dass Foobar etwas wackeliger läuft. Kanns aber nun nicht belegen bzw benennen, bin leider auch nicht wirklich durch den Code durchgestiegen   :-\ Mit PSS kenn ich mich noch so garnicht aus.


EDIT: ok, halt dich fest! Ich hab eben den Versuch gemacht, den Splitter mit den Panels ins linke PSS zu legen und -- schau da, die Filter sind da, wenn ich drauf klicke. Kann ich natürlich so nicht lassen, weil im linken PSS nicht genug Platz für sie sind.  :o


EDIT2: Ich habs raus: im rechten PSS ist auch noch ein WSH Mod (Last.fm Pack von thuan von hier), daran liegt es! Nur in diesem (WSH) Code blick ich erst recht nicht durch; meine Script-kenntnisse sind _noch_ sehr dürftig :(

tedgo

WSH panel mod und PSS sind voneinander unabhängig und dürften sich gegenseitig nicht beeinflussen.
Allerdings kann es sein, das sich das WSH Panel den Fokus "grabscht".
Rechtsklicke mal darauf --> Configure und nimm den Haken bei "Grab Focus" raus.

Dass foobar2000 etwas "wackeliger" läuft, kann daran liegen, dass man unnötigerweise "Pseudo transparecy" aktiviert hat. Das würde ich wenn möglich immer deaktivieren (sowohl im PSS als auch im WSH Panel mod).

Mazey

Aaaalso: Ich glaub dir dass wirklich, wenn du sagst, dass die beiden Panels sich nicht beeinflussen dürften, schließlich hast du Erfahrung und eine Menge Ahnung von den Sachen. Allerdings hab ich nun alle Optionen durchgespielt und es bleibt dabei, dass die Filter nicht anspringen, wenn ich Foobar neu starte. Ich hab "grab focus" beim eben dem Last.fm WSH Panel rausgemacht, Pseudo Transparency sowieso, ich hab auch probiert, den betreffenden WSH Mod auf "hide at startup" im PSS zu setzen - ohne Erfolg. Sobald ich entweder im PSS oder im Last.fm WSH Panel die Config anklicke und auf ok klicke, sind die Filter aber da.
Eine andere Sache, die mir aufgefallen ist, ist dass ei den Filtern oft die Titel der Columns nicht angezeigt werden (also zB Artist, Album, File etc). Schalte ich dann zwischen den Filtern hin und her, werden sie wieder angezeigt. Das passiert unabhängig vom WSH Mod; will sagen, ich hab ihn vorhin ins linke Panel verschoben und grad eben sind wieder beim Neustart die Beschriftungen der Columns in den Filtern weggewesen.

Sorry, dass ich das so ausweite, aber mir kommt das alles komisch vor und, wie gesagt, übersteigt meine Kenntnisse bei weitem.




Mazey

Das ist nun echt peinlich aaaaber - ich hab eben festgestellt, dass dass das Problem wohl doch unabhängig vom WSH Mod ist. Um die Verwirrung komplett zu machen, scheint es auch nicht am Spitter mit den Filtern zu liegen - ein anderes Panel bleibt genauso leer.  :XP:

Ich hab viel rumprobiert in den letzten Stunden; einiges entfernt, neu gestartet etc. Mein jetziger Stand ist:
Das Problem tritt auf, wenn beide PSS acht Panele haben. Hat der linke noch einen Button "leer", werden im rechten alle Panele geladen.

Ich hab nun im rechten PSS im Code ebenso die Viariable ausgetauscht, sprich sie heißt jetzt nicht mehr do.panel.switch sondern panel.switch.one
Nun hab ich folgende globale Variablen:


Ist das alles richtig so? Entschuldige, wenn ich nochmal nachfrage, aber wie gesagt, ich versteh davon noch nicht sehr viel  :-\
Mir kommts halt irgendwie komisch vor, dass die Variable des rechten PSS zweimal vorkommt (panel.switch.one) und die des linken nur einmal.
Die WSH Mods habe ich schon alle durchsucht, ob da evtl. die gleiche Variable auftaucht (dachte eben, dass es daran liegen könnte), war aber nicht der Fall.

Das einzige, was mir noch einfiel, war, dass ich doch etwas an deinem Code in den PSS geändert habe.
Beim kurzen Drüberschauen wird es dir nicht aufgefallen sein, aber ich hatte doch etwas geändert, unzwar in Zeile 5, das %ps_height%,34 auf %ps_height%,24. Ich konnte nämlich nicht herausfinden, wie ich die "Buttonbar" etwas kleiner kriege und hab rumgetüftelt. Ich bin die meiste Zeit an meinem Netbook mit Foobar zugange und da ist mir das ein bißchen zu hoch gewesen. Aber auch ein Zurücksetzen auf 34 hat das Problem nicht behoben.

tedgo

Du könntest - wenn du die do.panel.switch Variable nicht mehr benötigst - diese aus den globalen Variablen löschen (in der Liste anklicken --> Delete oder einfach Delete all um alle Variablen neu szu starten).

Auch mit der Anzahl an Panels dürfte es hier keinen Zusammenhang geben. Und die Höhe (%ps_height%,34 oder 24) hat darauf keine Auswirkung.
Ich weiß nicht, woran es liegt...

Mazey

Ich glaub ich habs hingekriegt!
Aaaalso - ich hatte neben dem Last.fm WSH Mod, den ich oben verlinkt hab, noch ein Script von Marc2003 laufen (find jetzt leider den Link gerade nicht, kann ich gerne nachreichen). Nennt sich playcount sync und hat unter anderem customdb dabei (bzw das wird benötigt *gg*).
Man kann sich dann einen Lfm love Button einbinden und seine Lastfm-Listen mit der customdb abgleichen.

Während ich letzte Nacht (hab nicht geschlafen  :crazy2: ) alle WSH Mods abgekaspert hab auf merkwürdiges Verhalten bzw Hinweise in der Konsole, fiel mir auf, dass mit Last.fm nichts mehr funktionierte. Dann hab ich beide Komponenten nochmal frisch eingebunden und die customdb neu eingelesen.
Was soll ich sagen - seither funktioniert alles wunderbar (wie die letzten Tage ja auch  :uglystupid2:).

Auf der Lastfm-Seite stand etwas davon, dass sie gestern oder vorgestern einen Totalausfall (Server abgeschmiert) hatten; möglich, dass es mir da die beiden Komponenten gerissen hat.
Nun bin ich hundemüd und sauglücklich, weil alles wieder funktioniert und ich mich weder von deinem schönen PSS Script noch vom Lastfm Mod trennen muss  :smitten:

Aber was mir wirklich leid tut, ist, dass ich dich nun ganz umsonst bemüht hab mit meinem Zeugs  :-[
Naja, wenigstens hatte ich so mal endlich den Mut, mich hier zu registrieren :)
Uuuund nun hab ich auch mal die Gelegenheit, dir einfach Danke zu sagen für alles, was du hier geschrieben und zur Verfügung gestellt hast :)
Ich möchte jetzt nicht klingen wie bei "Lassie findet alleine nach Haus"  :crazy:, aber mir hat das in den letzten Wochen sehr viel gebracht, deine geduldigen, ausführlichen Antworten und Scriptbeispiele auszuprobieren. Wenn ich auch erst beim stinknormalen Title Formatting bin und noch lääääääängst nicht deine Postings zu WSH Mod Scripten durchgeackert hab ;) Da hab ich bisher nämlich den Einstieg vergebens gesucht :D

Und was ich schon die ganze Zeit denke: ich mag deinen Hund sehr :) Ich hab drei Katzen  ;)





tedgo

Hm, ist aber komisch. Der PSS und das WSH Panel mod sind voneinander unabhängig und sollten sich gegenseitig eigentlich nicht beeinflussen.

Na ja, sei es drum. Hauptsache es klappt wieder alles :)

P.S.: Wegen Hund: Der ist inzwischen 8 Jahre alt und schon ein wenig ergraut ;)
Katzen mag ich übrigens auch ganz gern. Hab aber selbst keine. Bekomme nur täglich Besuch vom Kater meiner Schwester, der zu mir vor ihren Hunden flüchtet und sich ein paar Stunden in meinem Bett zur Ruhe legt.

Mazey

Also, mein fach-unkundiger Eindruck war, dass das PSS einfach Probleme mit dem Refresh hatte, weil die WSH Mods sich quasi aufgehangen haben...? So ungefähr. Daher war Foobar so wakelig (ist mir auch einmal gecrasht, als ich den Lastfm Mod angeklickt hab) Nun ist aber alles wieder gut ;D

Dein Hund ist ja goldig! Er hat tatsächlich einen grauen Bart, wie ein alter Mann :D Irgendwie dacht ich vom Bild zuerst, es wär ein Mädchen :)
Meine Jungs kannst du hier angucken. Die sind leider gar nicht so amused von meinem derzeitigen Foobar-Wahn - immer vor dem Ding da  :uglystupid2:

(Im Offtopic könnte man ja echt mal einen Haustierfred aufmachen; sind doch hüben wie drüben (HA) sehr viele Tier-Avatare vertreten :) )