MidiDT is a preferences editor for Martin Gierich's MIDI datatype class 40.0,
util/dtype/MidiDT.lha. It is a MUI application written in ARexx, developed on an
A4000/040 with AmigaOS 3.9 + BoingBags 1 & 2, MUI 3.8, RxMUI 42.5, RoyalBridge
1.1, and CAMD 37.14. In addition to the usual features of a preferences editor
it has pop-up edit menus for the individual settings gadgets, it disables the
edit menu items when they have nothing to do, it takes notification on MIDIPorts
preferences to reflect a new cluster list immediately, and the window is an
AppWindow which will load a dropped preferences file.
The Create Icons setting is automatically saved and loaded separately from the
Font settings when the program quits and starts.
I use an icon datatype class, util/dtype/IconDT44.lha, so several About windows
look a bit prettier. My system originally didn't provide the icon used in the
About MIDI window, so I copied :OS-Version3.9/icons/datatype.info from my
AmigaOS 3.9 CD to Env(Arc):Sys/def_datatype.info.
The links in the About requesters use OpenURL, comm/www/openurl.lha. To make the
About MidiDT address link work, in OpenURL preferences I edited my mailer
command's address argument so the keyword is joined to its value by a space
instead of an equals sign. The equals sign apparently exposes a bug in
dos.library/Execute() that assumes an angle bracket indicates a stream
redirection.
MidiDT is a demonstration of the power of ARexx and RoyalBridge to access
arbitrary libraries (in this case camd.library). By releasing this script, I
hope to encourage more development in ARexx.
When saving a preferences file, if Create Icons is checked and the icon file
doesn't already exist, MidiDT will copy the file Env:Sys/def_prefs.info or the
system will provide a default project icon: Env:Sys/def_project.info or an
internal image. The new icon will have a Cmd tool type which specifies the
preferences file and also a copy of the program's Console tool type. However, if
the program's absolute path contains a space, the tool types won't be written.
If MidiDT receives options from the command line or from the Cmd tool type, it
processes them with the following argument template. Otherwise, it reads its
options as tool types with the same keywords.
From,Edit/S,Use/S,Save/S,PubScreen/K
PubScreen overrides the corresponding setting in MUI preferences.
History
1.4 Fixed bug: Mishandled 32-bit memory address values.
1.3 Added feature: Automatically remembers Create Icons setting.
1.2 Fixed bug: When notifying of MIDIPorts preferences change with cluster list
showing, and task address greater than hex 7fffffff, signalled wrong
address.
Fixed bug: Disables Last Saved window and pop-up menu items when they have
nothing to do.
1.1 Fixed minor bug: Pop-up button didn't scale width to match font.
1.0 First Aminet release.
I welcome your comments and questions.
|