AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte JoyToAny - Alles mit dem Joystick
Thema durchsuchen
Ansicht
Themen-Optionen

JoyToAny - Alles mit dem Joystick

Ein Thema von Hybrid666 · begonnen am 10. Feb 2009 · letzter Beitrag vom 28. Feb 2012
Antwort Antwort
Seite 3 von 4     123 4      
Hybrid666
Registriert seit: 15. Jul 2006
Servus,

vielleicht erinnern sich einige an JoyMedia, welches ich vor sehr langer Zeit mal in Freeware veröffentlicht hab. Das Programm war verbuggt und hatte eine schlechte Joystick API. Nun hab ich mich mit einem kommolitonen zusammengesetzt und wir haben das Programm komplett von scratch neu geschrieben und es JoyToAny getauft.

Es hat weitaus weniger Bugs, erkennt alle Joysticks die Windows auch erkennt (nicht wie in JoyMedia, welches einige Joystick einfach mal nicht erkannt hat). Die Plugins funktionieren nun ohne Sharemem (also wird die borlandmm.dll nicht mehr gebraucht).

Und die beste änderung: Es ist opensource.

Hier mal eine kleine (unvollständige) featurelist:
  • Verbesserte Joystickerkennung
  • Erweiterbar durch Plugins
  • Winamp.dll zur steuerung von Winamp
  • Nemp.dll zum steuern von Nemp, einem von Gausi entwickelten, sehr guten Player
  • iTunes.dll hat zwar wenig funktionen, aber zum steuern reicht es
  • keyboard.dll mit der man Tastaturshortcuts auf das Gamepad oder den Joystick legen kann
  • mouse.dll welche die maus komplett über den Joystick steuerbar macht
  • wincontrol.dll (in die noch einige funktionen kommen werden) kann momentan die windows masterlautstärke ändern

Momentan ist auch eine API in arbeit (und ca 90% fertig), welche es ermöglicht, JoyToAny zu erweitern.

Den sourcecode findet ihr auf http://joytoany.sf.net/ und auf der website http://www.joytoany.tk/ findet ihr eine Dokumentation zum schreiben einiger Plugins (und bald auch zum nutzen der API).

Download gibt es ebenfalls auf der JoyToAny.tk homepage, aber für die faulen gibt es hier auch einen direkten link:
http://jayyeff.kilu.de/joytoany/downloads/jta05.rar

Selbstgeschriebene Plugins könnt ihr über das Uploadformular auf http://www.joytoany.tk hochladen, wir werden es uns dann ansehen und auf der seite veröffentlichen.

Ich hoffe das die version den usern hier nun mehr zusagt als JoyMedia. Viel Spaß damit!

MfG Hybrid666 & JayEff

P.S.: Hier noch das Changelog:
Zitat:
0.1 Beta
- ADDED: Joysticks get found via WinAPI (buggy)
- ADDED: Pluginsupport
- ADDED: Function mapping

0.2 Beta
- ADDED: Setup dialog
- ADDED: Info dialog
- ADDED: Axissetup
- ADDED: iTunes Plugin
- ADDED: playsoung Plugin
- ADDED: User can change the polling time
- ADDED: Chosen Joystick gets saved in ini file and selected on every new start
- ADDED: Startmode setting
- ADDED: Start in Tray function (buggy)
- BUGFIX: Deadzones got read wrong
- BUGFIX: CPU usage was too big
- BUGFIX: RAM usage was too big
- CHANGED: mouse.dll has now more parameters

0.3 Beta RC1
- ADDED: Deadzones now seperatly settable
- ADDED: getreaddeadzone for the plugins
- ADDED: More settings in the Setup dialog

0.4
- ADDED: Reload Plugin button (so the program doesnt need a restart after adding plugins anymore)
- ADDED: Languagesupport
- BUGFIX: TrayIcon bug
- BUGFIX: Program reacts on no joystick connected
- BUGFIX: Some minor bugs
- BUGFIX: DeadZones bug

0.5
- ADDED: Recallibrate Button (if joystick is messing around)
- BUGFIX: Configure messed some Axes up
- BUGFIX: Bug in the Languages
 
