JoyCount() erkennt disconnect nicht [BRLbug+erledigt]
Übersicht

![]() |
d-bugBetreff: JoyCount() erkennt disconnect nicht [BRLbug+erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Gemeinde,
Situation 1: Gehen wir einmal davon aus wir hatten ein USB-Joypad jeglicher Art. Nun starten wir folgenden Code mit eingestecktem Joypad: BlitzMax: [AUSKLAPPEN] SuperStrict (Der Code ist von YAN, einem User auf bb.com) Jetzt ziehen wir mal das JoyPad einfach aus dem USB-Port. Erschreckender weise erkennt JoyCount() das nicht und das JoyPad (ein Logitech Dual Action) wird propper weiter als vorhanden angezeigt. Situation 2: Wir starten den Code mit nicht eingestecktem JoyPad. Stecken das JoyPad jetzt ein und ... BAMM ... es wird ordnungsgemäß erkannt. Irgendwie kommt mir das gerade total ungelegen, da mein Code schon erkennen sollte, ob das Joypad gerade disconnected wurde oder nicht. Es wird aber erst erkannt, wenn ich den Code abermals starte. So geschehen übrigens auf dem, in meiner Signatur verewigtem, System. Kennt von euch einer eine bessere Abfragemöglichkeit? ~edit~ Nach durchforsten von pub.freejoy nebst freejoy.macos.c wurde mir das Problem klar. Es heißt Mark Sibley. ![]() Unter OSX wird die zuständige C Variable nur dann aktualisiert, wenn sie 0 ist. Ganz großes Kino. Das heißt so viel, dass wenn einen Joystick/pad einstöpselt, wenn schon einer angeschlossen ist, dieser auch nicht erkannt werden wird, weil die Variable ja bereits > 0 ist. Top Arbeit, Hörr Sibley! |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem befindet sich in der Datei freejoy.macos.c im pub.freejoy Verzeichnis. Die Funktion JoyCount gibt hier einfach nur den Wert der Variable "macjoycount" zurück. Nur wenn die Anzahl der Controller 0 ist, werden die angeschlossenen Geräte neu gezählt, das heißt nur beim ersten Aufruf:
Code: [AUSKLAPPEN] int JoyCount()
{ if (!macjoycount) InitMacJoy(); return macjoycount; } Vielleicht solltest du das als Bug-Report posten. Unter Windows funktioniert JoyCount übrigens. Edit: Etwas zu spät. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group