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.

foobar plugin

Allgemeines zum Thema EventGhost
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Der Code ist absolut genial.

Sehr klar und einleuchtend, so ist das glaube ich f├╝r jeden zu kapieren.

Da hab ich mich ja gleich ans nächste Plugin gemacht.

Das wird jetzt allerdings etwas umfangreicher. :lol:

P.S.

Hab nochmal ein bißchen nachgeforscht das Firefox Plugin verwendet auch
die Commandline Parameter...
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Ich bin gestern auf die glorreiche Idee gekommen, dass ich in EG noch einen weiteren Thread einf├╝hren sollte, der Event-Verarbeitung von der Aktions-Verarbeitung trennen sollte. Der Vorteil ist dann, dass Aktionen z.B. direkt in ihrer __call__ Funktion auf einen ButtonRelease warten k├Ânnen. Das spart an vielen Ecken das Erzeugen von Hilfsthreads. Die gute Nachricht ist: es funktioniert sogar und spart ein paar hundert Programmzeilen ein. Die schlechte: das hat im Moment noch soviele Nebeneffekte, dass ich wohl noch lange mit der Fehlersuche besch├ñftigt bin. :)

Also wird es sowieso etwas dauern, bis das fertig ist und ich werde daher auch gleich noch das Plugin-System refaktorieren. Wird aber im Endeffekt bei der Erstellung von Plugins keine große Rolle spielen. Die notwendigen Änderungen an den Plugins sollten dann minimal sein.

Mit dem neuen Thread-Modell werde ich dann wohl gleich auf Revision 0.3.0 springen. Sollten sich noch schwere Bugs in der 0.2.6 zeigen, wird es vielleicht zwischendurch noch eine 0.2.7 geben.
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Also mit dem Plugins schreiben klappt das jetzt.
Hab da jetzt sohalbwegs durchgeblickt.
Hab mal eins f├╝r MediaPlayerClassic gemacht, funktioniert wunderbar mit
Unterverzeichnissen nur einer __call__ Funktion etc.

Das einzige Problem was ich hab ist das Icon.

Code: Select all

ValueError: bad transparency mask
Hab mich mal ein bißchen mit wx beschäftigt, gibts da nicht irgendwo ne
anständige Anleitung ?

Das meiste zu dem Thema ist total veraltet.
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Das mit den Threads ist ne gute Idee, viel Spass dabei... :lol:
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

Manche Programme scheinen PNGs zu erzeugen, die wxPython nicht mag. Da hab ich auch keine andere L├Âsung gefunden, als das PNG einfach mit einem anderen Programm zu erstellen/konvertieren. Ich glaube IrfanView macht bei mir die wenigsten Probleme.

Die beste Doku zu wxPython ist eigentlich die wxPython-Hilfe-Datei, denn eigentlich schaut man sowieso nur nach, welche Funktionen ein Objekt hat und dort stehen sie wenigstens alle drin. Um aber die Grundbegriffe zu lernen ist vielleicht das wxPython-Wiki ganz gut.
http://wiki.wxpython.org/index.cgi/Fron ... StartSeite

Und nicht zu vergessen das wxPython-Demo, weil man dort viele Beispielsourcen hat, die man sogar während des Laufes des Programmes verändern kann, um die Auswirkungen zu sehen.
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Hab mal wx installiert, ist wohl doch besser als es nur in EG zu probieren...
User avatar
Bitmonster
Site Admin
Posts: 2239
Joined: Mon Feb 06, 2006 10:28 pm

Post by Bitmonster »

MonsterMagnet wrote:Hab mal wx installiert, ist wohl doch besser als es nur in EG zu probieren...
Auf jeden Fall.
Du kannst auch gleich noch den Rest installieren, dann kannst du EG vom Sourcecode aus laufen lassen:
http://www.eventghost.com/wiki/HowTo:Ru ... rom_source

Als Editor nehme ich gerne "DrPython":
http://drpython.sourceforge.net/
(der ist selbst in Python/wxPython geschrieben)
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

*mal ausgrab*
Gibt es eigentlich eine M├Âglichkeit, dass man 2x Sekunden vor und Zur├╝ck springt? Man kann zwar jeden Men├╝befehl per Kommandozeile aufrufen, aber daf├╝r finde ich nichts.

Und was habt ihr denn f├╝r ein Problem mit Sendmessage?
Window per executable suchen und dann gehen doch zumindest die Standardfunktionalitäten. Das mit dem steuern per Kommandozeile ist unter hoher Auslastung doch schon etwas langsamer als Sendmessage.
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Also ich hab hier noch 0.8.3 und damals hieß es:
There are no such message ids in the SDK, which means there are no message ids to control foobar directly.
http://www.hydrogenaudio.org/forums/ind ... opic=12055

Und es sollte ja ohne foobar plugin funzen.

Jetzt sehe ich das die schon bei 0.9.3.1 sind vielleicht geht es ja jetzt ohne "foo_remote".

Mit dem Jump weiß ich jetzt auch nich.
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

Zumindest f├╝r Standardfunktionen kann man ja die Standard-Sendmessage Nummern nehmen, die bei praktisch allen Medienplayern funktionieren.
Das ging und geht bei mir auch ohne jegliches Plugin schon seit 0.7 oder seit wann ich das benutze.
Dann ist mir noch aufgefallen, dass wenn man einen Pluginaufruf macht und foobar läuft gar nicht es trotzdem gestartet wird und dann ohne Oberfläche läuft.
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Zumindest f├╝r Standardfunktionen kann man ja die Standard-Sendmessage Nummern nehmen, die bei praktisch allen Medienplayern funktionieren.
Das ging und geht bei mir auch ohne jegliches Plugin schon seit 0.7 oder seit wann ich das benutze.


Wenns nicht im API steht ist das mit dem Sendmessage unzuverlässig.
Dann ist mir noch aufgefallen, dass wenn man einen Pluginaufruf macht und foobar läuft gar nicht es trotzdem gestartet wird
Da ja nicht geprüft wird ob foobar läuft, ist das doch logisch oder ?
und dann ohne Oberfläche läuft.
Das kann ich hier nicht nachvollziehen.

Schreib doch einfach ein neues Plugin. :lol:
Bartman
Plugin Developer
Posts: 881
Joined: Sun Feb 12, 2006 9:03 am

Post by Bartman »

MonsterMagnet wrote:Wenns nicht im API steht ist das mit dem Sendmessage unzuverlässig.
Das w├╝rde dann auch die Steuerung mit den ├╝blichen Multimediatasten unm├Âglich machen.
Was offizielles mit allen M├Âglichkeiten w├ñre aber sicher ideal. Vielleicht mit 1.0, falls die nochmal kommt
MonsterMagnet wrote:Das kann ich hier nicht nachvollziehen.
Ich habe grade noch mal auf 0.9.3.1 upgedated und wenn ich z.B. den PlayBefehl ausl├Âse, dann f├ñngt die Musik anzuspielen, aber ich habe kein Fenster. Nacktes Foobar ohne irgendwelche GUI-Elemete. W├╝rde ja auch eher sagen, dass es an foobar liegt und nicht am Plugin.
MonsterMagnet wrote:Schreib doch einfach ein neues Plugin. :lol:
Glaub mir; Ich weiß das jetzt erst richtig zu würdigen ;)
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

aber ich habe kein Fenster. Nacktes Foobar ohne irgendwelche GUI-Elemete
Hab grade mal 0.9.3.1 installiert, also bei mir funktioniert es.
Das w├╝rde dann auch die Steuerung mit den ├╝blichen Multimediatasten unm├Âglich machen.
Das mit den Multimediatasten funktioniert halt nur wenn foobar den Focus hat, und ich habe bei der 0.8 und 0.9 beta auch keine zuverlässige Sendmessage Funktion (Ziel) gefunden.

Allerdings wird in der Registry das InstallDir nicht mehr eingetragen !

Also muß da eh was gemacht werden.

Hast Du Lust das zu ├╝bernehmen ?
MonsterMagnet
Plugin Developer
Posts: 137
Joined: Fri Feb 10, 2006 12:04 pm

Post by MonsterMagnet »

Also ich hab hier nochmal versucht ein konstantes Ergebnis mit Sendmessage zu erzielen. Mit einem einfachen FindWindow ist da nichts zu machen.

Die einzige M├Âglichkeit das Fenster f├╝r die Nachricht zufinden ist es so zu machen wie im Finde Fenster Befehl. (also "nur nach der exe" suchen, da sich der Titel und die Klasse ├ñndert)

Oder gleich so:

Python Skript:

Code: Select all

eg.plugins.Window.FindWindow(u'foobar2000.exe', None, None, None, None, 1, False, 0.0, 0)
print eg.lastFoundWindows
eg.plugins.Window.SendMessage(273, 40011, 0, 0)
Da das mit einem Plugin ja nicht mehr viel zutun hat, sollte man sowas vielleicht eher als Programmgruppe anbieten.

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="699">
    <Macro Name="Finde Fenster: foobar2000.exe">
        <Action>
            Window.FindWindow(u'foobar2000.exe', None, None, None, None, 1, False, 0.0, 0)
        </Action>
        <Action>
            Window.SendMessage(273, 40011, 0, 0)
        </Action>
    </Macro>
</EventGhost>
@Bitmonster

Vielleicht sollte man das foobar plugin entfernen, da es mit der neusten Version nicht mehr funktioniert ?

Wie bereits angesprochen, würde auch ich eine Forum für bereits erstellte Programmgruppen begrüßen.

Foobar z.B. läßt sich nämlich am besten per emulierter Tastatureingabe steuern. (z.B. 2 sec vor/zurück).
coxon
Posts: 7
Joined: Tue Nov 14, 2006 5:19 pm

Post by coxon »

hi zusammen.. :>

ich hab mir den thread heute mal vollständig durchgelesen und habe es jetzt
auch ziemlich geil hinbekommen meine Q-Sonic auf mein Foobar2000 0.9.4.1
einzustellen.

die sache mit der registry.. da habe ich einfach den foobar2000-installdir
schlüßel in die registry eingetragen und schwupps haben die normalen
sachen funktioniert.. atm konfiguriere ich mir mein foobar auf tastenk├╝rzel,
wie es hier schon angesprochen wurde und finde gefallen dran denn ich muß
mir nicht so einen akt geben wie mit girder...

ich bin definitiv daf├╝r den foobar plugin drinzulassen. bei mir funkt der 1A! :)
ich werd mich hier mit der sache auch weiter auseinandersetzen und
berichten! :D

vielleicht k├Ânntet ihr das mit der "find foobar.exe" einfach in die n├ñchste
version mit einbinden, dann hätten andere nicht den gleichen stress wie ich
am anfang. :D

ich bleibe hier am ball und danke schonmal f├╝r eure gelunge vorarbeit! :D

es grüßt, der cox


Ôé¼dit:

wie kann ich euch denn meine tastenk├╝rzel die ich gemacht habe zur verf├╝gung
stellen? :D
Post Reply