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

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

struct SaveSampleReg
{
    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 sample saver that is to be registered. The following flags are currently supported:

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

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 sample 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 sample savers don't use conflicting identifiers. Also, once you have published your sample 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 sample saver using HWSAVESMPCAPS_MORE, you can look at the FormatID member to tell how many times Hollywood has already called RegisterSampleSaver() because FormatID will contain the identifier of the last sample saver you registered. If FormatID is 0, then this is the first call to RegisterSampleSaver(). Note that it is not recommended to keep your own counter because Hollywood might call RegisterSampleSaver() multiple times, i.e. it might first loop over RegisterSampleSaver() to determine how many sample savers there are in total and then it might loop over RegisterSampleSaver() 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 sample saver. This 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 #SMPFMT_ 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 sample saver available under the constant #SMPFMT_TESTFORMAT.

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

Show TOC