tedgo's "Dark One"-Theme für CUI

Begonnen von tedgo, 28. November 2008, 20:43:46

Vorheriges Thema - Nächstes Thema

tedgo

Ich hatte irgendwo mal 'ne kleine Anleitung gepostet...

Geht jedenfalls so:
- Rechtsklick auf Lyrics Panel --> Configure --> scroll runter zu Zeile 16 und ersetze diese mit:
a = utils.CheckComponent("foo_lyricsgrabber2", true);
- nun scroll runter zu Zeile 18 und ersetze diese mit:
c = a ? "Search all" : "get from db";

Evtl. musst du noch folgenden Schritt ausführen:
- rechtsklicke auf Lyrics Panel und wähle Properties
- markiere die Zeile "Lyrics Search command" und betätige "Delete" --> "Apply --> "OK"

Damit wird der Befehl "Search all" genutzt.
Du kannst natürlich auch stattdessen einen anderen Befehl ausführen lassen (z. B. deine Scripts), dazu musst du nur "Search all" mit dem jeweiligen Befehl ersetzen.

Ich werde das standardmäßig ändern in der nächsten Version (wird wohl 2.1.1, weil keine großen Änderungen dazukommen). Dauert aber noch.

Ein Update wird dann leichter sein, als auf eine v2.2 mit größeren Änderungen.
Man braucht dann nur das jeweilige Script auszutauschen (die liegen ja bei).

Beagleman

Prima, hat geklappt.

Vielen Dank!  :)

econaut

#707
Hallo,

ich würde gerne wissen ob das Dark One Theme auch mit der neuen 1.1. Version von foobar funktioniert.

danke!
Für foobar2000 nach fünf Jahren Linux auf Windows gewechselt ;-)

tedgo

Ja, allerdings werden die Components in den "Components"-Ordner abgelegt und nicht im Profilpfad unter "user-components".
Kann man allerdings nach dem Entpacken von DarkOne und dem Laden der FCL ändern, indem man den foobar2000-Installer nochmals ausführt und die gewünschte Option wählt.

DarkOne v2.1 ist aber noch nicht an das neue foo_playcount 3.0 angeglichen! Daran - und an einer kleinen Änderung am Lyrics Panel und dem Anpassen an die letzte ELPlaylist - arbeite ich die nächste Woche(n) (kommt darauf an, wann ich endlich Zeit dazu finde).
Wer jetzt DarkOne v2.1 hat, braucht dann nur die entsprechenden Scripts zu laden und nicht die künftige FCL (damit andere, eigene Einstellungen weitgehend erhalten bleiben).

tedgo

Ich arbeite gerade an DarkOne v2.2 (doch ein Versionssprung wegen foobar2000 1.1 und dessen neuer Components-Verwaltung, trotz nur gerngfügiger Änderungen an DarkOne selbst).
Jetzt stehe ich aber vor einem kleinen Problem: Wie gehe ich zukünftig mit den Components um?

Bislang habe ich sie ja aus dem selbst extrahierenden Archiv einfach in den Components-Ordner entpackt. Nun mit foobar2000 1.1 gibt es gleich drei verschiedene Möglichkeiten:
1) weiterhin in den Components-Ordner
2) bei Standard-Installationen in den Profilpfad/user-components
3) bei portablen Installationen in den Programmpfad/user-components

Wohin soll ich die Components zukünftig entpacken lassen?

Alle drei Fälle könnten dazu führen, dass der User die Components u. U. doppelt hat, wenn er seine Components am jeweils anderen Ort gespeichert hat...

Oder hat jemand eine Idee, wie ich den User beim Extrahieren eine Auswahlmöglichkeit lassen kann?
Möglicherweise mit NSIS, Inno-Setup oder WiX (hat da jemand entsprechende Kenntnisse und könnte mir bei einem "Installer" helfen? Ich habe nämlich keine Idee über diese Art der Setup-Erstellung...)?

Ich möchte eben dem User die "Installation" so einfach wie möglich machen :)

Der Internet

also portable nutze ich persönlich nicht, aber das heißt ja nix. Ob es bleibt wie es ist oder in den neuen Profilordner kommt... ist mir relativ egal. Allerdings denke ich das die meisten User eh nur einen benutzer an ihrem Rechner angemeldet haben. Aber generell wäre ein Auswahlmenü natürlich schon die beste Lösung!
Im Notfall muss halt ins Manual  schreiben wo man Components hinkopieren muss damit etwa Portable klappt.

tedgo

#711
Ich hatte schon überlegt, ob ich überprüfe, wohin DarkOne entpackt wird.
Voreingestellt ist ja %programfiles%\foobar2000.
Wird dahin auch entpackt könnte ich ja die Components unter %appdata%\foobar2000\user-components ablegen, ansonsten in den Programmpfad/user-components (weil ich dann eine portable Installation vermute).
Ist aber auch nicht ideal. Und diejenigen, die ihre Components auch weiterhin im components-Ordner speichern möchten gingen da leer aus...

Eine Auswahlmöglichkeit für den User wäre natürlich das beste, nur weiß ich nicht, wie ich das in das selbst extrahierende 7-zip-Archiv einbasteln könnte...

EDIT:
Ich machs mir jetzt einfach:
Ich entpacke das ganze Gelump in den foobar2000-Profilpfad anstatt dem Programmpfad. Wer eine portable Installation erstellen will, muss nur den Pfad der portablen Installation auswählen. Das Risiko, dass jemand seine alten Components noch im alten %programfiles%foobar2000\components-Ordner hat und so möglicherweise manche Components doppelt hat, muss ich dann halt eingehen (ich kann ja einen Hinweis geben, den foobar2000-Installer vor der DarkOne-Installation auszuführen und die Components dadurch in den Ordner %appdata%foobar2000\user-components zu verschieben).

Mit den neuen user-components sind die Components in einer Standard-Installation ja ohnehin nur noch für den jeweiligen User verfügbar, da brauche ich auch die DarkOne-Dateien nicht im Programmordner, sondern nur für den jeweiligen User. Im Profilpfad ist der Ordner dann besser aufgehoben.
Freilich wäre ein richtiger Installer (NSIS, INNO oder WiX) besser, aber so gehts auch :).
Wer eine bessere Idee hat, oder mir sogar einen Installer basteln kann, möge sich bei mir melden.

Beagleman

Hallo tedgo,

freue mich schon auf die neue Version.  :)

Ich hätte da noch ein Anliegen.

Wenn man diesen Thread mal durchliest, dann hatten die Cover in einer früheren Version wohl mal einen Rahmen. Vor etwa einem Jahr gab es da auch mal die Diskussion über eine "Veredelung" des Covers. Damals ging es um ein CD-Case. Auch wenn deine negative Meinung dazu deutlich geworden ist (Grafiken sind leider nicht mehr zu sehen) würde ich mir doch sehr gern wünschen, dass man zumindest die Option hat einen einfachen Border um das Cover zu ziehen und/oder es ggf. mit einer Art "Glanzgrafik" zu überziehen. Das muss ja nicht vorab aktiviert und auch nicht gleich über ein Bedienfeld konfigurierbar sein. Aber einen vorbereiteten Code und eine entsprechende Erklärung in der Bedienungsanleitung fänd ich prima.

Ich hatte damals den Eindruck, dass das kein zu großer Aufwand sei. Könntest du dir vorstellen dieses Feature irgendwie einzubinden? Dark One ist so schön gestylt, da kommen mir die Cover fast schon wie ein Fremdkörper darin vor.  :D

geo

@tedgo
Jetzt stehe ich aber vor einem kleinen Problem: Wie gehe ich zukünftig mit den Components um?

Meine persönliche Meinung dazu, wieso werden in Windows Programmteile über das ganze System verstreut, werd ich nicht mehr begreifen. Jeder Progger hat da seine eigen Vorstellungen, wenn man aber was sucht, geht es meist nur noch mit der Windowssuche und selbst dann findet man es nicht mehr.:(
Die Dateien sind Programmbestandteile also in den Programmpath. Ist auch beim sichern der Dateien einfacher.


Hast Du was gefunden das die Lyrics wieder geholt werden? Ich fand es prima in der letzten Version, das die Lyrics ins MP3 gespeichert werden. Nur leider geht es seit einigen Wochen nicht mehr. >:(

maxx.h

Hi tedgo,
Speichere sie unter %appdata%\foobar2000\user-components

Generell sollte DarkOne keine einzige Datei im %programfiles%\foobar2000 Ordner modifizieren/ablegen.
Das sieht die Security Policy seit Vista so vor, deshalb würde ich mich auch daran halten.

tedgo

@Beagleman
Die neue Version wird nur minimalste Änderungen haben (z. B. die neue user-components-Verwaltung unterstützen und auf foo_playcount 3.0 abgestimmt sein - da lassen sich ja nun alle Dateien bewerten und erhalten Statistiken, nicht nur die aus der Media Library. Da muss ich kleine Änderungen an den zugehörigen Scripts vornehmen).

Eine "Glanzgrafik" wäre recht einfach:
Erst einmal brauchst du eine solche Grafik (die am besten quadratisch sein sollte, sonst verzerrt es zu stark).
Diese kopierst du am besten in den Ordner DarkOne21\Images.
Dann musst du nur im Script in Zeile 7 folgendes schreiben (der Name des Bildes ist in diesem Beispiel Gloss.png):
var gloss_img = gdi.Image(configPath + "Images\\Gloss.png");
und in Zeile 249 fügst du folgende Zeile ein:
gloss_img && gr.DrawImage(gloss_img, 0, 0, ww, wh, 0, 0, gloss_img.Width, gloss_img.Height);

Um einen Rahmen herumzuzeichnen könnte man den im PSS "malen". Geht aber auch im WSH Panel mod.
Aber ein Schritt nach dem anderen... ;)

@geo
Da in foobar2000 mit der neuen components-Verwaltung die user-components pro Benutzer angelegt werden (und sich auch nur so mit dem Updater erneuern lassen) wäre es nicht sinnvoll, die DarkOne-Dateien weiterhin im Programmpfad abzulegen.
Wenn nun nämlich ein anderer Nutzer versucht, die FCL aus dem Programmordner zu importieren, guckt er wegen fehlender Components in die Röhre ;)
Aber mal sehen, vielleicht fällt mir ja noch was ein.

