- The range 0x90400000-0x904FFFFF is reserved by AROS.
- The range 0x90420000-0x9042FFFF is reserved for core Zune classes, i.e.
internal classes in muimaster.library (Subversion:workbench/libs/muimaster).
- The range 0x90470000-0x9047FFFF is reserved for core AROS classes,
i.e. external classes (Subversion:workbench/classes/zune).
For convenience, the following defines are available:
MUIB_MUI = TAG_USER = 0x80000000 /* Base for legacy MUI identifiers */
MUIB_RSVD = (MUIB_MUI | 0x10400000) = 0x90400000 /* Base for AROS reserved range */
MUIB_ZUNE = (MUIB_RSVD | 0x00020000) = 0x90420000 /* Base for Zune core reserved range */
MUIB_AROS = (MUIB_RSVD | 0x00070000) = 0x90470000 /* Base for AROS core reserved range */
The identifiers are on the form (BASE | 0x0000ccnn), where:
- BASE is either MUIB_ZUNE or MUIB_AROS.
- cc is the class number.
- nn is the method or attribute number.
Class, method and attribute numbers are allocated sequentially to make it
easy to find unused slots. Method and attribute identifiers are separate
number spaces, so a method can (and most likely will) have the same identifier
as an attribute.
When creating a new class, first select the appropriate BASE depending on
the type of class. Then allocate the class number by picking the lowest
available number. The first method (and the first attribute) of this class
will then have the identifier (BASE | 0x0000cc00 | 0x00000000), the
second (BASE | 0x0000cc00 | 0x00000001) and so on.
Always make sure to update the registry in the following section when
creating new classes, methods or attributes! This is required to make sure
that there are no identifier clashes.
All existing MUI classes will get their own subranges within the core
Zune range, where one will allocate identifiers for Zune extensions
to these classes (e.g. when adding a new method to MUIC_Window).