#include "config.h"#include <gphoto2/gphoto2-filesys.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <unistd.h>#include <gphoto2/gphoto2-result.h>#include <gphoto2/gphoto2-port-log.h>#include <gphoto2/gphoto2-setting.h>#include <limits.h>

Data Structures | |
| struct | _CameraFilesystemFile |
| struct | CameraFilesystemFolder |
| struct | _CameraFilesystem |
| The internal camera filesystem structure. More... | |
Defines | |
| #define | _BSD_SOURCE |
| #define | textdomain(String) (String) |
| #define | gettext(String) (String) |
| #define | dgettext(Domain, Message) (Message) |
| #define | dcgettext(Domain, Message, Type) (Message) |
| #define | bindtextdomain(Domain, Directory) (Domain) |
| #define | _(String) (String) |
| #define | N_(String) (String) |
| #define | GP_MODULE "libgphoto2" |
| #define | PATH_MAX 4096 |
| #define | PICTURES_TO_KEEP 2 |
| #define | MIN(a, b) (((a) < (b)) ? (a) : (b)) |
| #define | CHECK_NULL(r) {if (!(r)) return (GP_ERROR_BAD_PARAMETERS);} |
| #define | CR(result) {int r = (result); if (r < 0) return (r);} |
| #define | CHECK_MEM(m) {if (!(m)) return (GP_ERROR_NO_MEMORY);} |
| #define | CL(result, list) |
| #define | CU(result, file) |
| #define | CC(context) |
| #define | CA(f, c) |
| #define | CBO(bufsize, string_len, msg) |
Typedefs | |
|
typedef struct _CameraFilesystemFile | CameraFilesystemFile |
Functions | |
| int | gp_filesystem_reset (CameraFilesystem *fs) |
| Clear the filesystem. | |
| int | gp_filesystem_new (CameraFilesystem **fs) |
| Create a new filesystem struct. | |
| int | gp_filesystem_free (CameraFilesystem *fs) |
| Free filesystem struct. | |
| int | gp_filesystem_append (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context) |
| Append a file to a folder in a filesystem. | |
| int | gp_filesystem_dump (CameraFilesystem *fs) |
| Dump the current filesystem. | |
| int | gp_filesystem_delete_all (CameraFilesystem *fs, const char *folder, GPContext *context) |
| Delete all files in specified folder. | |
| int | gp_filesystem_list_files (CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context) |
| Get the list of files in a folder. | |
| int | gp_filesystem_list_folders (CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context) |
| List all subfolders within a filesystem folder. | |
| int | gp_filesystem_count (CameraFilesystem *fs, const char *folder, GPContext *context) |
| Count files a folder of a filesystem. | |
| int | gp_filesystem_delete_file (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context) |
| Delete a file from a folder. | |
| int | gp_filesystem_delete_file_noop (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context) |
| Delete a virtal file from a folder in the filesystem. | |
| int | gp_filesystem_make_dir (CameraFilesystem *fs, const char *folder, const char *name, GPContext *context) |
| Create a subfolder within a folder. | |
| int | gp_filesystem_remove_dir (CameraFilesystem *fs, const char *folder, const char *name, GPContext *context) |
| Remove a subfolder from within a folder. | |
| int | gp_filesystem_put_file (CameraFilesystem *fs, const char *folder, CameraFile *file, GPContext *context) |
| Upload a file to a folder on the device filesystem. | |
| int | gp_filesystem_name (CameraFilesystem *fs, const char *folder, int filenumber, const char **filename, GPContext *context) |
| Lookup the filename of an indexed file within a folder. | |
| int | gp_filesystem_number (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context) |
| Get the index of a file in specified folder. | |
| int | gp_filesystem_get_folder (CameraFilesystem *fs, const char *filename, const char **folder, GPContext *context) |
| Search a folder that contains a given filename. | |
| int | gp_filesystem_set_list_funcs (CameraFilesystem *fs, CameraFilesystemListFunc file_list_func, CameraFilesystemListFunc folder_list_func, void *data) |
| Set the functions to list folders and files. | |
| int | gp_filesystem_set_file_funcs (CameraFilesystem *fs, CameraFilesystemGetFileFunc get_file_func, CameraFilesystemDeleteFileFunc del_file_func, void *data) |
| Set camera filesystem file related functions. | |
| int | gp_filesystem_set_folder_funcs (CameraFilesystem *fs, CameraFilesystemPutFileFunc put_file_func, CameraFilesystemDeleteAllFunc delete_all_func, CameraFilesystemDirFunc make_dir_func, CameraFilesystemDirFunc remove_dir_func, void *data) |
| Set folder related functions of the filesystem. | |
| int | gp_filesystem_get_file (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, GPContext *context) |
| Get file data from the filesystem. | |
| int | gp_filesystem_set_info_funcs (CameraFilesystem *fs, CameraFilesystemGetInfoFunc get_info_func, CameraFilesystemSetInfoFunc set_info_func, void *data) |
| Set file information functions. | |
| int | gp_filesystem_set_funcs (CameraFilesystem *fs, CameraFilesystemFuncs *funcs, void *data) |
| Set all filesystem related function pointers. | |
| int | gp_filesystem_get_info (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, GPContext *context) |
| Get information about the specified file. | |
| int | gp_filesystem_set_file_noop (CameraFilesystem *fs, const char *folder, CameraFile *file, GPContext *context) |
| Attach file content to a specified file. | |
| int | gp_filesystem_set_info_noop (CameraFilesystem *fs, const char *folder, CameraFileInfo info, GPContext *context) |
| Store the file information in the virtual fs. | |
| int | gp_filesystem_set_info (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, GPContext *context) |
| Set information about a file. | |
| int | gp_filesystem_get_storageinfo (CameraFilesystem *fs, CameraStorageInformation **storageinfo, int *nrofstorageinfos, GPContext *context) |
| Get the storage information about this filesystem. | |
| #define CA | ( | f, | |||
| c | ) |
Value:
{ \
if ((f)[0] != '/') { \
gp_context_error ((c), \
_("The path '%s' is not absolute."), (f)); \
return (GP_ERROR_PATH_NOT_ABSOLUTE); \
} \
}
| #define CBO | ( | bufsize, | |||
| string_len, | |||||
| msg | ) |
Value:
if (bufsize <= string_len) { \ GP_DEBUG ("%s: strlen(...) = %d " \ ">= sizeof(buffer) = %d", \ msg, (int)string_len, (int)bufsize \ ); \ gp_context_error (context, "preventing buffer overflow"); \ return GP_ERROR; \ }
| #define CC | ( | context | ) |
Value:
{ \
if (gp_context_cancel (context) == GP_CONTEXT_FEEDBACK_CANCEL) \
return GP_ERROR_CANCEL; \
}
| #define CL | ( | result, | |||
| list | ) |
Value:
{ \
int r = (result); \
\
if (r < 0) { \
gp_list_free (list); \
return (r); \
} \
}
| #define CU | ( | result, | |||
| file | ) |
Value:
{ \
int r = (result); \
\
if (r < 0) { \
gp_file_unref (file); \
return (r); \
} \
}
| #define PICTURES_TO_KEEP 2 |
The default number of pictures to keep in the internal cache, can be overriden by settings.
| int gp_filesystem_append | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| GPContext * | context | |||
| ) |
Append a file to a folder in a filesystem.
| fs | a CameraFilesystem | |
| folder | the folder where to put the file in | |
| filename | filename of the file | |
| context | a GPContext |
References _CameraFilesystem::folder, GP_ERROR_DIRECTORY_NOT_FOUND, and GP_ERROR_FILE_EXISTS.
Referenced by gp_filesystem_list_files().
| int gp_filesystem_count | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| GPContext * | context | |||
| ) |
Count files a folder of a filesystem.
| fs | a CameraFilesystem | |
| folder | a folder in which to count the files | |
| context | a GPContext |
References _CameraFilesystem::folder.
| int gp_filesystem_delete_all | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| GPContext * | context | |||
| ) |
Delete all files in specified folder.
| fs | a CameraFilesystem | |
| folder | the folder in which to delete all files | |
| context | a GPContext |
References _CameraFilesystem::delete_all_func, _CameraFilesystem::folder, _CameraFilesystem::folder_data, gp_log(), GP_LOG_DEBUG, and gp_result_as_string().
Referenced by gp_camera_folder_delete_all().
| int gp_filesystem_delete_file | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| GPContext * | context | |||
| ) |
Delete a file from a folder.
| fs | a CameraFilesystem | |
| folder | a folder in which to delete the file | |
| filename | the name of the file to delete | |
| context | a GPContext |
References _CameraFilesystem::delete_file_func, _CameraFilesystem::file_data, GP_ERROR_NOT_SUPPORTED, and gp_filesystem_number().
Referenced by gp_camera_file_delete().
| int gp_filesystem_delete_file_noop | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| GPContext * | context | |||
| ) |
Delete a virtal file from a folder in the filesystem.
| fs | a CameraFilesystem | |
| folder | a folder in which to delete the file | |
| filename | the name of the file to delete | |
| context | a GPContext |
References gp_filesystem_number().
| int gp_filesystem_dump | ( | CameraFilesystem * | fs | ) |
Dump the current filesystem.
| fs | the CameraFilesystem |
References _CameraFilesystem::count, and _CameraFilesystem::folder.
| int gp_filesystem_free | ( | CameraFilesystem * | fs | ) |
Free filesystem struct.
| fs | a CameraFilesystem |
References _CameraFilesystem::folder, and gp_filesystem_reset().
Referenced by gp_camera_free().
| int gp_filesystem_get_file | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| CameraFileType | type, | |||
| CameraFile * | file, | |||
| GPContext * | context | |||
| ) |
Get file data from the filesystem.
| fs | a CameraFilesystem | |
| folder | the folder in which the file can be found | |
| filename | the name of the file to download | |
| type | the type of the file | |
| file | the file that receives the data | |
| context | a GPContext |
References GP_ERROR_CORRUPTED_DATA, GP_ERROR_NOT_SUPPORTED, gp_file_adjust_name_for_mime_type(), gp_file_get_data_and_size(), gp_file_new(), gp_file_set_data_and_size(), gp_file_set_mime_type(), gp_file_set_name(), gp_file_set_type(), GP_FILE_TYPE_EXIF, GP_FILE_TYPE_PREVIEW, gp_file_unref(), gp_filesystem_set_file_noop(), and gp_result_as_string().
Referenced by gp_camera_file_get().
| int gp_filesystem_get_folder | ( | CameraFilesystem * | fs, | |
| const char * | filename, | |||
| const char ** | folder, | |||
| GPContext * | context | |||
| ) |
Search a folder that contains a given filename.
| fs | a CameraFilesystem | |
| filename | the name of the file to search in the fs | |
| folder | pointer to value where the string is stored in | |
| context | a GPContext |
Note that you get a reference to the string stored in the filesystem structure, so do not free it yourself.
References _CameraFilesystem::count, _CameraFilesystem::folder, and GP_ERROR_FILE_NOT_FOUND.
| int gp_filesystem_get_info | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| CameraFileInfo * | info, | |||
| GPContext * | context | |||
| ) |
Get information about the specified file.
| fs | a CameraFilesystem | |
| folder | the folder that contains the file | |
| filename | the filename | |
| info | pointer to CameraFileInfo that receives the information | |
| context | a GPContext |
References _CameraFilesystem::folder, _CameraFilesystem::get_info_func, GP_ERROR_NOT_SUPPORTED, GP_FILE_INFO_MTIME, gp_filesystem_number(), and _CameraFilesystem::info_data.
Referenced by gp_camera_file_get_info(), and gp_filesystem_set_file_noop().
| int gp_filesystem_get_storageinfo | ( | CameraFilesystem * | fs, | |
| CameraStorageInformation ** | storageinfo, | |||
| int * | nrofstorageinfos, | |||
| GPContext * | context | |||
| ) |
Get the storage information about this filesystem.
| fs | the filesystem | |
| storageinfo | pointer to receive the array of informations | |
| nrofstorageinfos | pointer to receive number of array entries | |
| context | a GPContext |
References GP_ERROR_NOT_SUPPORTED, _CameraFilesystem::info_data, and _CameraFilesystem::storage_info_func.
Referenced by gp_camera_get_storageinfo().
| int gp_filesystem_list_files | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| CameraList * | list, | |||
| GPContext * | context | |||
| ) |
Get the list of files in a folder.
| fs | a CameraFilesystem | |
| folder | a folder of which a file list should be generated | |
| list | a CameraList where to put the list of files into | |
| context | a GPContext |
References _CameraFilesystem::file_list_func, _CameraFilesystem::folder, gp_filesystem_append(), gp_list_append(), gp_list_count(), gp_list_get_name(), gp_list_reset(), gp_log(), GP_LOG_DEBUG, and _CameraFilesystem::list_data.
Referenced by gp_camera_folder_list_files(), gp_filesystem_number(), and gp_filesystem_remove_dir().
| int gp_filesystem_list_folders | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| CameraList * | list, | |||
| GPContext * | context | |||
| ) |
List all subfolders within a filesystem folder.
| fs | a CameraFilesystem | |
| folder | a folder | |
| list | a CameraList where subfolders should be listed | |
| context | a GPContext |
References _CameraFilesystem::count, _CameraFilesystem::folder, _CameraFilesystem::folder_list_func, gp_list_append(), gp_list_count(), gp_list_get_name(), gp_list_reset(), gp_log(), GP_LOG_DEBUG, and _CameraFilesystem::list_data.
Referenced by gp_camera_folder_list_folders(), and gp_filesystem_remove_dir().
| int gp_filesystem_make_dir | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | name, | |||
| GPContext * | context | |||
| ) |
Create a subfolder within a folder.
| fs | a CameraFilesystem | |
| folder | the folder in which the directory should be created | |
| name | the name of the directory to be created | |
| context | a GPContext |
References _CameraFilesystem::folder_data, GP_ERROR_NOT_SUPPORTED, and _CameraFilesystem::make_dir_func.
Referenced by gp_camera_folder_make_dir().
| int gp_filesystem_name | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| int | filenumber, | |||
| const char ** | filename, | |||
| GPContext * | context | |||
| ) |
Lookup the filename of an indexed file within a folder.
| fs | a CameraFilesystem | |
| folder | the folder where to look up the file with the filenumber | |
| filenumber | the number of the file | |
| filename | pointer to a filename where the result is stored | |
| context | a GPContext |
References _CameraFilesystem::folder, and GP_ERROR_FILE_NOT_FOUND.
| int gp_filesystem_new | ( | CameraFilesystem ** | fs | ) |
Create a new filesystem struct.
| fs | a pointer to a CameraFilesystem |
Referenced by gp_camera_new().
| int gp_filesystem_number | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| GPContext * | context | |||
| ) |
Get the index of a file in specified folder.
| fs | a CameraFilesystem | |
| folder | the folder where to look for file called filename | |
| filename | the file to look for | |
| context | a GPContext |
References _CameraFilesystem::folder, GP_ERROR_FILE_NOT_FOUND, gp_filesystem_list_files(), gp_filesystem_number(), gp_list_free(), and gp_list_new().
Referenced by gp_filesystem_delete_file(), gp_filesystem_delete_file_noop(), gp_filesystem_get_info(), gp_filesystem_number(), gp_filesystem_set_file_noop(), gp_filesystem_set_info(), and gp_filesystem_set_info_noop().
| int gp_filesystem_put_file | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| CameraFile * | file, | |||
| GPContext * | context | |||
| ) |
Upload a file to a folder on the device filesystem.
| fs | a CameraFilesystem | |
| folder | the folder where to put the file into | |
| file | the file | |
| context | a GPContext |
References _CameraFilesystem::folder_data, GP_ERROR_NOT_SUPPORTED, and _CameraFilesystem::put_file_func.
Referenced by gp_camera_folder_put_file().
| int gp_filesystem_remove_dir | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | name, | |||
| GPContext * | context | |||
| ) |
Remove a subfolder from within a folder.
| fs | a CameraFilesystem | |
| folder | the folder in which the directory should be created | |
| name | the name of the directory to be created | |
| context | a GPContext |
References _CameraFilesystem::folder_data, GP_ERROR_DIRECTORY_EXISTS, GP_ERROR_FILE_EXISTS, GP_ERROR_NOT_SUPPORTED, gp_filesystem_list_files(), gp_filesystem_list_folders(), gp_list_count(), gp_list_free(), gp_list_new(), and _CameraFilesystem::remove_dir_func.
Referenced by gp_camera_folder_remove_dir().
| int gp_filesystem_reset | ( | CameraFilesystem * | fs | ) |
Clear the filesystem.
| fs | the filesystem to be cleared |
Referenced by gp_camera_exit(), and gp_filesystem_free().
| int gp_filesystem_set_file_funcs | ( | CameraFilesystem * | fs, | |
| CameraFilesystemGetFileFunc | get_file_func, | |||
| CameraFilesystemDeleteFileFunc | del_file_func, | |||
| void * | data | |||
| ) |
Set camera filesystem file related functions.
| fs | a CameraFilesystem | |
| get_file_func | the function downloading files | |
| del_file_func | the function deleting files | |
| data | private data structure |
References _CameraFilesystem::delete_file_func, _CameraFilesystem::file_data, and _CameraFilesystem::get_file_func.
| int gp_filesystem_set_file_noop | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| CameraFile * | file, | |||
| GPContext * | context | |||
| ) |
Attach file content to a specified file.
| fs | a CameraFilesystem | |
| folder | a folder in the filesystem | |
| file | a CameraFile | |
| context,: | a GPContext |
References _CameraFileInfoFile::fields, _CameraFileInfo::file, _CameraFilesystem::folder, GP_ERROR, gp_file_get_data_and_size(), gp_file_get_mtime(), gp_file_get_name(), gp_file_get_type(), GP_FILE_INFO_MTIME, gp_file_ref(), gp_file_set_mtime(), GP_FILE_TYPE_AUDIO, GP_FILE_TYPE_EXIF, GP_FILE_TYPE_METADATA, GP_FILE_TYPE_NORMAL, GP_FILE_TYPE_PREVIEW, GP_FILE_TYPE_RAW, gp_file_unref(), gp_filesystem_get_info(), gp_filesystem_number(), and _CameraFileInfoFile::mtime.
Referenced by gp_filesystem_get_file().
| int gp_filesystem_set_folder_funcs | ( | CameraFilesystem * | fs, | |
| CameraFilesystemPutFileFunc | put_file_func, | |||
| CameraFilesystemDeleteAllFunc | delete_all_func, | |||
| CameraFilesystemDirFunc | make_dir_func, | |||
| CameraFilesystemDirFunc | remove_dir_func, | |||
| void * | data | |||
| ) |
Set folder related functions of the filesystem.
| fs | a CameraFilesystem | |
| put_file_func | function used to upload files | |
| delete_all_func | function used to delete all files in a folder | |
| make_dir_func | function used to create a new directory | |
| remove_dir_func | function used to remove an existing directory | |
| data | a data object that will passed to all called functions |
The fs will try to compensate missing delete_all_func functionality with the delete_file_func if such a function has been supplied.
References _CameraFilesystem::delete_all_func, _CameraFilesystem::folder_data, _CameraFilesystem::make_dir_func, _CameraFilesystem::put_file_func, and _CameraFilesystem::remove_dir_func.
| int gp_filesystem_set_funcs | ( | CameraFilesystem * | fs, | |
| CameraFilesystemFuncs * | funcs, | |||
| void * | data | |||
| ) |
Set all filesystem related function pointers.
| fs | a CameraFilesystem | |
| funcs | pointer to a struct of filesystem functions | |
| data | private data |
References _CameraFilesystem::delete_all_func, _CameraFilesystem::delete_file_func, _CameraFilesystem::file_data, _CameraFilesystem::file_list_func, _CameraFilesystem::folder_data, _CameraFilesystem::folder_list_func, _CameraFilesystem::get_file_func, _CameraFilesystem::get_info_func, _CameraFilesystem::info_data, _CameraFilesystem::list_data, _CameraFilesystem::make_dir_func, _CameraFilesystem::put_file_func, _CameraFilesystem::remove_dir_func, _CameraFilesystem::set_info_func, and _CameraFilesystem::storage_info_func.
Referenced by camera_init().
| int gp_filesystem_set_info | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| const char * | filename, | |||
| CameraFileInfo | info, | |||
| GPContext * | context | |||
| ) |
Set information about a file.
| fs | a CameraFilesystem | |
| folder | foldername where the file resides | |
| filename | the files name | |
| info | the CameraFileInfo to set | |
| context | a GPContext |
References _CameraFileInfo::audio, _CameraFileInfoAudio::fields, _CameraFileInfoPreview::fields, _CameraFileInfoFile::fields, _CameraFileInfo::file, _CameraFilesystem::folder, GP_ERROR_BAD_PARAMETERS, GP_ERROR_FILE_NOT_FOUND, GP_ERROR_NOT_SUPPORTED, GP_FILE_INFO_HEIGHT, GP_FILE_INFO_NAME, GP_FILE_INFO_NONE, GP_FILE_INFO_PERMISSIONS, GP_FILE_INFO_SIZE, GP_FILE_INFO_STATUS, GP_FILE_INFO_TYPE, GP_FILE_INFO_WIDTH, gp_filesystem_number(), _CameraFilesystem::info_data, _CameraFileInfoFile::name, _CameraFileInfoFile::permissions, _CameraFileInfo::preview, and _CameraFilesystem::set_info_func.
Referenced by gp_camera_file_set_info().
| int gp_filesystem_set_info_funcs | ( | CameraFilesystem * | fs, | |
| CameraFilesystemGetInfoFunc | get_info_func, | |||
| CameraFilesystemSetInfoFunc | set_info_func, | |||
| void * | data | |||
| ) |
Set file information functions.
| fs | a CameraFilesystem | |
| get_info_func | the function to retrieve file information | |
| set_info_func | the function to set file information | |
| data | private data |
References _CameraFilesystem::get_info_func, _CameraFilesystem::info_data, and _CameraFilesystem::set_info_func.
| int gp_filesystem_set_info_noop | ( | CameraFilesystem * | fs, | |
| const char * | folder, | |||
| CameraFileInfo | info, | |||
| GPContext * | context | |||
| ) |
Store the file information in the virtual fs.
| fs | a CameraFilesystem | |
| folder | the foldername | |
| info | the CameraFileInfo to store | |
| context | a GPContext |
References _CameraFileInfo::file, _CameraFilesystem::folder, gp_filesystem_number(), and _CameraFileInfoFile::name.
| int gp_filesystem_set_list_funcs | ( | CameraFilesystem * | fs, | |
| CameraFilesystemListFunc | file_list_func, | |||
| CameraFilesystemListFunc | folder_list_func, | |||
| void * | data | |||
| ) |
Set the functions to list folders and files.
| fs | a CameraFilesystem | |
| file_list_func | the function that will return listings of files | |
| folder_list_func | the function that will return listings of folders | |
| data | private data structure |
References _CameraFilesystem::file_list_func, _CameraFilesystem::folder_list_func, and _CameraFilesystem::list_data.
1.5.5