Zu den Lyrics:
Da gibt es ein Workaround:
Zunächst mal brauchst du das hier: http://www.foobar2000.org/components/view/foo_lyricsgrabber2
UNBEDINGT VOR DER INSTALLATION DES PLUGINS DAS ALTE foo_lyricsgrabber LÖSCHEN!!!

Dann liest du das hier: http://foobar-users.de/index.php?topic=1633.msg17530#msg17530

@maxx.h
Habe ich eigentlich auch vor :)
Aber wie gesagt, vielleicht fällt mir doch noch ein, wie ich dem User die Entscheidung selbst überlassen kann (wer z. B. DarkOne für alle Benutzer installieren möchte, kann mit den user-components und den DarkOne-Dateien im Profilordner wenig anfangen...).

Beagleman

Zitat von: tedgo in 11. September 2010, 17:07:39
Eine "Glanzgrafik" wäre recht einfach:
Erst einmal brauchst du eine solche Grafik (die am besten quadratisch sein sollte, sonst verzerrt es zu stark).
Diese kopierst du am besten in den Ordner DarkOne21\Images.
Dann musst du nur im Script in Zeile 7 folgendes schreiben (der Name des Bildes ist in diesem Beispiel Gloss.png):
var gloss_img = gdi.Image(configPath + "Images\\Gloss.png");
und in Zeile 249 fügst du folgende Zeile ein:
gloss_img && gr.DrawImage(gloss_img, 0, 0, ww, wh, 0, 0, gloss_img.Width, gloss_img.Height);

Um einen Rahmen herumzuzeichnen könnte man den im PSS "malen". Geht aber auch im WSH Panel mod.
Aber ein Schritt nach dem anderen... ;)

Lieben Dank für deine prompte Mühe.  :top:

Leider passt sich Gloss.png in der Größe nicht an das Coverbild an, sondern ragt an allen Seiten darüber hinaus.

Ich habe die zwei Zeilen so eingefügt:

.
.
.
// ==/PREPROCESSOR==
var gloss_img = gdi.Image(configPath + "Images\\Gloss.png");
var g_img = null;
.
.
.
gr.GdiDrawText(c_arr[g_state], dsp_font, g_bcol, 10, 10, 125, 30, 33);
}
gloss_img && gr.DrawImage(gloss_img, 0, 0, ww, wh, 0, 0, gloss_img.Width, gloss_img.Height);}

// ----- MOUSE ACTIONS ---------------------------------------------
.
.
.


Eine Idee woran es liegen könnte?

tedgo

Ach so, du willst, dass das Gloss.png immer die gleiche Größe und das gleiche Seitenverhältnis hat, wie das aktuelle Cover?
Dann nimm die Zeile 249 wieder raus (aber lass die Klammer am Ende stehen!) und füge stattdessen in Zeile 242 folgendes ein:
      gloss_img && gr.DrawImage(gloss_img, x, y, w, h, 0, 0, gloss_img.Width, gloss_img.Height, 0, Math.abs(g_fade));

(So sollte es funktionieren, habe ich jetzt aber nicht getestet...)

Beagleman

Zitat von: tedgo in 12. September 2010, 18:23:12
Ach so, du willst, dass das Gloss.png immer die gleiche Größe und das gleiche Seitenverhältnis hat, wie das aktuelle Cover?
Macht eine Glanzgrafik denn anders überhaupt Sinn?  :baseball:

Jetzt klappt es prima! Vielen lieben Dank!  :crazy:

Wenn du wieder Zeit und Muße für den nächsten Schritt hast (Stichwort "Border"), dann lass es uns wissen.  ::)

tedgo

Zeit hätte ich im Moment wohl eher als Muse... :D

Zum Gloss-Cover:
Ich dachte eben, der Gloss-Effekt soll über das gesamte Panel erscheinen. Aber hast schon Recht, nur im Seitenverhältnis de3s Covers macht es natürlich mehr Sinn.