Hybrid666

 
Delphi 7 Personal
 
#21
  Alt 18. Feb 2009, 23:15
kann man, sorry
Zitat:
- Leerzeichen in der getbuttonfunc etc. erlauben, sieht für den Anwender in der ComboBox dann schöner aus, kannste ja im Programm rausfiltern. Wink
ist ein guter vorschlag, werd ich in der nächsten version beachten kommt auf die todo --> DONE

Zitat:
- Eine Versionsangabe ins PlugIn übergeben, bzw. dessen Version abfragen. Hilft Dir später bei PlugIn erweiterungen
Sowas in der art hab ich mir auch überlegt, ist auch ma auf der todo, aber vorerst als unwichtig --> DONE
Zitat:
- Eine ID für die ausgewählte Sprache, so kann man die Infos m PlugIn mehrsprachig gestallten, ersparrt eineextra .lng Datei
auch ein sehr guter vorschlag, ist auch auf der todo
Zitat:
- Verwende im Tut Konstanten für State, das machts für Anfänger leichter lesbar, zb ButtonDown=0; ButtonPressed=1; ButtonUp=2;
werde ich die tage korrigieren

Zitat:
- Einen Init Aufruf des PlugIns, in dem dann gleich Version und Sprch ID etc. übergeben werden.
sprache werd ich anders regeln, version werd ich machen --> DONE

danke für die vorschläge!

und wenn du nix dagegen hast werd ich im nächsten release dein mouseplugin mitliefern wenn du willst kann ich auch den source (mit copyright natürlich) ins SVN repo laden!

Werd ich in der 1.0 beachten (was den release allerdings ein klein wenig rauszögern wird )
  Mit Zitat antworten Zitat
Hybrid666

 
Delphi 7 Personal
 
#22
  Alt 19. Feb 2009, 16:25
Solange ihr auf die neue Version wartet, hier noch 2 mehr oder weniger nützliche plugins:

JoyToAny.dll - Damit kann man diverse dinge in joytoany ändern (zum beispiel per joyticks zwischen den profile wechseln)
foobar2000.dll - Damit kann man foobar2000 steuern

Und hier noch was euch in der 1.0 erwartet:

- Ein neuer zuweisungsbutton, welcher einen command für alle Profile setzt (nützlich für die SwitchProfile funktionen)
- Leicht geänderte und verbesserte API (praktisch falls man JTA erweitern will oder per plugins steuern)
- Einige Bugs wurden entfernt
- Die Versionszahl hat sich geändert
- Leerzeichen in den Prozedurnamen der Plugins werden unterstützt
- Neue und überarbeitete Plugins
- Und beim rest: lasst euch überraschen


