Anti-Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

sehr geil, etwas parteiisch, man hätte ruhig für alle Sprachen Religionen nehmen können, aber naja trotzdem sehr erheiternd.
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Anti-Jammer-Thread

Beitrag von Matthias Gubisch »

Juhu Order-Independent-Transparency mit LinkedLists funktioniert :)
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

NetBeans 7.2 ist draußen :D ich liebe NetBeans.
Jetzt übrigens auch mit C++11 Standard Support und schnellerer C++ Code Assistence.
klickverbot
Establishment
Beiträge: 191
Registriert: 01.03.2009, 19:22
Echter Name: David N.

Re: Anti-Jammer-Thread

Beitrag von klickverbot »

Alexander Kornrumpf hat geschrieben:Kennt ihr das?

http://blog.aegisub.org/2008/12/if-prog ... gions.html
Nein, kannte ich bisher leider nicht. Und manche der Kommentare sind auch genial:
ActionScript - Is like evangelical Christianity. It started off very free form, dynamic and a bit loopy. But then became very strongly focused on type and more event driven.
Das ist so unverschämt zutreffend…
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

RawInput in Verbindung mit der HID API funktioniert einfach super. Egal, ob ich hier mein Gamepad, meinen Joystick, oder mein Lenkrad einstöpsle – ich kann mit allem mehr oder weniger sofort steuern.

Orientiert habe ich mich für das Ganze an diesem CodeProject-Artikel; aber falls allgemeines Interesse an der tieferen Bedeutung der API-Aufrufe und Datenstrukturen besteht, könnte ich nächste Woche ein Tutorial oder einen Kurzartikel darüber anfangen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4854
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Ich hätte weitergehendes Interesse. Falls man über die HID-API auch die menschenlesbaren Namen der Steuerelemente bekommen könnte, müsste ich DirectInput komplett rauswerfen können. Das wär mir Arbeit wert.

Hast Du irgendwas zur Emulation der Windows Mausbeschleunigung gefunden? Ich habe im Zusammenhang mit RawInput mal einen Artikel dazu gefunden, aber ich finde den ums Verrecken nicht mehr wieder. Und die Nutzer beschweren sich langsam, dass die Mausbewegung sich so seltsam anfühlt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Schrompf hat geschrieben:Ich hätte weitergehendes Interesse. Falls man über die HID-API auch die menschenlesbaren Namen der Steuerelemente bekommen könnte, müsste ich DirectInput komplett rauswerfen können. Das wär mir Arbeit wert.
Zufällig habe ich schon während du den Post geschrieben hast daran gearbeitet, die Namen abzufragen. Leider ist das, was GetRawInputDeviceW() liefert, definitiv nicht, was wir wollen. Außerdem ist die Dokumentation der letzte Scheiß. Da steht weder, ob das Ergebnis nullterminiert ist, noch, dass das Ergebnis nicht in den out-Parameter wandert, und schließlich auch noch der Widerspruch, dass eine Anzahl Buchstaben zurückgegeben wird statt der Byte-Größe, die für den Rückgab ewert vermerkt ist. Ich habe tatsächlich 20 Minuten daran gesessen, diese scheiß ID auf den Bildschirm zu kriegen. Jetzt werde ich mal versuchen, das über die HID-API hinzukriegen.
Hast Du irgendwas zur Emulation der Windows Mausbeschleunigung gefunden? Ich habe im Zusammenhang mit RawInput mal einen Artikel dazu gefunden, aber ich finde den ums Verrecken nicht mehr wieder. Und die Nutzer beschweren sich langsam, dass die Mausbewegung sich so seltsam anfühlt.
Im Augenblick nutze ich RI noch nicht für Tastatur und Maus; das wollte ich diese Woche angehen. Meine Erfahrung beschränkt sich ausschließlich auf einen Joystick, einen PlayStation-Controller und ein Lenkrad :(
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Hatte heute mittag versucht, den Namen rauszufinden. Ohne Erfolg. Zwei Tips:

1) Die HID API (und Raw Input ebenso) arbeiten nicht mit physikalischen Geräten, sondern mit Top Level Collections, also Funktionalitätssammlungen. Es ist möglich, dass ein Joystick bei dir sowohl als Flugsimulationsgerät als auch als generische Desktop-Steuerung abgefragt werden kann. Würdest du in diesem Fall alle Namen anzeigen, wären die also sowieso nicht eindeutig.

2) Der Name, den RawInput dir für eine Top Level Collection gibt, ist ein Pfad, den du in CreateFile() füttern kannst, um den Port zu dem Gerät zu öffnen. Theoretisch kannst du dann mit WriteFile() Pakete an den Treiber schicken, der dir so Sachen wie den Namen zurückgibt.

