amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Commodities.library - Übersicht input description strings ? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

17.09.2007, 10:38 Uhr

p-OS
Posts: 131
Nutzer
Hallo,

die commodities.library bekommt Tastaturkürzel ja in Form von menschenlesbaren Zeichenketten übergeben, z.B. "lalt ctrl f3","mmouse leftbutton"...
Zufällig habe ich die Tage gültige Eingabeschlüssel entdeckt, von deren Existenz ich bisher noch nichts gewußt habe: "media_stop","media_play","media_forward","media_rewind","media_next","media_prev". Eine Volltextsuche im NDK zu AmigaOS 3.9 sowie im MorphOS SDK nach diesen Begriffen haben keinen Treffer ergeben. Ebensowenig die Suche im RKRM Libraries.
Wer weiß, was es da noch alles an weiteren Schlüsseln gibt ?

Wo finde ich denn eine vollständige Liste der erlaubten Schlüssel für "input description string"s ?


[ - Antworten - Zitieren - Direktlink - ]

17.09.2007, 10:48 Uhr

akl
Posts: 265
Nutzer
@p-OS:
Das sieht stark nach Windows-Hotkeys aus (also neue Tags in Verwendung mit neueren Keyboards). Würde mich aber auch interessieren, ob und wo es vielleicht eine Liste neueren Datums gibt.

[ - Antworten - Zitieren - Direktlink - ]

17.09.2007, 11:11 Uhr

p-OS
Posts: 131
Nutzer

In der Tat hab ich mir eine USB-Funktastatur gekauft, die zusätzliche Multimedia-Tasten hat.
Um die nutzen zu können, muß man die ja in Poseideon auf etwas mappen, was das OS (in meinem Fall MorphOS) bereits kennt. Also entweder Zeichenfolgen, wie sie die commodities.library verarbeiten kann oder auch RawKeys. Einer Intuition folgend hab ich dann mal in die Doku für MMKeyboard geschaut. Dort gibt'S eine Tabelle aller RawKeys samt Beschreibung. Und bei hex 72 stand dann was von CDTV Stop, bei 73 CDTV Play/Pause...
Also hab ich in Poseidon mal die STOP-Taste der Tastatur ausgewählt und auf den RawKey 72 gemappt. In der Auswahlliste stand neben dem Schlüssel - im Gegensatz zu anderen Schlüsseln - keine Beschreibung.
Zuletzt hab ich in AminetRadio in den Einstellungen die Registerkarte zur Definition der Hotkeys geöffnet. Als Aktion STOP ausgewählt und dann für das Tastaturkürzel den Aufnahemmodus verwendet. Einmal die STOP-Taste betätigt und siehe da, im StringGadget taucht als input description string "media_stop" auf.
Wenn die echt schon zu CDTV-Zeiten eingeführt wurden, sollten die doch irgendwo dokumentiert sein ?

[ - Antworten - Zitieren - Direktlink - ]

17.09.2007, 14:22 Uhr

thomas
Posts: 7716
Nutzer
Zitat:
Zufällig habe ich die Tage gültige Eingabeschlüssel entdeckt

Woher willst du wissen, daß sie gültig sind ?

Zitat:
Eine Volltextsuche im NDK zu AmigaOS 3.9 sowie im MorphOS SDK nach diesen Begriffen haben keinen Treffer ergeben. Ebensowenig die Suche im RKRM Libraries.

Eine Volltextsuche in der commodities.library ergibt auch keine Treffer. Und da sind immerhin so Sachen wie PAGE_UP, PAGE_DOWN, BREAK etc. vorhanden.

Ich gehe also davon aus, daß diese Bezeichnungen nicht "gültig" im Sinne der commodities.library sind.

Zitat:
Zuletzt hab ich in AminetRadio in den Einstellungen die Registerkarte zur Definition der Hotkeys geöffnet. Als Aktion STOP ausgewählt und dann für das Tastaturkürzel den Aufnahemmodus verwendet. Einmal die STOP-Taste betätigt und siehe da, im StringGadget taucht als input description string "media_stop" auf.

Ich gehe mal davon aus, daß das interne Bezeichnungen von AmiNetRadio sind und nichts mit der commodities.library zu tun hat.

Übrigens heißt das Programm AmiNetRadio (Ami(ga) Net(work) Radio). Das hat nichts mit "dem" Aminet zu tun.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomasrapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

17.09.2007, 17:16 Uhr

