libmtp
1.1.11
|
Functions | |
LIBMTP_folder_t * | LIBMTP_new_folder_t (void) |
void | LIBMTP_destroy_folder_t (LIBMTP_folder_t *) |
LIBMTP_folder_t * | LIBMTP_Get_Folder_List (LIBMTP_mtpdevice_t *) |
LIBMTP_folder_t * | LIBMTP_Get_Folder_List_For_Storage (LIBMTP_mtpdevice_t *, uint32_t const) |
LIBMTP_folder_t * | LIBMTP_Find_Folder (LIBMTP_folder_t *, uint32_t const) |
uint32_t | LIBMTP_Create_Folder (LIBMTP_mtpdevice_t *, char *, uint32_t, uint32_t) |
int | LIBMTP_Set_Folder_Name (LIBMTP_mtpdevice_t *, LIBMTP_folder_t *, const char *) |
uint32_t LIBMTP_Create_Folder | ( | LIBMTP_mtpdevice_t * | device, |
char * | name, | ||
uint32_t | parent_id, | ||
uint32_t | storage_id | ||
) |
This create a folder on the current MTP device. The PTP name for a folder is "association". The PTP/MTP devices does not have an internal "folder" concept really, it contains a flat list of all files and some file are "associations" that other files and folders may refer to as its "parent".
device | a pointer to the device to create the folder on. |
name | the name of the new folder. Note this can be modified if the device does not support all the characters in the name. |
parent_id | id of parent folder to add the new folder to, or 0xFFFFFFFF to put it in the root directory. |
storage_id | id of the storage to add this new folder to. notice that you cannot mismatch storage id and parent id: they must both be on the same storage! Pass in 0 if you want to create this folder on the default storage. |
References DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST, LIBMTP_mtpdevice_struct::params, strip_7bit_from_utf8(), and LIBMTP_mtpdevice_struct::usbinfo.
void LIBMTP_destroy_folder_t | ( | LIBMTP_folder_t * | folder | ) |
This recursively deletes the memory for a folder structure. This shall typically be called on a top-level folder list to detsroy the entire folder tree.
folder | folder structure to destroy |
References LIBMTP_folder_struct::child, LIBMTP_destroy_folder_t(), LIBMTP_folder_struct::name, and LIBMTP_folder_struct::sibling.
Referenced by LIBMTP_destroy_folder_t(), and LIBMTP_Get_Folder_List_For_Storage().
LIBMTP_folder_t* LIBMTP_Find_Folder | ( | LIBMTP_folder_t * | folderlist, |
uint32_t | id | ||
) |
Helper function. Returns a folder structure for a specified id.
folderlist | list of folders to search id of folder to look for |
References LIBMTP_folder_struct::child, LIBMTP_folder_struct::folder_id, LIBMTP_Find_Folder(), LIBMTP_folder_struct::parent_id, and LIBMTP_folder_struct::sibling.
Referenced by LIBMTP_Find_Folder().
LIBMTP_folder_t* LIBMTP_Get_Folder_List | ( | LIBMTP_mtpdevice_t * | device | ) |
This returns a list of all folders available on the current MTP device.
device | a pointer to the device to get the folder listing for. |
References LIBMTP_Get_Folder_List_For_Storage().
LIBMTP_folder_t* LIBMTP_Get_Folder_List_For_Storage | ( | LIBMTP_mtpdevice_t * | device, |
uint32_t const | storage | ||
) |
This returns a list of all folders available on the current MTP device.
device | a pointer to the device to get the folder listing for. |
storage | a storage ID to get the folder list from |
References LIBMTP_folder_struct::child, LIBMTP_folder_struct::folder_id, LIBMTP_destroy_folder_t(), LIBMTP_new_folder_t(), LIBMTP_folder_struct::name, LIBMTP_mtpdevice_struct::params, LIBMTP_folder_struct::parent_id, LIBMTP_folder_struct::sibling, and LIBMTP_folder_struct::storage_id.
Referenced by LIBMTP_Get_Folder_List().
LIBMTP_folder_t* LIBMTP_new_folder_t | ( | void | ) |
This creates a new folder structure and allocates memory for it. Notice that if you add strings to this structure they will be freed by the corresponding LIBMTP_folder_track_t
operation later, so be careful of using strdup() when assigning strings, e.g.:
References LIBMTP_folder_struct::folder_id.
Referenced by LIBMTP_Get_Folder_List_For_Storage().
int LIBMTP_Set_Folder_Name | ( | LIBMTP_mtpdevice_t * | device, |
LIBMTP_folder_t * | folder, | ||
const char * | newname | ||
) |
This function renames a single folder. This simply means that the PTP_OPC_ObjectFileName property is updated, if this is supported by the device.
device | a pointer to the device that contains the file. |
folder | the folder metadata of the folder to rename. On success, the name member is updated. Be aware, that this name can be different than newname depending of device restrictions. |
newname | the new name for this object. |
References LIBMTP_folder_struct::folder_id, and LIBMTP_folder_struct::name.