foobar2000 auf Deutsch

foobar2000 => Customize => Default UI => Thema gestartet von: mexx in 09. November 2022, 16:09:21

Titel: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 09. November 2022, 16:09:21
Vorab...ich habe v2 64bit erst einmal portable installiert (s. Anhang) Die Konfiguration basiert hauptsächlich auf einer Konfiguration von Grimes.

Jetzt meine ersten Fragen:

1. In wie weit kann man eigentlich in DUI selbst konfigurieren? Zusätzliche Fenster hinzufügen für andere Anzeigen usw.(z.B. über Plugins). Oder geht das nicht?

2. Unter dem Reiter Images befindet sich ein Reiter Flag. Kann ich diesen selbst so konfigurieren, das er mir die Landesflagge des Artist anzeigt?
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 09. November 2022, 17:23:15
Konfigurieren: View | Layout | Enable layout editing mode

Flag: Habe mir ein Skript für JPanel Script 3 geschrieben
//flag by grimes
//fb2k v2+, JScript Panel 3+
//DUI/CUI ready

// ==PREPROCESSOR==
// @name "flag"
// @version "2"
// @author "grimes"
// ==/PREPROCESSOR==


var cfg_foobarpath = window.GetProperty("foobar path:", fb.Profilepath);
var cfg_flag = window.GetProperty("flag folder:", "flags");
var svg_file = cfg_foobarpath + cfg_flag + "\\noflag.svg";
var svg_content = utils.ReadUTF8(svg_file);

var dui = window.IsDefaultUI;

var original = utils.LoadSVG(svg_file);

function on_paint(gr) {
    gr.FillRectangle(0, 0, window.Width, window.Height, dui == 1 ? window.GetColourDUI(1) : window.GetColourCUI(3));  
    if (original) {
        var scale = 0;
        var x = 0,
            y = 0;
        var scale_w = window.Width / original.Width;
        var scale_h = window.Height / original.Height;

        if (scale_w <= scale_h) {
            scale = scale_w;
            y = (window.Height - original.Height * scale) / 2;
        } else {
            scale = scale_h;
            x = (window.Width - original.Width * scale) / 2;
        }
        gr.DrawImage(original, x, y, original.Width * scale, original.Height * scale, 0, 0, original.Width, original.Height);
    }
}