Holger
Posts: 8116
Nutzer
@p-OS:
Für die echten CDTV/CD³² Controller wird die Generierung von Key-Events über die Funktion SystemControl der lowlevel.library gesteuert. Dementsprechend finden sich auch passende Keycodes in der lowlevel.h
code:
#define RAWKEY_PORT0_BUTTON_BLUE	0x72
#define RAWKEY_PORT0_BUTTON_RED		0x78
#define RAWKEY_PORT0_BUTTON_YELLOW	0x77
#define RAWKEY_PORT0_BUTTON_GREEN	0x76
#define RAWKEY_PORT0_BUTTON_FORWARD	0x75
#define RAWKEY_PORT0_BUTTON_REVERSE	0x74
#define RAWKEY_PORT0_BUTTON_PLAY	0x73
#define RAWKEY_PORT0_JOY_UP		0x79
#define RAWKEY_PORT0_JOY_DOWN		0x7A
#define RAWKEY_PORT0_JOY_LEFT		0x7C
#define RAWKEY_PORT0_JOY_RIGHT		0x7B

#define RAWKEY_PORT1_BUTTON_BLUE	0x172
#define RAWKEY_PORT1_BUTTON_RED		0x178
#define RAWKEY_PORT1_BUTTON_YELLOW	0x177
#define RAWKEY_PORT1_BUTTON_GREEN	0x176
#define RAWKEY_PORT1_BUTTON_FORWARD	0x175
#define RAWKEY_PORT1_BUTTON_REVERSE	0x174
#define RAWKEY_PORT1_BUTTON_PLAY	0x173
#define RAWKEY_PORT1_JOY_UP		0x179
#define RAWKEY_PORT1_JOY_DOWN		0x17A
#define RAWKEY_PORT1_JOY_LEFT		0x17C
#define RAWKEY_PORT1_JOY_RIGHT		0x17B

#define RAWKEY_PORT2_BUTTON_BLUE	0x272
#define RAWKEY_PORT2_BUTTON_RED	0x278
#define RAWKEY_PORT2_BUTTON_YELLOW	0x277
#define RAWKEY_PORT2_BUTTON_GREEN	0x276
#define RAWKEY_PORT2_BUTTON_FORWARD	0x275
#define RAWKEY_PORT2_BUTTON_REVERSE	0x274
#define RAWKEY_PORT2_BUTTON_PLAY	0x273
#define RAWKEY_PORT2_JOY_UP		0x279
#define RAWKEY_PORT2_JOY_DOWN		0x27A
#define RAWKEY_PORT2_JOY_LEFT		0x27C
#define RAWKEY_PORT2_JOY_RIGHT		0x27B

#define RAWKEY_PORT3_BUTTON_BLUE	0x372
#define RAWKEY_PORT3_BUTTON_RED		0x378
#define RAWKEY_PORT3_BUTTON_YELLOW	0x377
#define RAWKEY_PORT3_BUTTON_GREEN	0x376
#define RAWKEY_PORT3_BUTTON_FORWARD	0x375
#define RAWKEY_PORT3_BUTTON_REVERSE	0x374
#define RAWKEY_PORT3_BUTTON_PLAY	0x373
#define RAWKEY_PORT3_JOY_UP		0x379
#define RAWKEY_PORT3_JOY_DOWN		0x37A
#define RAWKEY_PORT3_JOY_LEFT		0x37C
#define RAWKEY_PORT3_JOY_RIGHT		0x37B

Über eine Integration in die commodities.library steht nix da, aber in den Autodocs findet sich, soweit ich das erkennen kann, eh nirgendwo eine Beschreibung der strings und die RKRMs gibt's ja nicht in einer aktualisierten Form.

Allerdings gilt natürlich, dass alles, was ein Keycode hat, auch via commodities abgefangen werden kann. Wenn einen Anwendung eigene Namen dafür erfindet, funktioniert das auch, solange die Anwendung ihre Namen beim Erzeugen der CxFilter auch wieder mit einer eigenen Routine konvertiert.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

17.09.2007, 19:55 Uhr

p-OS
Posts: 131
Nutzer
@thomas:
Der Gedanke, daß AmiNetRadio einfach selbst bestimmte RawKeys abfängt und textuell darstellt, ist alles andre als abwegig.
Scheint allerdings nicht zuzutreffen.
Hab jetzt einfach mal geschaut, was andre Anwendungen machen. Bei Blanky (DPMS-Manager) hab ich einen der neuen Schlüssel verwendet und wurde erfolgreich ausgewertet. Und auch der zehn Jahre alte OptyCDPlayer konnte mit den Eingaben was anfangen.