MfG
Angehängte Dateien
Dateityp: dll joytoany_159.dll (384,0 KB, 3x aufgerufen)
Dateityp: dll foobar2000_143.dll (385,0 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#23
  Alt 19. Feb 2009, 22:53
So, ich war jetzt mit nem Problem beschäfftigt, daher kommt erst jetzt das vorläufige Finale.

Ich als Minimalistix hab das PlugIn nochmal optimiert und auf 18.5 KB zusammgestutzt
Das Ergebnis kann im Anhang bewundert werden.
Von mir gibts keinen Open Source mehr, da ich die Copy & Paste Mendalität nicht weiter unterstüze, aber da ich das für JoyToAny gemacht hab und damit Ihr das in Euren PlugIns verwenden könnt is der Source mit dabei und Du darfst ihn veröffentlichen

U.a. hab ich die endlos lange GetParamValue Funktion optimiert, bei der es jetzt egal is, ob wer "-posx123-posy245" oder "-posx123 -posy245" eingibt.
Übrigens sind Dinge wie "If BoolischeWert=True then" absolut Tabu

Viel freude damit

MfG, Sun

PS: Sobald das Update draußen ist zum Testen werd ich das mit den Leerzeichen Updaten, ich hab da ja was von "-> DONE" gelesen
Angehängte Dateien
Dateityp: zip sunmouse7_208.zip (13,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Hybrid666

 
Delphi 7 Personal
 
#24
  Alt 20. Feb 2009, 00:43
Vielen dank!

Den source MUSST du uns nicht geben wir hätten dein plugin auch binär auf die jta seite gesetzt.

Ja, das mit den leerzeichen funzt soweit, und auch vieles andere.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#25
  Alt 20. Feb 2009, 01:20
Ihr sollt ja daraus lernen und die anderen PlugIns danach selber optimieren
  Mit Zitat antworten Zitat
Hybrid666

 
Delphi 7 Personal
 
#26
  Alt 20. Feb 2009, 13:12
du regst dich im source permanent über die groß und kleinschreibung auf. das dient einfach nur der problemvermeidung. lieber was einheitliches definieren als nacher von jedem 2. gesagt bekommen das der scheiss nicht funktioniert. . Frag mich aber auch warum DLL Aufrufe Case Sensitive sind...
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

 
Delphi 5 Standard
 
#27
  Alt 20. Feb 2009, 20:52
Ich reg mich nur 2 mal auf

Das Exporte Case sensetiv sind ist C++ Standard.

Ich halte das für einen Fehler im Designkonzept, dem Programmierer zu zwingen alles klein zu schreiben, wobei es ein einfaches wäre mit ein paar Zeilen Code das Problem zu umgehen.
Mach Deinem Namen alle Ehre und mach es hybrid

Beispiel:

Delphi-Quellcode:
function GetProcAddressCase(const hModule:HMODULE; const lpProcName:String):TFarProc;
begin
   // 1. Versuch mit originalem Namen
   Result:=GetProcAddress(hModule, PChar(lpProcName));

   If Result<>nil then Exit;

   // 2. Versuch mit kleingeschriebenem Namen
   Result:=GetProcAddress(hModule, PChar(LowerCase(lpProcName)));

   If Result<>nil then Exit;

   // 3. Versuch mit FESTSTELLTASTEN Namen
   Result:=GetProcAddress(hModule, PChar(UpperCase(lpProcName)));

   If Result<>nil then Exit;

   // Den Programmierer über den Fehler informieren, Exportfunktion nicht vorhanden oder falsch feschrieben.
   // Ich gehe mal davon aus, das der Programmierer sein PlugIn testet und auf diese Meldung reagiert.
   ShowMessage(Format('Leider wurde der Export %s nicht gefunden, etc. pp', [lpProcName]));
end;
Und schon kann jeder Programmierer in seiner üblichen schreibweise ungehindert Quelltext verfassen, es gibt ein kürzeres Tutorial und eine Fehlerquelle weniger
  Mit Zitat antworten Zitat
Hybrid666

 
Delphi 7 Personal
 
#28
  Alt 21. Feb 2009, 20:05
ne also für nen fehler halt ichs nicht, sondern einfach für ne klare aussage wies zu sein hat.
  Mit Zitat antworten Zitat
hathor
 
#29
  Alt 22. Aug 2010, 16:20
Version: 0.5 schreibt eine fehlerhafte standard.prf.
(Nicht vorhandene Funktion in einer DLL:
[info]
exists=1
[POV]
function=
param=
plugin=itunes.dll
)
Folge: Absturz - Programm kann nur mit dem Taskmanager gekillt werden.

Version: 0.6 liest die fehlerhafte Preference-Datei.
Folge: Absturz - Programm kann nur mit dem Taskmanager gekillt werden.

Die Extension "prf" ist schlecht gewählt, denn sie ist mit Outlook verknüpft.

Aber glücklicherweise gibt es den Sourcecode - Vielen Dank dafür!!!
Miniaturansicht angehängter Grafiken
jta0.6_01.jpg  

Geändert von hathor (22. Aug 2010 um 16:24 Uhr)
  Mit Zitat antworten Zitat
WizoHulk

 
Delphi 5 Enterprise
 
#30
  Alt 8. Feb 2011, 20:55
hallo,

weiß ja nicht ob der Thread noch aktiv ist....
Aber ich komm damit überhaupt nicht klar...
ich habe den Gamepad von der Playstation 2 dran und möchte auf einen Button das Enter legen,
geht das?
Aber ich kriege immer nur eine Fehlermeldung. Hat einer damit schon erfahrungen gemacht?

Mfg wizoHulk
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz