SOUND4 IMPACT FM.CL Library [2.0.0]
Loading...
Searching...
No Matches
Typedefs | Enumerations | Functions
Custom preset managagement

This allows to provide a customized preset management. More...

Typedefs

typedef wchar_t fs_char
 
typedef char *(* impactfm_storage_reader) (const fs_char *filename, void *userdata)
 
typedef void(* impactfm_storage_reader_free) (char *content, void *userdata)
 
typedef int(* impactfm_storage_writer) (const fs_char *filename, const char *content, void *userdata)
 
typedef int(* impactfm_storage_exists) (const fs_char *filename, void *userdata)
 
typedef fs_char **(* impactfm_storage_getall) (void *userdata)
 
typedef void(* impactfm_storage_getall_free) (fs_char **all, void *userdata)
 
typedef int(* impactfm_storage_remove) (const fs_char *filename, void *userdata)
 
typedef int(* impactfm_storage_rename) (const fs_char *from, const fs_char *to, void *userdata)
 

Enumerations

enum  impactfm_PresetChange_Kind { change_kind_created = 1 , change_kind_modified , change_kind_deleted }
 

Functions

void impactfm_SetPresetManager (struct impactfm_CParameters *params, impactfm_storage_reader reader, impactfm_storage_reader_free, impactfm_storage_writer writer, impactfm_storage_exists exists, impactfm_storage_getall getall, impactfm_storage_getall_free getall_free, impactfm_storage_remove remove, impactfm_storage_rename rename, int IsReadOnly, void *userdata)
 
void impactfm_PresetManager_InformChange (struct impactfm_CInstance *instance, const fs_char *relative_path, enum impactfm_PresetChange_Kind change_kind)
 

Detailed Description

This allows to provide a customized storage for presets and settings.

By default, the library store data on disk or in memory (see save_path parameter in impactfm_InitProcess2), but you may use these functions to store data.

It can be used for remote storage, database storage, ...

Known files:

Attention
state.json name can be overriden per instance with STATE_FILENAME in parameters, see Parameters.

File names are in OS native characters ( wchar_t for Windows, char in UTF-8 for others)

Typedef Documentation

◆ fs_char

typedef wchar_t fs_char

Definition at line 477 of file sound4.impactfm.cl.h.

◆ impactfm_storage_exists

typedef int(* impactfm_storage_exists) (const fs_char *filename, void *userdata)

Function to call to test if a stored file exists.

Parameters
filenamethe name of the file to test.
userdatathe userdata passed to impactfm_SetPresetManager
Returns
-1 if not exists, 0 if it exists

Definition at line 516 of file sound4.impactfm.cl.h.

◆ impactfm_storage_getall

typedef fs_char **(* impactfm_storage_getall) (void *userdata)

Function to call to get all stored files' name. Result has to be freed with impactfm_storage_getall_free callback

Parameters
userdatathe userdata passed to impactfm_SetPresetManager
Returns
A NULL terminated array of file names

Definition at line 525 of file sound4.impactfm.cl.h.

◆ impactfm_storage_getall_free

typedef void(* impactfm_storage_getall_free) (fs_char **all, void *userdata)

Function to call to free the result of getall.

Parameters
allthe returned value from impactfm_storage_getall
userdatathe userdata passed to impactfm_SetPresetManager

Definition at line 533 of file sound4.impactfm.cl.h.

◆ impactfm_storage_reader

typedef char *(* impactfm_storage_reader) (const fs_char *filename, void *userdata)

Function to call to read a stored file, returning its content.

Parameters
filenamethe name of the file to read.
userdatathe userdata passed to impactfm_SetPresetManager
Returns
the UTF-8 content of the file

Definition at line 489 of file sound4.impactfm.cl.h.

◆ impactfm_storage_reader_free

typedef void(* impactfm_storage_reader_free) (char *content, void *userdata)

Function to call to free the result of impactfm_storage_reader.

Parameters
contentthe returned value from impactfm_storage_reader
userdatathe userdata passed to impactfm_SetPresetManager

Definition at line 497 of file sound4.impactfm.cl.h.

◆ impactfm_storage_remove

typedef int(* impactfm_storage_remove) (const fs_char *filename, void *userdata)

Function to call to remove a stored file.

Parameters
filenamethe name of the file to remove.
userdatathe userdata passed to impactfm_SetPresetManager
Returns
-1 if failed, 0 if OK

Definition at line 542 of file sound4.impactfm.cl.h.

◆ impactfm_storage_rename

typedef int(* impactfm_storage_rename) (const fs_char *from, const fs_char *to, void *userdata)

Function to call to rename a stored file.

Parameters
fromThe source file name (must exist)
toThe destination file name (must not exist)
userdatathe userdata passed to impactfm_SetPresetManager
Returns
-1 if failed, 0 if OK

Definition at line 552 of file sound4.impactfm.cl.h.

◆ impactfm_storage_writer

typedef int(* impactfm_storage_writer) (const fs_char *filename, const char *content, void *userdata)

Function to call to write a stored file.

Parameters
filenamethe name of the file to write.
contentthe UTF-8 content to write to the file
userdatathe userdata passed to impactfm_SetPresetManager
Returns
-1 if failed, 0 if OK

Definition at line 507 of file sound4.impactfm.cl.h.

Enumeration Type Documentation

◆ impactfm_PresetChange_Kind

Kind of change on a storage path

Enumerator
change_kind_created 

Path has been created.

change_kind_modified 

Path has been modified.

change_kind_deleted 

Path has been deleted.

Definition at line 585 of file sound4.impactfm.cl.h.

Function Documentation

◆ impactfm_PresetManager_InformChange()

void impactfm_PresetManager_InformChange ( struct impactfm_CInstance *  instance,
const fs_char *  relative_path,
enum impactfm_PresetChange_Kind  change_kind 
)

Inform that a change happened in the storage. This must be used only in conjonction with impactfm_SetPresetManager

Parameters
instancethe processing instance
relative_pathThe path which changed, relative to the root storage
change_kindWhat happened to this path

◆ impactfm_SetPresetManager()

void impactfm_SetPresetManager ( struct impactfm_CParameters *  params,
impactfm_storage_reader  reader,
impactfm_storage_reader_free  ,
impactfm_storage_writer  writer,
impactfm_storage_exists  exists,
impactfm_storage_getall  getall,
impactfm_storage_getall_free  getall_free,
impactfm_storage_remove  remove,
impactfm_storage_rename  rename,
int  IsReadOnly,
void *  userdata 
)

Setup a custom preset manager. This overrides the save_path in impactfm_InitProcess2

To dynamically update when storage change, see impactfm_PresetManager_InformChange

Parameters
paramsThe params to set up
readerThe function to read a file
writerThe function to write a file
existsThe function to test for a file presence
getallThe function to get all files in storage
getall_freeThe function to free the result from getall
removeThe function to remove a file from storage
renameThe function to rename a file
IsReadOnlySet to 1 if storage is read-only
userdataThe userdata parameter for callbacks