Skin Hotkeys

Hotkeys refer to key bindings which are attached to one window, and respond to the normal keyboard when that window has focus (unless a text-entry widget is activated.) Before version 0.933 hotkey bindings were defined in the xml skin files, and could only be changed by editing the skin xml file. As of version 0.933, hotkey bindings are part of the input binding file format (also xml) and are stored outside the skin files. The skin file wheel-mp3.xml references a file of bindings, wheelshotkeys.xml. To extend or change the hotkey bindings, a user can copy the binding file into ~/.gdam/skins/ and edit it. Their copy of the file will be found whenever a skin file references it.

The binding file format is described elsewhere. All of our hotkeys are defined using the gdam_packer_trap_key_press handler. Example Handler:
        gdam_packer_trap_key_press:e:tt1:gdam_skin_arg_int:play_or_synch:-1
Translation: The 'e' key applies to named child 'tt1' (the turntable). When 'e' is pressed the argument 'play_or_synch' is set to a value of -1. (If the turntable is playing, the value of -1 stops it. If the turntable is stopped, -1 seeks to the first beat).

Example Handler:
	gdam_packer_trap_key_press:q:tt1:gdam_skin_arg_double:seek_by_bars:-2
Translation: The 'q' keys sets the turntable's 'seek_by_bars' arg to -2. (This seeks the position backwards by two bars.)