[ Dieser Beitrag wurde von p-OS am 17.09.2007 um 21:10 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 09:33 Uhr

thomas
Posts: 7716
Nutzer

Vielleicht patcht Poseidon oder ein anderes Programm die Commodities.library, damit sie diese Begriffe kennt.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomasrapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 11:08 Uhr

akl
Posts: 265
Nutzer
@thomas:

>Eine Volltextsuche in der commodities.library ergibt auch keine
>Treffer. Und da sind immerhin so Sachen wie PAGE_UP, PAGE_DOWN, BREAK
>etc. vorhanden.

Ich weiss ja nicht, in welcher Du gesucht hast - aber die v50.10 (3.4.2004) von MorphOS enthält alle die genannten Tags (in uppercase) und noch einige mehr, wie z.B. MEDIA1 bis MEDIA6.

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 11:12 Uhr

akl
Posts: 265
Nutzer
@p-OS:

>Wenn die echt schon zu CDTV-Zeiten eingeführt wurden, sollten die doch
>irgendwo dokumentiert sein ?

Wie gesagt, einige davon entsprechen EXAKT den Definitionen unter Windows - einige andere sind vielleicht älter. Jedenfalls wurden die neuen offensichtlich unter MorphOS für den Zweck eingeführt, aktuelle Keyboards etc. zu unterstützen.

Frage: Macht OS4 etwas eigenes, oder hat man sich via AROS koordiniert?

Dass die Shortcuts nirgendwo definiert sind, ist übrigens auch ärgerlich - jede Applikation (ob 68k oder nicht) die als Commodity läuft, muss nämlich auch eine Default-Hotkey-Kombination festlegen können.

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 11:48 Uhr

p-OS
Posts: 131
Nutzer
Ich habe die SDKs nach den Begriffen durchsucht, die ich auch als Anwender eingeben muß. Wenn die internen Konstantendefinitionen anders heißen, ist klar, warum ich nix gefunden hab.

Wie kann ich am einfachsten die commodities.library selbst mir anzeigen lassen ? Liegt ja nicht als Datei auf der Platte. Mit Snoopium ging's jedenfalls nicht, sich das Speicherabbild anzeigen zu lassen. Welches Tool kann ich da hernehmen ?'

Die Dokumente des MOS SDK, die die Unterschiede zu AOS 3.x beschreiben, erwähnen keine Änderungen an der commodities.library.

Es macht natürlich nicht viel Sinn, wenn man neue Eingabemöglichkeiten für input description strings einführt, der Anwender davon aber gar nichts weiß...


[ Dieser Beitrag wurde von p-OS am 18.09.2007 um 11:48 Uhr geändert. ]

[ Dieser Beitrag wurde von p-OS am 18.09.2007 um 11:49 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 13:28 Uhr

Gazelle
Posts: 151
Nutzer
Vielleicht ist es ja in einem normalen AmigaOS Handbuch beschrieben, weil es ja auch für den normalen Benutzer zugänglich sein muss.

Im "RKRM: Libraries" ist auf jedenfall eine lange Liste mit allen möglichkeiten drinnen, ein auszug:

code:
[class] {[-] (qualifier|synonym)} [[-] upstroke] [highmap|ANSICode]

Class can be any one of the class strings in the table below. Each class string
corresponds to a class of input event as defined in <devices/inputevent.h>.
Commodities Exchange will assume the class is rawkey if the class
is not explicitly stated.

Class String        Input Event Class
"rawkey"            IECLASS_RAWKEY
"rawmouse"          IECLASS_RAWMOUSE
"event"             IECLASS_EVENT
"pointerpos"        IECLASS_POINTERPOS
"timer"             IECLASS_TIMER
"newprefs"          IECLASS_NEWPREFS
"diskremoved"       IECLASS_DISKREMOVED
"diskinserted"      IECLASS_DISKINSERTED

Qualifier String    Input Event Class
"lshift"            IEQUALIFIER_LSHIFT
"rshift"            IEQUALIFIER_RSHIFT
"capslock"          IEQUALIFIER_CAPSLOCK
"control"           IEQUALIFIER_CONTROL
"lalt"              IEQUALIFIER_LALT
"ralt"              IEQUALIFIER_RALT
"lcommand"          IEQUALIFIER_LCOMMAND
"rcommand"          IEQUALIFIER_RCOMMAND
"numericpad"        IEQUALIFIER_NUMERICPAD
"repeat"            IEQUALIFIER_REPEAT
"midbutton"         IEQUALIFIER_MIDBUTTON
"rbutton"           IEQUALIFIER_RBUTTON
"leftbutton"        IEQUALIFIER_LEFTBUTTON
"relativemouse"     IEQUALIFIER_RELATIVEMOUSE

Synonym String      Synonym Identifier
"shift"             IXSYM_SHIFT /* look for either shift key */
"caps"              IXSYM_CAPS  /* look for either shift key or capslock */
"alt"               IXSYM_ALT   /* look for either alt key */

Upstroke is the literal string "upstroke". If this string is absent, the filter considers
only downstrokes. If it is present alone, the filter considers only upstrokes. If preceded
by a dash, the filter considers both upstrokes and downstrokes.

Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del", "up", "down", "right", "left",
"f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "help".
ANSICode is a single character (for example ‘a’) that Commodities Exchange looks up in the
system default keymap.


Zitat:
Here are some example description strings. For function key F2 with the left Shift and either Alt key pressed, the input description string would be:
"rawkey lshift alt f2"

To specify the key that produces an ‘a’ (this may or may not be the A key depending on the keymap), with or without any Shift, Alt, or control keys pressed use:
"-shift -alt -control a"

For a mouse move with the right mouse button down, use:
"rawmouse rbutton"


[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 14:00 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von p-OS:
Wie kann ich am einfachsten die commodities.library selbst mir anzeigen lassen ? Liegt ja nicht als Datei auf der Platte.

Nicht?
Welche OS-Version hast Du denn?
Zitat:
Es macht natürlich nicht viel Sinn, wenn man neue Eingabemöglichkeiten für input description strings einführt, der Anwender davon aber gar nichts weiß...
Nunja, Dokumentieren macht bekanntlich wenig Spaß und Handbücher werden eh als ärgerlicher Kostenfaktor angesehen, fast so schlimm wie User an sich...

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 14:14 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von thomas:
Eine Volltextsuche in der commodities.library ergibt auch keine Treffer. Und da sind immerhin so Sachen wie PAGE_UP, PAGE_DOWN, BREAK etc. vorhanden.

Nun, wir scheinen alle verschiedene Version dieser Library zu haben. Bei mir sind PAGE_UP, etc. nicht in der commodities.library zu finden. Allerdings auch kein SHIFT, ALT, ESC oder F10. Wo auch immer diese Bezeichner bei dieser Version (44.18) herkommen, sie kommen nicht aus der Datei Libs:commodities.library.

Allerdings lässt sich leicht überprüfen, dass media_stop, etc. (im Gegensatz zu page_up) dieser Version nicht bekannt sind. Zumindest, wenn man FKey verwendet und weder MMKeyboard, noch Poseidon installiert hat.

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 18:37 Uhr

thomas
Posts: 7716
Nutzer
Zitat:
Original von akl:
@thomas:
Ich weiss ja nicht, in welcher Du gesucht hast


44.18

Eine andere steht mir hier bei der Arbeit nicht zur Verfügung.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomasrapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

18.09.2007, 22:07 Uhr

p-OS
Posts: 131
Nutzer
Ok. Hab mich getäuscht. Die commodities.library wird von Platte geladen. Die einzige Datei mit dem Namen hat bei mir nen Version String 50.10 . Die Version im Speicher gibt sich aber als 50.9 aus.
Achja, habe MOS.

Meine Tests haben ergeben, daß MEDIA1...MEDIA6 keine eigenständigen Werte sind, sondern nur Synonyme für die von mir anfangs bereits erwähnten Schlüssel.

[ - Antworten - Zitieren - Direktlink - ]

05.10.2007, 00:12 Uhr

geit
Posts: 332
[Ex-Mitglied]
Wer sich für die offiziellen RAW keys interessiert sollte mal einen Blick in die FAQ Sektion der Anleitung von MMKeyboard werfen. Da werden ausführlich alle Funktionen der Commodities/Hotkey definitionen erklärt und auch die offiziell von Commodore für das CDTV erfundenen Tastenkodes einer AT Tastatur lassen sich finden.

Geit

[ - Antworten - Zitieren - Direktlink - ]

06.10.2007, 10:35 Uhr

platon42
Posts: 400
[Ex-Mitglied]
Zitat:
Original von thomas:

Vielleicht patcht Poseidon oder ein anderes Programm die Commodities.library, damit sie diese Begriffe kennt.


Nein. Bis auf die lowlevel.library Patches wird von Poseidon nichts gepatcht. Und die Bezeichner in der GUI stammen bis auf einige wenige Ausnahmen (die sonst nicht wirklich aussagekräftig wären) aus der Funktion MapRawKey() der keymap.library.

--
--
Best Regards

Chris Hodges

[ - Antworten - Zitieren - Direktlink - ]

06.10.2007, 10:42 Uhr

platon42
Posts: 400
[Ex-Mitglied]
@p-OS:

MorphOS unterstützt einen neuen EventType IECLASS_EXTRAWKEY für extended Raw-Keys, die im Großen und Ganzen den PS/2 extended raw keys entsprechen. Mit der HID-Klasse aus Poseidon 3.8 werden diese sogar standardmäßig für einige Multimedia-Keys erzeugt und gemappt, auch wenn die wahrscheinlich unter AmigaOS bisher nicht wirklich unterstützt werden.

--
--
Best Regards

Chris Hodges

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Commodities.library - Übersicht input description strings ? [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.