Defines in config.h

Preprocessor macro definitions for the config.h header file in the mmsyncclient library.


#include <mmsync/config.h>

General configuration settings

#define CONFIG_DEFAULT_DEVICE_PATH "/dev/mmsync"

The default mountpoint of the mm-sync resource manager API. All control contexts are created under this path.


The default verbosity level for mm-sync initialization log messages.

Event settings


The maximum number of event notifications that can be queued at a time.


The default emission control of folder synchronization events, which is trimonly.

Thread resource management settings


The default maximum number of synchronization records that can be stored in the buffers shared between the foreground and background synchronization threads.


The default maximum number of foreground synchronization threads permitted to run at a time.


The default synchronization thread priority (0 means the priority is inherited from the main mm-sync thread).


The default synchronization merge thread priority adjustment. This value is added to the original synchronization thread priority, so it's a relative value.

Limits on files that get synchronized


The default maximum directory depth to recursively visit when synchronizing a mediastore. This setting also applies to priority folders.


The maximum number of distinct mediastores for which you can define a limit on the number of media items read. This setting basically restricts how many <MaxMediaStoreItems> tags will be read from the configuration file.


The default maximum number of media items that can be synchronized in a folder before mm-sync skips the remaining items and moves onto another folder. This limit excludes "." and ".." filesystem entries but includes any items whose filenames match the name pattern for files to skip from synchronization (which is specified in the <SyncFileMask> tag).

Here, media items refers to media files as defined in the configuration file. Individual tracks, playlists, and folders can be considered media items.

When this setting is 0, all media items in a folder get synchronized. If the number of folder entries is greater than this configured limit, the subset of items that gets synchronized depends on the system.


The default maximum number of nonmedia items allowed in a folder before the folder is determined to not contain media items (0 means unlimited).


The default maximum number of items to examine in a folder when prescanning for nonmedia content. All items—media and nonmedia—count towards the prescan limit.

When this setting is 0, mm-sync keeps scanning the folder until all of its items have been examined or the limit of nonmedia items is reached.

Limits on lengths of string parameters

#define CONFIG_MAX_PATH 4000 

The maximum allowable length of any filename (including the path) given to mm-sync as a synchronization parameter.

#define CONFIG_MAX_SQL 8000 

The maximum size of a message that can be sent to the database resource manager; the message could be an SQL statement or something else.


The maximum length of a file extension that can be specified in any filename given to mm-sync.


The maximum number of distinct file extensions that can be synchronized. This setting is applied separately for the extensions of media files and for the extensions of playlists.

#define CONFIG_MAX_MS_NAME_LEN (128)

The maximum allowable length for a volume name referring to an attached mediastore. The length of the volume name passed in to mm-sync by the client can't exceed the configured length limit, or the synchronization operation fails.


The maximum length of a mediastore synchronizer name that can be given to mm-sync in the extended options for mm_sync_start().

Limits on external artwork filenames


The maximum length of a filename extension that an image file can have for it to be recognized as a source of external artwork. Used by the external art metadata plugin for retrieving cover art from Gracenote.

Database settings


The default maximum size for the database, in kilobytes. If the database exceeds this size, the synchronization aborts. If 0, there is no maximum database size.


After synchronizing this many files, mm-sync will check the database size. Larger values mean faster synchronizations but also that the maximum database size can be exceeded by a greater margin before the synchronization aborts. If 0, mm-sync won't check the database size during a synchronization.


The default timeout value for database accesses, in milliseconds.


Maximum metadata string lengths are specified in 4-byte characters. This constant is used by mm-sync for copying metadata to the database.


The mm-sync limit on the maximum size of metadata strings that get written to the database. This maximum size is the number of characters in the metadata strings copied from metadata providers into database fields.