Mir persönlich ist es die Mühe nicht wert. Ich gebe ins Log die kryptischen Namen aus und konfrontiere den Benutzer bei den Optionen erst garnicht mit dem Namen des Geräts. Das soll nicht herablassend wirken, aber: Ich habe gerade leider größere Probleme als den Namen der Eingabegeräte; und falls ich jetzt damit anfangen würde, würde ich wieder einen Monat allein darauf verschwenden statt voranzukommen. Darum sorry, dass ich dir die Frage nicht beantworten kann.

Ein Post-Mortem zum Rest wird aber noch kommen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4854
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Kein Problem, trotzdem Danke für Deine Mühen. Mir ging es in diesem Fall nur um die Anzeige der Steuerelemente, wenn der Nutzer den Joystick umbelegt. Also z.B. dass "Schießen" aktuell auf "gelber Button" gemappt ist. Ob der Button gelb ist oder nicht, seh ich ja im Programm nicht. Und DirectInput hat da einfache Wege, die Namen zu den Steuerelementen zu besorgen. Ich vermute, es gibt auch Wege mittels HID API. Aber das ist ein Ding für später.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Hm. In der HID API heißen die Dinger alle „X“, „Y“, „throttle“, „hat switch“, „button 1“, usw. Du steuerst sie über eine Enumeration an, die hier ab Seite 26 beschrieben wird. Vielleicht ist das ja, was du meinst.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von dot »

Hier steht was von wegen "The string descriptors and designators associated with the usage or usage range (see Designator Index item and String Index item)". Vielleicht hilft das was!? Konnte nach kurzem Suchen leider nicht wirklich mehr drüber finden...
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Ja; HidD_GetProductString() HidD_GetIndexedString() könnte ein weiterer Teil des Puzzles sein … ich weiß nur noch nicht, ob das HANDLE dort auch das Handle ist, das man via CreateFile() und dem von RawInput erhaltenen Namen geöffnet hat.

Nachtrag: Ja, scheint das HANDLE zu sein. Ich habe eben erfolgreich den String USB Joystick als Gerätebeschreibung gelesen. Die einzelnen Buttons liefern aber irgendwie nur nullterminierten binären Müll zurück … könnte daran liegen, dass ich hier ein 5–€–Produkt liegen habe. Wenn ich nachher wieder meine offline-Woche antrete, kann ich es mal mit einem „richtigen“ HID testen.

Nachtrag 2: prepared for raw input from HID "GreenAsia Inc.    USB Joystick     "
Warum padden die Hersteller alle ihre Gerätenamen ausgerechnet mit Leerzeichen?! Ich kann mich erinnern, dass sich meine alte GPU auch als "Radeon 1234 Series    " gemeldet hat. Machen die das nur, um mich zu ärgern?!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Anti-Jammer-Thread

Beitrag von BeRsErKeR »

Krishty hat geschrieben:Nachtrag 2: prepared for raw input from HID "GreenAsia Inc.    USB Joystick     "
Warum padden die Hersteller alle ihre Gerätenamen ausgerechnet mit Leerzeichen?! Ich kann mich erinnern, dass sich meine alte GPU auch als "Radeon 1234 Series    " gemeldet hat. Machen die das nur, um mich zu ärgern?!
Wahrscheinlich wurde <NUL> erst später erfunden. ;)
Ohne Input kein Output.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Anti-Jammer-Thread

Beitrag von kaiserludi »

BeRsErKeR hat geschrieben:Wahrscheinlich wurde <NUL> erst später erfunden. ;)
Ich halte
Krishty hat geschrieben:Machen die das nur, um mich zu ärgern?!
für wahrscheinlicher :mrgreen:

PS: Krishty, das ist der falsche Thread, zum Jammern ab in den Jammer-Thread ;)
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Jörg »

USB-Stick 2h20min im 40°-Waschgang 'behandelt' - Daten alle noch da. :D
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Anti-Jammer-Thread

Beitrag von eXile »

Mich juckt's gerade verdammt in den Fingern, ob ich mir nicht ein Oculus-Devkit holen sollte (Auslieferung im Dezember 2012). Zumal meine Bank mir vor ein paar Monaten eine kostenlose Kreditkarte angeboten hat (meiner Meinung nach ist eine Kreditkarte für Käufe innerhalb von Deutschland absolut überflüssig, aber für internationale Käufe notwendig).
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von CodingCat »

In John Carmack's Keynote, die in wenigen Minuten beginnt, wird davon sicher auch die Rede sein: Livestream
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Thoran »