if(fb.IsPlaying || fb.IsPaused) {
    country = fb.TitleFormat("%composer_nation%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint();  
}
else {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}

function on_playback_new_track() {
    country = fb.TitleFormat("%composer_nation%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint();
}

function on_playback_stop(reason) {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}
Die Flaggen müssen im svg-Format vorliegen (download Anhang). Ich lasse die %composer_nation% anzeigen.

Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 14:25:38
ok. THX.

und weiter gehts:

1. Könnte man die Anzeige der Seekbar durch einen laufenden Balken ersetzen. Man kann hier den Lautstärkeregler öfter mit der Seekbar verwechseln.

2. Wie bekommt man unter den Reiter Text auch Text rein? Ich habe viele Infos zum Artist in Text- und/oder lfml-Dateien.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 10. November 2022, 16:38:54
1. Geht nicht
2. JScript Panel 3, sample scripts: Text Display oder Text Reader



Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 18:18:28
Zitat von: grimes in 10. November 2022, 16:38:541. Geht nicht
2. JScript Panel 3, sample scripts: Text Display oder Text Reader





Super  :top:

Habs auch mit dem entsprechenden Pfad hinbekommen.

THX  :top:
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 19:37:41
So langsam kann ich mich mit der v2 64bit anfreunden. :)

Jetzt habe ich eigentlich wieder alles beisammen, was ich vorher in der Konfig hatte (s.Anhang).

Jetzt müsste ich nur noch den Custom Title im Text in die Mitte bekommen. Auf die Anzeige der Flagge des Heimatlandes des/der Interpreten kann ich verzichten.

Vielen Dank an Grimes für die tolle Hilfe.  :top:
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 10. November 2022, 20:23:35
Center: Geht nicht.
Du musst noch die Schriftart "FontAwesome" installieren. https://github.com/marc2k3/jscript-panel/releases
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 20:30:54
Ich hab die Schriftart installiert. Aber wie erkenne ich in foobar, ob die wirklich installiert ist?
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 10. November 2022, 20:35:58
In Text Reader ist bei längerem Text unten ein Pfeil anstatt eines hässlichen Kästchens.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 20:38:14
Ahhhh, übersieht man glatt.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 10. November 2022, 21:11:30
Center: Die Lösung

Füge ein im Skript (Configure) nach var panel = new _panel();
panel.draw_header = function (gr, text) {
gr.WriteText(text, this.fonts.title, this.colours.highlight, LM, 0, this.w - (LM * 2), TM, DWRITE_TEXT_ALIGNMENT_CENTER, DWRITE_PARAGRAPH_ALIGNMENT_CENTER, DWRITE_WORD_WRAPPING_NO_WRAP, DWRITE_TRIMMING_GRANULARITY_CHARACTER);
gr.DrawLine(LM, TM + 0.5, this.w - LM, TM + 0.5, 1, this.colours.highlight);
}
https://hydrogenaud.io/index.php/topic,110516.msg1018891.html#msg1018891
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 21:27:12
Ich mach wohl wieder was falsch. s. Anhang.

Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 10. November 2022, 21:32:39
Da fehlt ein } vor var text.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 10. November 2022, 21:43:03
ok. Habs hinbekommen. THX
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 13. November 2022, 13:11:56
...und noch eine Frage:

Kann man die blaue "Überschrift" in Playlist View für das jeweilige Album irgendwo/irgendwie selbst gestalten?

s.Anhang
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 13. November 2022, 15:13:02
Die Schriftgröße kannst Du nur für die gesamte Playlist ändern: Preferences | Display | DUI | Colors & Fonts | Fonts | Playlists

Die Farbe: Preferences | Display | DUI | Colors & Fonts | Colors | Highlight

Die Syntax: Preferences | DUI | Display | Playlist View | Custom grouping schemes
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 13. November 2022, 15:19:29
Zitat von: grimes in 13. November 2022, 15:13:02Die Syntax: Preferences | DUI | Display | Playlist View | Custom grouping schemes

Dort habe ich eine neue Syntax geschrieben und als "new" gespeichert:

%artist% - %Album% - %date% [%codec% / %PLR_album%]
Aber es tut sich nichts. :(
Oder muss ich die erst irgendwo aktivieren?
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 13. November 2022, 15:32:35
Ja, Du musst aktivieren: rechtklick Playlistkopf | Groups. Dann Schema auswählen.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 13. November 2022, 16:05:16
Ahhh ja. THX

Das muss man halt wissen.  ;)
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 15. November 2022, 16:16:56
Zitat von: grimes in 09. November 2022, 17:23:15Konfigurieren: View | Layout | Enable layout editing mode

Flag: Habe mir ein Skript für JPanel Script 3 geschrieben
//flag by grimes
//fb2k v2+, JScript Panel 3+
//DUI/CUI ready

// ==PREPROCESSOR==
// @name "flag"
// @version "2"
// @author "grimes"
// ==/PREPROCESSOR==


var cfg_foobarpath = window.GetProperty("foobar path:", fb.Profilepath);
var cfg_flag = window.GetProperty("flag folder:", "flags");
var svg_file = cfg_foobarpath + cfg_flag + "\\noflag.svg";
var svg_content = utils.ReadUTF8(svg_file);

var dui = window.IsDefaultUI;

var original = utils.LoadSVG(svg_file);

