mm_sync_start()

Start a synchronization.

Synopsis:

#include <mmsync/mmsyncclient.h>
int mm_sync_start( mmsync_hdl_t *hdl, 
                   const char *db, 
                   const char *mountpoint, 
                   const char *syncpath, 
                   uint32_t options, 
                   const strm_dict_t *extended_options )

Arguments:

hdl

The mm-sync connection handle

db

The device path of the database where the content is to be synchronized

mountpoint

The mountpoint of the mediastore to synchronize

syncpath

The relative path on the mediastore for the files or folders to synchronize

options

The following synchronization options apply:

MMSYNC_OPTION_PASS_FILES
Perform the files pass.
MMSYNC_OPTION_PASS_METADATA
Perform the metadata pass.
MMSYNC_OPTION_PASS_PLAYLISTS
Perform the playlists pass.
MMSYNC_OPTION_PASS_ALL
Perform all three passes.
MMSYNC_OPTION_CANCEL_CURRENT
Cancel any synchronization in progress on the device before starting the new synchronization.
MMSYNC_OPTION_RECURSIVE
After synchronizing the root folder in the specified path, synchronize its subfolders and their contents.

You can enable any combination of synchronization options by separating multiple flags with the bitwise OR operator (|). For example, to do the first two passes recursively, set options to: MMSYNC_OPTION_PASS_FILES | MMSYNC_OPTION_PASS_METADATA | MMSYNC_OPTION_PASS_RECURSIVE

extended_options
A set of key/value pairs with extended synchronization options, formatted as a comma-separated list of pairs:
key1=value1,key2=value2,key3=value3,...
This parameter may be NULL.
Key Value Description
use_synchronizer mss name (a text string naming a supported synchronizer; for example, dvdaudio) Use the specified synchronizer if it supports the current operation; otherwise, do nothing.
force_synchronizer mss name (a text string naming a supported synchronizer; for example, dvdvideo) Force the use of the specified synchronizer, whether or not it supports the current operation.
dynamic_folder enable | disable

Enable or disable the dynamic setting for the folder specified in syncpath. The fids for files in this folder will remain constant while this setting is enabled. The setting is nonrecursive, so the only files affected are those in the top-level folder given in syncpath; files in subfolders aren't affected.

For information on how this setting impacts synchronization, see "Maintaining constant IDs for updated files and playlists".

metadata_keys

The names of metadata fields to be read, with individual fields separated by semi-colons (;):

md_title_name=Poltergeist;md_title_genre=Horror;md_title_album=UnleashTheDemons;md_title_artist=Mr_X

Retrieve only the listed metadata fields. This setting is effective only for directed synchronizations in which dynamic_folder is enabled.

When you define metadata_keys, the libmd library isn't used for metadata extraction; instead, mm-sync sets the metadata fields to the values listed in this option.

You must provide values for each field that you list.

Library:

mmsyncclient

Description:

Start a synchronization of the media content in the specified synchronization path. This path is relative within the filesystem of the mediastore located at the specified mountpoint. The media content is synchronized to the database identified by the device path. The mm-sync process performs the synchronization in a dedicated thread, so this call returns before the synchronization begins.

All path arguments must contain valid locations in a locally accessible filesystem. The syncpath argument is highly flexible, allowing you to set the following synchronization scopes:

For synchronizations of content from multiple folders on the mediastore, you must set the MMSYNC_OPTION_RECURSIVE flag to instruct mm-sync to look in the subfolders under the top-level folder named in the path. When the path is a folder, you must terminate the path string with a slash ("/"). Specifying a path of "/" synchronizes the entire mediastore. When the path is a file, you must set both the MMSYNC_OPTION_PASS_FILES and MMSYNC_OPTION_PASS_METADATA flags for media files and set the MMSYNC_OPTION_PASS_PLAYLISTS flag for playlists.

Some mediastore types don't support synchronizations directed at folders or files. For these mediastores, you must synchronize all the content on the device.

Returns:

>0 values refer to the synchronization operation ID on success; -1 is returned on failure