Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details

If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.

Lautstärke von Winamp im OSD anzeigen

Allgemeines zum Thema EventGhost
Feldmaus
Posts: 12
Joined: Tue Feb 13, 2007 5:30 pm

Lautstärke von Winamp im OSD anzeigen

Post by Feldmaus »

Hallo,

im winamp plugin gibts doch ein Befehl "Get Volume Level", da wird doch vom winamp die Lautstärke in % zum EG geschickt.
Wie kann ich den wert jetzt im OSD ausgeben lassen??
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

Code: Select all

{int(eg.result)} %
danach beim OSD zum Anzeigen eintragen.
durch die geschweiften Klammern wird der Ausdruck ausgewertet. int schneidet die Nachkommastellen von einer Zahl ab. In diesem Fall dem Ergebnis des vorherigen Befehl.
Feldmaus
Posts: 12
Joined: Tue Feb 13, 2007 5:30 pm

Post by Feldmaus »

okay das funktioniert schon mal sehr gut :)

aber wie mach ich denn das, wenn ich zwei befehler hintereinander aus f├╝hre, also so hier.

Winamp: Get Song Elapsed
Winamp: Get Song Duration

auf dem OSD soll dann ausgegeben werden: Elapsed"/"Duration

Kann ich da Elapsed und Duration in eine Variable zwischenspeichern? weil mit deiner Variante kann man ja nur den wert des letzten ausgef├╝hrten Befehls abrufen.
Feldmaus
Posts: 12
Joined: Tue Feb 13, 2007 5:30 pm

Post by Feldmaus »

okay hab ein python befehl einfach dazwischen eingef├╝gt:

Winamp: Get Song Elapsed
sElapsed=eg.result
Winamp: Get Song Duration
sDuration=eg.result
Zeige OSD: {sElapsed}/{sDuration}

jetzt muss man das nur noch irgendwie in eine richtige zeit umrechnen (mm:ss) gibts da ein befehl f├╝r? Format oder so?
Feldmaus
Posts: 12
Joined: Tue Feb 13, 2007 5:30 pm

Post by Feldmaus »

habs selber hinbekommen, geht aber bestimmt viel k├╝rzer oder?

Winamp: Get Song Elapsed
PythonBefehl: sElapsed=int(eg.result)
Winamp: Get Song Duration
PythonBefehl:sDuration=int(eg.result)
Python Skript:

def secTotime(sek):
m=int(sek/60)
s=sek-(m*60)
sTime = ''
if m<10:
if s<10: sTime = '0' + str(m) + ':0' + str(s)
else: sTime = '0' + str(m) + ':' + str(s)
else:
if s<10: sTime = str(m) + ':0' + str(s)
else: sTime = str(m) + ':' + str(s)
return sTime

eg.globals.sDur=secTotime(eg.globals.sDuration)
eg.globals.sEle=secTotime(eg.globals.sElapsed)

Zeige OSD: {sEle} / {sDur}
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Zeige OSD: {"%02i:%02i" % (sElapsed / 60, sElapsed % 60)} / {"%02i:%02i" % (sDuration / 60, sDuration % 60)}
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Noch ein paar Zeichen k├╝rzer:
Zeige OSD: {"%02i:%02i / %02i:%02i" % (divmod(sElapsed, 60) + divmod(sDuration, 60))}
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Und weil mal nahezu alle Aktionen auch als Skriptbefehl benutzen kann, geht sogar alles in einer einzigen Aktion ohne Zwischenvariablen:
Zeige OSD:
{"%02i:%02i / %02i:%02i" % (divmod(eg.plugins.Winamp.GetElapsed(), 60) + divmod(eg.plugins.Winamp.GetDuration(), 60))}
XOver
Posts: 5
Joined: Mon Jun 04, 2007 9:49 pm

Post by XOver »

ich hätte da auch mal ne Frage wie kann man im OSD den Namen des Tracks anzeigen lassen? geht das überhaupt?
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

F├╝r den Titel hat das Plugin den Befehl "Get Currently Playing Song Title". Das Problem ist nur, dass Winamp nicht sagt, wann er einen neuen Titel anf├ñngt. K├Ânnte man also nur auf eine Taste legen und dann selber updaten oder man muss sich ein Skript bauen um den Wert zu "pollen".
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
XOver
Posts: 5
Joined: Mon Jun 04, 2007 9:49 pm

Post by XOver »

das w├ñr n├ñmlich gut, da ich jetzt mein Gamepad ja als fernsteurung f├╝r winamp nehm und mit der tastaturspiel und nicht jedesmal wenn ich n gutes lied h├Âr das gmae minimiern will und mir den titel anschauen.
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Da steht noch was:
http://www.eventghost.org/forum/viewtopic.php?t=201

Es gibt da also ein Tool, welches die Playlist nach jeden Trackwechsel wegschreibt. Theoretisch k├Ânnte man sich dann mit dem "Directory Watcher" Plugin den notwendigen Event generieren, der dann das OSD ausl├Âst.
Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!
XOver
Posts: 5
Joined: Mon Jun 04, 2007 9:49 pm

Post by XOver »

Also ich hab jetzt das Plugin: toaster f├╝r Winamp und das reicht und passt dann auch so, danke!
VoodooChild
Posts: 6
Joined: Mon May 07, 2007 6:47 am
Contact:

Post by VoodooChild »

hi ich wollte mir ein ein python script basteln und es dann hier ver├Âffentlichen und damit angeben :D
Leider bin ich ein python newb und komme trotz der tutorials, die ich mir von meiner uni homepage geladen habe nicht klar :D
Das script soll die lautstärke als balken auf dem bildschirm anzeigen, also so wie es bei den meisten fernsehern der fall ist (z.B. ||||--- bei 50% lautstärke).
hier ist mein kläglicher versuch :(:



Befehl: Verändere Master-Lautstärke

python befehl: vol=int(eg.result)

python script:
def volumebalken (vol){
int vol;
String balken;
if (vol<10): balken='|-----'
if (vol>=10 && vol<20): balken='||----'
if (vol>=20 && vol<30): balken='|||---'

//usw...

return balken
}

OSD ausgabe: {balken}


kennt jemand gute turorials zu dieser sprache und kann sie mir posten? (ich habe kenntnisse in php und java n├╝tzen die mir was?)

wenn dieses ding fertig ist poste ich es sofort hier rein
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

Du kannst auch direkt sowas ins OSD packen.

Code: Select all

{"|" * int(round(int(eg.result) * 0.1)) + "-" * int(round((100-int(eg.result)) * 0.1))}
Wenn du schon andere Sprachen kannst solltest dich auch auf http://docs.python.org/ durchhangeln k├Ânnen.
Post Reply