Ich bin mir ehrlich gesagt nicht sicher ob die Auflösung von 640x800 pro Auge, wirklich ausreichend ist, damit man einen guten scharfen Eindruck bekommt. Zugegebenermaßen ist es jetzt auch schon wieder 2 Jahre her seit ich zuletzt mit VR und AR und entsprechenden Brillen gearbeitet habe, aber bis dahin waren die Brillen alle nicht wirklich überzeugend auch wenn ihr Design von aussen ansprechend war ;) . Beworben wurden schon viele als bahnbrechend und revolutionär, auch was die Auflösung angeht, in der Praxis kam dann meist Ernüchterung.

My 2 cents.

Thoran
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Anti-Jammer-Thread

Beitrag von antisteo »

Wir haben uns im gwX-Projekt mal im RealLife getroffen und sind recht produktiv gewesen
http://www.goldenwipf.de/gwf/topic_show.pl?tid=1067
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Anti-Jammer-Thread

Beitrag von eXile »

Benutzeravatar
Schrompf
Moderator
Beiträge: 4854
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

@antisteo: Cooles Ding! Man kann ne Menge erreichen, wenn man mal so konzentriert und persönlich zusammenarbeitet. Da sind all die Fernkommunikationswerkzeuge heutzutage kein Ersatz für.

@exile: wenn es nicht so anstrengend wär, würde ich das auch tun :) Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer. Und der kann - meiner Meinung nach - jede Hilfe gebrauchen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
klickverbot
Establishment
Beiträge: 191
Registriert: 01.03.2009, 19:22
Echter Name: David N.

Re: Anti-Jammer-Thread

Beitrag von klickverbot »

Schrompf hat geschrieben:Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer.
Ich habe schon lange nicht mehr so herzhaft gelacht wie beim Lesen dieses Vergleiches (ohne eXiles Beitrag als Kontext gesehen zu haben) – eine geniale Art, Godwin's Law zu erfüllen… ;)
Zuletzt geändert von klickverbot am 04.08.2012, 18:38, insgesamt 1-mal geändert.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4854
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Schrompf »

Von 0 auf Hitler in fünf Minuten. Gibt's sicher irgendwo schon ein Achievement für :) Der Gag ist leider nur aus dem von Exile verlinkten Beitrag geklaut.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Meine Beta-Tester sagen mir, dass die mit den Windows-7-HID-Libs gelinkten Exes auch unter XP tadellos funktionieren. Da fällt mir ein Stein vom Herzen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Anti-Jammer-Thread

Beitrag von kaiserludi »

Frankly, if it were up to me, I would change the C/C++ language to make every variable const by default and adding the nonconst or changeable (or take over mutable) keyword for the ones you want to modify. It would make life much more pleasant.
Hätte was. Leider wohl nicht praktikabel, weil es jeglichen vorhandenen Code funktionsuntüchtig machen würde (andererseits wäre ein Skript, welche über vorhandenen Code läuft und alles, was nicht als const gekennzeichnet ist, als nonconst kennzeichnet und anschließend die const rausschmeißt, jetzt auch nicht gerade unmöglich).
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Wäre mir egal, ich hätte nichts davon. In meinem Text ist ein Drittel const, ein Drittel nicht-const und der Rest sind Rvalues. Gespart hätte ich also nichts.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Anti-Jammer-Thread

Beitrag von kaiserludi »

Für const-nazi Code bringt das auch nicht viel, aber man hat es ja oft nicht nur mit eigenem Code zu tun und wenn dann jeder, dessen Code man benutzt, etwas explizit als nonconst kennzeichnen muss, wenn er Schreibrechte darauf haben will, dann hilft das anderen, die später mit seinem Code arbeiten müssen, bei manchen doch durchaus.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Anti-Jammer-Thread

Beitrag von Krishty »

Ich sehe aber nicht, wozu man dabei default-const braucht. Der umgekehrte Weg, nicht veränderte Sachen const zu deklarieren, geht doch genauso.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Anti-Jammer-Thread

Beitrag von kaiserludi »

Krishty hat geschrieben:Ich sehe aber nicht, wozu man dabei default-const braucht. Der umgekehrte Weg, nicht veränderte Sachen const zu deklarieren, geht doch genauso.
Der Unterschied ist: Wenn const default ist, MUSS man Sachen, die man verändern will, nonconst deklarieren, umgekehrt muss man nichts const deklarieren, wenn nonconst default ist, und kann alles nonconst lassen.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4256
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Anti-Jammer-Thread

Beitrag von Chromanoid »

hehe
Bild
Antworten