#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) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (gp_context_cancel (context) == if (