Name
RegisterIconSaver -- register a new icon saver (V9.0)
Synopsis
void RegisterIconSaver(struct SaveIconReg *reg)
Function
Hollywood will call this function to get information about the icon saver your plugin wants to register. In addition, RegisterIconSaver() has to tell Hollywood whether it wants to register another icon saver. Hollywood will pass a pointer to a struct SaveIconReg to this function. This structure looks like this:

 
struct SaveFormatReg
{
    ULONG CapsMask;     [out]
    ULONG FormatID;     [in/out]
    STRPTR FormatName;  [out]
};

struct SaveIconReg
{
    struct SaveFormatReg hdr;
};

Your implementation has to do the following with the individual structure members:

CapsMask:
This must be set to a combination of flags that tell Hollywood about the capabilities of the icon saver that is to be registered. The following flags are currently supported:

HWSAVEICNCAPS_MORE:
If you set this flag, Hollywood will call RegisterIconSaver() again so that you can register another saver. If you don't want to register another saver, don't set this flag.

FormatID:
This member must be set to a unique 32-bit value that should be assigned to the constant that is registered for accessing this icon saver from Hollywood scripts. Values smaller than 32768 are reserved for internal Hollywood use. You may use values larger than 32768 for your saver but if you want to publish your plugin, you need to contact Airsoft Softwair to obtain a unique value that is still vacant. This won't cost you anything; it's just needed to make sure that plugin icon savers don't use conflicting identifiers. Also, once you have published your icon saver plugin, the FormatID you have specified must not be changed or you will break compatibility with applets or executables that have been compiled with previous versions. If you are registering more than one icon saver using HWSAVEICNCAPS_MORE, you can look at the FormatID member to tell how many times Hollywood has already called RegisterIconSaver() because FormatID will contain the identifier of the last icon saver you registered. If FormatID is 0, then this is the first call to RegisterIconSaver(). Note that it is not recommended to keep your own counter because Hollywood might call RegisterIconSaver() multiple times, i.e. it might first loop over RegisterIconSaver() to determine how many icon savers there are in total and then it might loop over RegisterIconSaver() again to actually register their names.

FormatName:
This must be set to a string that should form the second half of the constant that Hollywood registers for your icon saver. The string you specify here must follow the naming restrictions for Hollywood constants, i.e. only alphabetical characters, numbers and very few special characters like the underscore character are allowed. The #ICNFMT_ prefix must not be included in the string you pass. Hollywood will add this automatically, i.e. if you pass the string "TESTFORMAT" here, Hollywood will make your icon saver available under the constant #ICNFMT_TESTFORMAT.

Inputs
reg
pointer to a struct SaveIconReg to be filled out by your implementation

Show TOC