function on_paint(gr) {
    gr.FillRectangle(0, 0, window.Width, window.Height, dui == 1 ? window.GetColourDUI(1) : window.GetColourCUI(3));  
    if (original) {
        var scale = 0;
        var x = 0,
            y = 0;
        var scale_w = window.Width / original.Width;
        var scale_h = window.Height / original.Height;

        if (scale_w <= scale_h) {
            scale = scale_w;
            y = (window.Height - original.Height * scale) / 2;
        } else {
            scale = scale_h;
            x = (window.Width - original.Width * scale) / 2;
        }
        gr.DrawImage(original, x, y, original.Width * scale, original.Height * scale, 0, 0, original.Width, original.Height);
    }
}

if(fb.IsPlaying || fb.IsPaused) {
    country = fb.TitleFormat("%composer_nation%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint();  
}
else {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}

function on_playback_new_track() {
    country = fb.TitleFormat("%composer_nation%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint();
}

function on_playback_stop(reason) {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}
Die Flaggen müssen im svg-Format vorliegen (download Anhang). Ich lasse die %composer_nation% anzeigen.



Ich habe das Script mal entsprechend für mich geändert und %composer_nation% in %country% geändert, da bei mir das Land in %country% steht. Allerdings müsste wohl noch der Pfad zu den country.svg irgendwo im Script stehen. Der lautet :

Zitate:\Programme\foobar2000_v2_64bit\flag\%country%.svg

Bsp. Tag Country:Deutschland = Deutschland.svg

Ich bitte nochmals um Hilfe.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 15. November 2022, 16:29:42
Das habe ich ganz geschickt gemacht:
rechtsklick auf panel | Properties
foobar path: e:\Programme\foobar2000_v2_64bit\
flag folder: flag
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 15. November 2022, 17:17:48
mmmh...bis hierhin komm ich (s. Anhang) Aber dann gehts nicht weiter... :(

Markieren und öffnen geht nicht. Ich mach wohl wieder was falsch... ::)
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 15. November 2022, 17:26:02
Klick in das blaue Feld und gebe Deinen Pfad an.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 15. November 2022, 17:32:31
Man kann es in meinem Anhang leider nicht sehen, aber es gibt bei mir keinen Eintrag  unter Name

Dort fehlen foobar path und flag folder.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 15. November 2022, 17:35:09
Ohh, Versuch mal rechtskick Panel | Reload

EDIT: Ich sehe gerade: Du hast "Clear" (Löschen) gedrückt. Drücke in diesem Falle "Apply".
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 15. November 2022, 17:42:33
Leider keine Änderung. Vielleicht habe ich im Script was zerschossen.
Werds mal mit dem Original nochmal versuchen.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 16. November 2022, 10:25:36
So, jetzt funktioniert alles. Hatte bestimmt bei meinen Änderungen im Script einen Fehler gemacht.

Bleibt noch eine Frage:

Wie bekomme über der angezeigten Flagge die Länderbezeichnung angezeigt?
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 16. November 2022, 12:46:28
Da bin ich zu blöd für.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 16. November 2022, 12:49:00
Na...nicht gleich übertreiben. Kein Mensch ist vollkommen... ;)

Du hast mir dabei soviel geholfen  :top:

...alles geht halt nicht  :^^:
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 06. Dezember 2022, 19:48:38
Im Feld Info/Text werden mir ü/ä/ö/ß nur krytisch angezeigt.

Was kann ich tun, damit auch diese Textzeichen korrekt angezeigt werden.

Vorhandenes Script:

// ==PREPROCESSOR==
// @name "Text Reader"
// @author "marc2003"
// @import "%fb2k_component_path%helpers.txt"
// @import "%fb2k_component_path%samples\js\lodash.min.js"
// @import "%fb2k_component_path%samples\js\common.js"
// @import "%fb2k_component_path%samples\js\panel.js"
// @import "%fb2k_component_path%samples\js\text.js"
// ==/PREPROCESSOR==

// https://marc2k3.github.io/jscript-panel/gallery/text-reader/

var panel = new _panel()

panel.draw_header = function (gr, text) {
    gr.WriteText(text, this.fonts.title, this.colours.highlight, LM, 0, this.w - (LM * 2), TM, DWRITE_TEXT_ALIGNMENT_CENTER, DWRITE_PARAGRAPH_ALIGNMENT_CENTER, DWRITE_WORD_WRAPPING_NO_WRAP, DWRITE_TRIMMING_GRANULARITY_CHARACTER);
    gr.DrawLine(LM, TM + 0.5, this.w - LM, TM + 0.5, 1, this.colours.highlight);
   
}

var text = new _text('text_reader2', LM, TM, 0, 0);

panel.item_focus_change();

function on_colours_changed() {
    panel.colours_changed();
    window.Repaint();
}

function on_font_changed() {
    panel.font_changed();
    window.Repaint();
}

function on_item_focus_change() {
    panel.item_focus_change();
}

function on_key_down(k) {
    text.key_down(k);
}

function on_metadb_changed() {
    text.metadb_changed();
}

function on_mouse_lbtn_up(x, y) {
    text.lbtn_up(x, y);
}

function on_mouse_move(x, y) {
    text.move(x, y);
}

function on_mouse_rbtn_up(x, y) {
    return panel.rbtn_up(x, y, text);
}

function on_mouse_wheel(s) {
    text.wheel(s);
}

function on_paint(gr) {
    panel.paint(gr);
    panel.draw_header(gr, text.header_text());
    text.paint(gr);
}

function on_playback_dynamic_info_track() {
    panel.item_focus_change();
}

function on_playback_new_track() {
    panel.item_focus_change();
}

function on_playback_stop(reason) {
    if (reason != 2) {
        panel.item_focus_change();
    }
}

function on_playlist_switch() {
    panel.item_focus_change();
}

function on_size() {
    panel.size();
    text.w = panel.w - (LM * 2);
    text.h = panel.h - TM;
    text.size();
}
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 06. Dezember 2022, 20:18:00
Kann ich nicht nachvollziehen. Was ist Feld Info/Text? Welche Codierung hat die txt-Datei? (UTF-8-BOM)
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 07. Dezember 2022, 16:44:36
Ich glaube Panel Info/Text wäre korrekter gewesen (s. Anhang)

Hier das Script:
// ==PREPROCESSOR==
// @name "Text Reader"
// @author "marc2003"
// @import "%fb2k_component_path%helpers.txt"
// @import "%fb2k_component_path%samples\js\lodash.min.js"
// @import "%fb2k_component_path%samples\js\common.js"
// @import "%fb2k_component_path%samples\js\panel.js"
// @import "%fb2k_component_path%samples\js\text.js"
// ==/PREPROCESSOR==

// https://marc2k3.github.io/jscript-panel/gallery/text-reader/

var panel = new _panel()

panel.draw_header = function (gr, text) {
    gr.WriteText(text, this.fonts.title, this.colours.highlight, LM, 0, this.w - (LM * 2), TM, DWRITE_TEXT_ALIGNMENT_CENTER, DWRITE_PARAGRAPH_ALIGNMENT_CENTER, DWRITE_WORD_WRAPPING_NO_WRAP, DWRITE_TRIMMING_GRANULARITY_CHARACTER);
    gr.DrawLine(LM, TM + 0.5, this.w - LM, TM + 0.5, 1, this.colours.highlight);
   
}

var text = new _text('text_reader2', LM, TM, 0, 0);

panel.item_focus_change();

function on_colours_changed() {
    panel.colours_changed();
    window.Repaint();
}

function on_font_changed() {
    panel.font_changed();
    window.Repaint();
}

function on_item_focus_change() {
    panel.item_focus_change();
}

function on_key_down(k) {
    text.key_down(k);
}

function on_metadb_changed() {
    text.metadb_changed();
}

function on_mouse_lbtn_up(x, y) {
    text.lbtn_up(x, y);
}

function on_mouse_move(x, y) {
    text.move(x, y);
}

function on_mouse_rbtn_up(x, y) {
    return panel.rbtn_up(x, y, text);
}

function on_mouse_wheel(s) {
    text.wheel(s);
}

function on_paint(gr) {
    panel.paint(gr);
    panel.draw_header(gr, text.header_text());
    text.paint(gr);
}

function on_playback_dynamic_info_track() {
    panel.item_focus_change();
}

function on_playback_new_track() {
    panel.item_focus_change();
}

function on_playback_stop(reason) {
    if (reason != 2) {
        panel.item_focus_change();
    }
}

function on_playlist_switch() {
    panel.item_focus_change();
}

function on_size() {
    panel.size();
    text.w = panel.w - (LM * 2);
    text.h = panel.h - TM;
    text.size();
}

Die Textdatei ist in UTF-8 gespeichert.
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 07. Dezember 2022, 19:19:13
Kann es nachvollziehen. Bei mir funktioniert die Kodierung UTF8-BOM, (konvertieren mit notepad++).
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 07. Dezember 2022, 19:21:29
Danke...UTF8-BOM geht bei mir auch. :top:

Konvertieren geht auch mit dem Windows Editor. Unten bei Konvertieren UTF-8 mit BOM einstellen. Dann nochmaliges abspeichern und überschreiben
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 14. Januar 2023, 14:54:42
Noch eine Frage zur Anzeige der Länderflagge.

Wie kann ich es erreichen, das die Größe der Flagge sich an die Größe der JScript-Fenster anpasst?

Hier das verwendete Script von grimes:

//flag by grimes
//fb2k v2+, JScript Panel 3+
//DUI/CUI ready

// ==PREPROCESSOR==
// @name "flag"
// @version "2"
// @author "grimes"
// ==/PREPROCESSOR==


var cfg_foobarpath = window.GetProperty("foobar path:", fb.Profilepath);
var cfg_flag = window.GetProperty("flag folder:", "flags");
var svg_file = cfg_foobarpath + cfg_flag + "\\noflag.svg";
var svg_content = utils.ReadUTF8(svg_file);

var dui = window.IsDefaultUI;

var original = utils.LoadSVG(svg_file);

function on_paint(gr) {
    gr.FillRectangle(0, 0, window.Width, window.Height, dui == 1 ? window.GetColourDUI(1) : window.GetColourCUI(3)); 
    if (original) {
        var scale = 0;
        var x = 0,
            y = 0;
        var scale_w = window.Width / original.Width;
        var scale_h = window.Height / original.Height;

        if (scale_w <= scale_h) {
            scale = scale_w;
            y = (window.Height - original.Height * scale) / 2;
        } else {
            scale = scale_h;
            x = (window.Width - original.Width * scale) / 2;
        }
        gr.DrawImage(original, x, y, original.Width * scale, original.Height * scale, 0, 0, original.Width, original.Height);
    }
}

if(fb.IsPlaying || fb.IsPaused) {
    country = fb.TitleFormat("%country%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint(); 
}
else {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}

function on_playback_new_track() {
    country = fb.TitleFormat("%country%").Eval();
    original = utils.LoadSVG(cfg_foobarpath + cfg_flag + "\\" + country + ".svg");
    window.Repaint();
}

function on_playback_stop(reason) {
    original = utils.LoadSVG(svg_file);
    window.Repaint();
}
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: grimes in 14. Januar 2023, 15:44:21
Ersetze entsprechende Zeile mit:
gr.DrawImage(original, 0, 0, window.Width, window.Height, 0, 0, original.Width, original.Height);
Titel: Aw: Konfigurieren von DUI v2 64bit
Beitrag von: mexx in 14. Januar 2023, 16:16:54
Danke  :top: