xboxdrv -> GUI für Emulationszuweisung
-
Da ich nun bei einem Spiel (Dungeon Defenders) einen xbox Controller eigentlich benötigt hätte, habe ich mich mal schlau gemacht wie man das ganze Emulieren kann, da ich nur einen Logitech Dual Shock (PS2 Ähnlich) besitze.
Das ganze habe ich über xboxdrv auch zum laufen gebracht, es ist jedoch sehr umständlich dieses zu mappen, hier ein Bsp. für mein Gamepad:
sudo xboxdrv --evdev /dev/input/event5 -v --mimic-xpad --evdev-keymap KEY_#289=a,KEY_#290=b,KEY_#288=x,KEY_#291=y,KEY_#294=lt,KEY_#295=rt,KEY_#292=lb,KEY_#293=rb,KEY_#297=back, KEY_#296=start,KEY_#298=tl,KEY_#299=tr --evdev-absmap ABS_#0=x1,ABS_#1=y1,ABS_#2=x2,ABS_#5=y2, ABS_#16=dpad_x,ABS_#17=dpad_y --axismap -Y1=Y1,-Y2=Y2
Nun zum eigentlich Projekt:
Ich möchte gerne eine GUI schreiben die das Mappen für einen übernimmt und diese Konfigurationen abspeichern kann.
Einen Ansatz habe ich schon einmal: http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node-devinputevent/
Da ich jedoch in C++ nicht mehr wirklich fit bin und noch nie in Linux Programmiert habe (Außer Ruby & C#), suche ich nun jemanden der mir etwas helfen mag bei diesem Projekt.Hier schon mal einige Fragen:
Welche GUI lib sollte ich nutzen?
Wie werden in Linux Threads ordentlich behandelt?
Wo sollte man solche Konfigurations-Daten im Linux Dateisystem am besten abspeichern?
Wie legt man ein ppa an, damit user immer über apt-get upgrade die neuste Version automatisch bekommen?
Gibt es Chancen so etwas im Ubuntu Repository zu bekommen? Und wenn ja, an wen muss man sich dort wenden?Es wäre schön einen C++ Entwickler zu finden der mir etwas unter die Arme greifen könnte, es ist zwar kein Riesen Projekt und in C# wäre ich wahrscheinlich jetzt schon fertig, aber ich möchte ja Linux konform Programmieren und alles richtig machen
-
xboxdrv unterstuetzt doch schon selbst Config-Files.
Wenn du ein Tool schreiben moechtest, das solche Config-Files ausspuckt, und du schon Ruby programmiert hast, dann nimm einfach wieder Ruby dafuer. Sehe keinen echten Vorteil, den C++ hier bieten wuerde.
Welche GUI lib sollte ich nutzen?
GTK und QT sind sehr verbreitet.
Wie werden in Linux Threads ordentlich behandelt?
Hast du eine etwas konkretere Frage dazu?
Wo sollte man solche Konfigurations-Daten im Linux Dateisystem am besten abspeichern?
Im Home-Directory des Users, zB. als
~/.xboxdrv.conf
oae.Wie legt man ein ppa an, damit user immer über apt-get upgrade die neuste Version automatisch bekommen?
Indem du ein Sourcepaket baust und dieses bei Launchpad hochlaedst. Achtung, das ist mehr Arbeit als du vielleicht glaubst.
Gibt es Chancen so etwas im Ubuntu Repository zu bekommen? Und wenn ja, an wen muss man sich dort wenden?
Ja, wenn du das Ding mal fertig und ein paar User hast. Der von Canonical empfohlene Weg fuehrt allerdings ueber Debian, dh. dein Paket wird zu Debian hinzugefuegt und Ubuntu uebernimmt es dann automatisch.
-
nman schrieb:
xboxdrv unterstuetzt doch schon selbst Config-Files.
Wenn du ein Tool schreiben moechtest, das solche Config-Files ausspuckt, und du schon Ruby programmiert hast, dann nimm einfach wieder Ruby dafuer. Sehe keinen echten Vorteil, den C++ hier bieten wuerde.Super Antwort schon mal, ja die Configs von xboxdrv habe ich auch schon entdeckt. Ruby würde ich ungern dafür nehmen, da andere user dieses dann erst nachinstallieren müssten, außerdem möchte ich mich schon in C++ mal wieder einarbeiten und als Startprojekt erscheint mir das eigentlich ganz gut.
nman schrieb:
GTK und QT sind sehr verbreitet.
Ist GTK standardmäßig bei den meisten Desktop-umgebungen (KDE, GNOME, etc.) bereits installiert? Weil bei QT ist dies glaube ich nicht so.
nman schrieb:
Indem du ein Sourcepaket baust und dieses bei Launchpad hochlaedst. Achtung, das ist mehr Arbeit als du vielleicht glaubst.
Lohnt sich das dann überhaupt, wenn ich eh vorhabe das ganze als Debian Paket zu verbreiten? Oder sollte ich xboxdrv direkt erweitern und mich mit dem Entwickler in Verbindung setzen?
-
DeeKay0 schrieb:
Super Antwort schon mal, ja die Configs von xboxdrv habe ich auch schon entdeckt. Ruby würde ich ungern dafür nehmen, da andere user dieses dann erst nachinstallieren müssten, außerdem möchte ich mich schon in C++ mal wieder einarbeiten und als Startprojekt erscheint mir das eigentlich ganz gut.
Ruby ist auf sehr vielen Maschinen ohnehin schon installiert. User, die schon Ruby haben, koennten dein Tool als Gem installieren und User, die noch kein Ruby haben, installieren es dann eben ueber den Paketmanager und Ruby wird automatisch nachinstalliert.
Ich wuerde zum Einarbeiten in C++ nicht ausgerechnet ein GUI-Projekt nehmen.
Ist GTK standardmäßig bei den meisten Desktop-umgebungen (KDE, GNOME, etc.) bereits installiert? Weil bei QT ist dies glaube ich nicht so.
Gnome verwendet GTK und KDE verwendet QT. Tendentiell ist aktuell vmtl. GTK eine Spur verbreiteter, aber sowohl GTK als auch QT sind sehr weit verbreitet.
edit: Dh. auf jeder Maschine, die Gnome verwendet, ist garantiert GTK vorhanden und auf jeder Maschine, die KDE verwendet, ist garantiert QT vorhanden.
Lohnt sich das dann überhaupt, wenn ich eh vorhabe das ganze als Debian Paket zu verbreiten?
Die Arbeit entsteht dir nicht primaer durch Launchpad, sondern durch das Paketieren an sich. Eine eigene PPA kann trotz allem praktisch sein, weil du sonst auf den sehr langsamen Debian-Releasezyklus angewiesen bist.
Oder sollte ich xboxdrv direkt erweitern und mich mit dem Entwickler in Verbindung setzen?
Nein, ein Config-GUI ist IMO ein Extra-Projekt, nicht Teil des eigentlichen Tools.
-
Danke erstmal für die Antworten, ich werde mich mal dran begeben und versuch etwas zu schreiben, ich bleibe jedoch bei C++ mit diesem Tutorial geht es eig. ganz easy schon: http://www.c-plusplus.net/forum/149924