libgphoto2 photo camera library (libgphoto2) API  2.4.11
gphoto2-filesys.h
Go to the documentation of this file.
1 
29 #ifndef __GPHOTO2_FILESYS_H__
30 #define __GPHOTO2_FILESYS_H__
31 
32 #include <time.h>
33 
35 #include <gphoto2/gphoto2-list.h>
36 #include <gphoto2/gphoto2-file.h>
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif /* __cplusplus */
41 
53 typedef enum {
55  GP_FILE_INFO_TYPE = 1 << 0,
56  GP_FILE_INFO_NAME = 1 << 1,
57  GP_FILE_INFO_SIZE = 1 << 2,
58  GP_FILE_INFO_WIDTH = 1 << 3,
62  GP_FILE_INFO_MTIME = 1 << 7,
65 
71 typedef enum {
73  GP_FILE_PERM_READ = 1 << 0,
77 
83 typedef enum {
87 
94 typedef struct _CameraFileInfoFile {
97  unsigned long size;
98  char type[64];
100  unsigned int width;
101  unsigned int height;
102  char name[64];
104  time_t mtime;
106 
113 typedef struct _CameraFileInfoPreview {
116  unsigned long size;
117  char type[64];
119  unsigned int width;
120  unsigned int height;
122 
129 typedef struct _CameraFileInfoAudio {
132  unsigned long size;
133  char type[64];
135 
142 typedef struct _CameraFileInfo {
143  CameraFileInfoPreview preview;
144  CameraFileInfoFile file;
145  CameraFileInfoAudio audio;
147 
154 typedef enum {
169 
176 typedef enum {
183 
190 typedef enum {
195 
202 typedef enum {
208 
217  char basedir[256];
218  char label[256];
219  char description[256];
223  unsigned long capacitykbytes;
224  unsigned long freekbytes;
225  unsigned long freeimages;
227 
236 
239 
240 /* Manual editing */
241 int gp_filesystem_append (CameraFilesystem *fs, const char *folder,
242  const char *filename, GPContext *context);
243 int gp_filesystem_set_info_noop (CameraFilesystem *fs, const char *folder,
244  CameraFileInfo info, GPContext *context);
245 int gp_filesystem_set_file_noop (CameraFilesystem *fs, const char *folder,
246  CameraFile *file, GPContext *context);
247 int gp_filesystem_delete_file_noop (CameraFilesystem *fs, const char *folder,
248  const char *filename, GPContext *context);
250 
251 /* Information retrieval */
252 int gp_filesystem_count (CameraFilesystem *fs, const char *folder,
253  GPContext *context);
254 int gp_filesystem_name (CameraFilesystem *fs, const char *folder,
255  int filenumber, const char **filename,
256  GPContext *context);
257 int gp_filesystem_get_folder (CameraFilesystem *fs, const char *filename,
258  const char **folder, GPContext *context);
259 int gp_filesystem_number (CameraFilesystem *fs, const char *folder,
260  const char *filename, GPContext *context);
261 
262 /* Listings */
263 typedef int (*CameraFilesystemListFunc) (CameraFilesystem *fs,
264  const char *folder, CameraList *list,
265  void *data, GPContext *context);
267  CameraFilesystemListFunc file_list_func,
268  CameraFilesystemListFunc folder_list_func,
269  void *data);
270 int gp_filesystem_list_files (CameraFilesystem *fs, const char *folder,
271  CameraList *list, GPContext *context);
272 int gp_filesystem_list_folders (CameraFilesystem *fs, const char *folder,
273  CameraList *list, GPContext *context);
274 
275 /* File information */
276 typedef int (*CameraFilesystemSetInfoFunc) (CameraFilesystem *fs,
277  const char *folder,
278  const char *filename,
279  CameraFileInfo info, void *data,
280  GPContext *context);
281 typedef int (*CameraFilesystemGetInfoFunc) (CameraFilesystem *fs,
282  const char *folder,
283  const char *filename,
284  CameraFileInfo *info, void *data,
285  GPContext *context);
287  CameraFilesystemGetInfoFunc get_info_func,
288  CameraFilesystemSetInfoFunc set_info_func,
289  void *data);
290 int gp_filesystem_get_info (CameraFilesystem *fs, const char *folder,
291  const char *filename, CameraFileInfo *info,
292  GPContext *context);
293 int gp_filesystem_set_info (CameraFilesystem *fs, const char *folder,
294  const char *filename, CameraFileInfo info,
295  GPContext *context);
296 
297 /* Files */
298 typedef int (*CameraFilesystemGetFileFunc) (CameraFilesystem *fs,
299  const char *folder,
300  const char *filename,
301  CameraFileType type,
302  CameraFile *file, void *data,
303  GPContext *context);
304 typedef int (*CameraFilesystemDeleteFileFunc) (CameraFilesystem *fs,
305  const char *folder,
306  const char *filename,
307  void *data, GPContext *context);
309  CameraFilesystemGetFileFunc get_file_func,
310  CameraFilesystemDeleteFileFunc del_file_func,
311  void *data);
312 int gp_filesystem_get_file (CameraFilesystem *fs, const char *folder,
313  const char *filename, CameraFileType type,
314  CameraFile *file, GPContext *context);
315 int gp_filesystem_delete_file (CameraFilesystem *fs, const char *folder,
316  const char *filename, GPContext *context);
317 
318 /* Folders */
319 typedef int (*CameraFilesystemPutFileFunc) (CameraFilesystem *fs,
320  const char *folder,
321  CameraFile *file, void *data,
322  GPContext *context);
323 typedef int (*CameraFilesystemDeleteAllFunc) (CameraFilesystem *fs,
324  const char *folder, void *data,
325  GPContext *context);
326 typedef int (*CameraFilesystemDirFunc) (CameraFilesystem *fs,
327  const char *folder,
328  const char *name, void *data,
329  GPContext *context);
331  CameraFilesystemPutFileFunc put_file_func,
332  CameraFilesystemDeleteAllFunc delete_all_func,
333  CameraFilesystemDirFunc make_dir_func,
334  CameraFilesystemDirFunc remove_dir_func,
335  void *data);
336 
337 typedef int (*CameraFilesystemStorageInfoFunc) (CameraFilesystem *fs,
339  int *nrofstorageinformations,
340  void *data, GPContext *context);
341 
343  CameraStorageInformation **,
344  int *nrofstorageinformations,
345  GPContext *context);
346 
349  CameraFilesystemListFunc file_list_func;
350  CameraFilesystemListFunc folder_list_func;
351  CameraFilesystemPutFileFunc put_file_func;
352  CameraFilesystemDeleteAllFunc delete_all_func;
353  CameraFilesystemGetInfoFunc get_info_func;
354  CameraFilesystemSetInfoFunc set_info_func;
355  CameraFilesystemDirFunc make_dir_func;
356  CameraFilesystemDirFunc remove_dir_func;
357  CameraFilesystemGetFileFunc get_file_func;
358  CameraFilesystemDeleteFileFunc del_file_func;
359 
360  CameraFilesystemStorageInfoFunc storage_info_func;
361 
362  /* for later use. Remove one if you add a new function */
363  void *unused[31];
364 };
366  CameraFilesystemFuncs *funcs,
367  void *data);
368 int gp_filesystem_put_file (CameraFilesystem *fs, const char *folder,
369  CameraFile *file, GPContext *context);
370 int gp_filesystem_delete_all (CameraFilesystem *fs, const char *folder,
371  GPContext *context);
372 int gp_filesystem_make_dir (CameraFilesystem *fs, const char *folder,
373  const char *name, GPContext *context);
374 int gp_filesystem_remove_dir (CameraFilesystem *fs, const char *folder,
375  const char *name, GPContext *context);
376 
377 /* For debugging */
379 
380 #ifdef __cplusplus
381 }
382 #endif /* __cplusplus */
383 
384 #endif /* __GPHOTO2_FILESYS_H__ */
int gp_filesystem_delete_file(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
Delete a file from a folder.
Definition: gphoto2-filesys.c:1097
A fixed RAM storage. (e.g. SDRAM)
Definition: gphoto2-filesys.h:180
CameraStorageFilesystemType
Filesystem hierarchy types.
Definition: gphoto2-filesys.h:202
char type[64]
MIME type of the file.
Definition: gphoto2-filesys.h:98
Definition: gphoto2-list.c:77
CameraFileInfoFields fields
Bitmask containing the set members.
Definition: gphoto2-filesys.h:130
int folder_list_func(CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
Definition: template.c:380
Storage is Ready Only.
Definition: gphoto2-filesys.h:192
time_t mtime
Modification time of the file.
Definition: gphoto2-filesys.h:104
char type[64]
MIME type of the preview.
Definition: gphoto2-filesys.h:117
Maximum capacity in kbytes.
Definition: gphoto2-filesys.h:165
Unknown storage type.
Definition: gphoto2-filesys.h:177
The filesize is set.
Definition: gphoto2-filesys.h:57
unsigned long capacitykbytes
Total capacity in kbytes.
Definition: gphoto2-filesys.h:223
The base directory. Usually / if just 1 storage is attached.
Definition: gphoto2-filesys.h:155
int gp_filesystem_put_file(CameraFilesystem *fs, const char *folder, CameraFile *file, GPContext *context)
Upload a file to a folder on the device filesystem.
Definition: gphoto2-filesys.c:1276
unsigned long size
Size of the file.
Definition: gphoto2-filesys.h:97
CameraFileInfoFields fields
Bitmask containing the set members.
Definition: gphoto2-filesys.h:95
Internal.
Definition: gphoto2-filesys.h:75
File information of a preview file.
Definition: gphoto2-filesys.h:113
A removable RAM storage. (any kind of cards etc)
Definition: gphoto2-filesys.h:181
unsigned long size
Size of the preview.
Definition: gphoto2-filesys.h:116
int gp_filesystem_set_info(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, GPContext *context)
Set information about a file.
Definition: gphoto2-filesys.c:2420
The modification time is set.
Definition: gphoto2-filesys.h:62
struct _CameraFileInfoAudio CameraFileInfoAudio
File information of an audio file.
CameraStorageAccessType access
Access permissions.
Definition: gphoto2-filesys.h:222
CameraStorageInfoFields
Storage information flags.
Definition: gphoto2-filesys.h:154
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.
Definition: gphoto2-filesys.c:1594
unsigned int width
Height of the file.
Definition: gphoto2-filesys.h:100
int gp_filesystem_set_file_noop(CameraFilesystem *fs, const char *folder, CameraFile *file, GPContext *context)
Attach file content to a specified file.
Definition: gphoto2-filesys.c:2250
The access permissions are set.
Definition: gphoto2-filesys.h:60
int gp_filesystem_number(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
Get the index of a file in specified folder.
Definition: gphoto2-filesys.c:1362
int gp_filesystem_set_info_funcs(CameraFilesystem *fs, CameraFilesystemGetInfoFunc get_info_func, CameraFilesystemSetInfoFunc set_info_func, void *data)
Set file information functions.
Definition: gphoto2-filesys.c:1840
Free space in images.
Definition: gphoto2-filesys.h:167
int gp_filesystem_reset(CameraFilesystem *fs)
Clear the filesystem.
Definition: gphoto2-filesys.c:636
Undefined or unknown filesystem hierarchy.
Definition: gphoto2-filesys.h:203
int gp_filesystem_set_funcs(CameraFilesystem *fs, CameraFilesystemFuncs *funcs, void *data)
Set all filesystem related function pointers.
Definition: gphoto2-filesys.c:1866
No fields set.
Definition: gphoto2-filesys.h:54
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.
Definition: gphoto2-filesys.c:1141
char description[256]
Description of the storage.
Definition: gphoto2-filesys.h:219
CameraFileStatus
Possible status values.
Definition: gphoto2-filesys.h:83
CameraStorageInfoFields fields
Bitmask of struct members that are specified.
Definition: gphoto2-filesys.h:216
char name[64]
Filename of the file.
Definition: gphoto2-filesys.h:102
int file_list_func(CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
Definition: template.c:400
char basedir[256]
Basedirectory of the storage. Will be &quot;/&quot; if just 1 storage on the camera.
Definition: gphoto2-filesys.h:217
int gp_filesystem_get_storageinfo(CameraFilesystem *fs, CameraStorageInformation **storageinfo, int *nrofstorageinfos, GPContext *context)
Get the storage information about this filesystem.
Definition: gphoto2-filesys.c:2528
int get_file_func(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, void *data, GPContext *context)
Definition: template.c:250
int gp_filesystem_remove_dir(CameraFilesystem *fs, const char *folder, const char *name, GPContext *context)
Remove a subfolder from within a folder.
Definition: gphoto2-filesys.c:1201
Free space in kbytes.
Definition: gphoto2-filesys.h:166
Storage is Read / Write.
Definition: gphoto2-filesys.h:191
File structure.
Access permissions.
Definition: gphoto2-filesys.h:162
int put_file_func(CameraFilesystem *fs, const char *folder, CameraFile *file, void *data, GPContext *context)
Definition: template.c:274
int gp_filesystem_set_info_noop(CameraFilesystem *fs, const char *folder, CameraFileInfo info, GPContext *context)
Store the file information in the virtual fs.
Definition: gphoto2-filesys.c:2389
int gp_filesystem_list_folders(CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context)
List all subfolders within a filesystem folder.
Definition: gphoto2-filesys.c:1001
Context callback operation functions.
No permissions.
Definition: gphoto2-filesys.h:72
int gp_filesystem_set_file_funcs(CameraFilesystem *fs, CameraFilesystemGetFileFunc get_file_func, CameraFilesystemDeleteFileFunc del_file_func, void *data)
Set camera filesystem file related functions.
Definition: gphoto2-filesys.c:1557
char type[64]
MIME type of the audio file.
Definition: gphoto2-filesys.h:133
The name is set.
Definition: gphoto2-filesys.h:56
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.
Definition: gphoto2-filesys.c:1711
struct _CameraFileInfoFile CameraFileInfoFile
File information of a regular file.
CameraStorageType type
Hardware type of the storage.
Definition: gphoto2-filesys.h:220
File information of an audio file.
Definition: gphoto2-filesys.h:129
Definition: gphoto2-filesys.h:85
int gp_filesystem_dump(CameraFilesystem *fs)
Dump the current filesystem.
Definition: gphoto2-filesys.c:788
The MIME type is set.
Definition: gphoto2-filesys.h:55
char label[256]
Label of the storage. Similar to DOS label.
Definition: gphoto2-filesys.h:218
unsigned long size
Size of the audio file.
Definition: gphoto2-filesys.h:132
int gp_filesystem_get_info(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, GPContext *context)
Get information about the specified file.
Definition: gphoto2-filesys.c:1905
Read permissions.
Definition: gphoto2-filesys.h:73
Abstracted gphoto2 file operations.
DCIM style storage.
Definition: gphoto2-filesys.h:206
CameraStorageAccessType
Storage access modes.
Definition: gphoto2-filesys.h:190
File information structure.
Definition: gphoto2-filesys.h:142
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.
Definition: gphoto2-filesys.c:1527
CameraStorageFilesystemType fstype
Hierarchy type of the filesystem.
Definition: gphoto2-filesys.h:221
int set_info_func(CameraFilesystem *fs, const char *folder, const char *file, CameraFileInfo info, void *data, GPContext *context)
Definition: template.c:360
Label of the filesystem. Could also be a DOS label.
Definition: gphoto2-filesys.h:158
Filesystem type.
Definition: gphoto2-filesys.h:164
int delete_all_func(CameraFilesystem *fs, const char *folder, void *data, GPContext *context)
Definition: template.c:317
struct _CameraStorageInformation CameraStorageInformation
Storage information structue.
The internal camera filesystem structure.
Definition: gphoto2-filesys.c:241
All possible fields set. Internal.
Definition: gphoto2-filesys.h:63
CameraFileStatus status
Status of the file.
Definition: gphoto2-filesys.h:96
unsigned long freeimages
Free space in images (guessed by camera).
Definition: gphoto2-filesys.h:225
CameraFilePermissions permissions
Permissions of the file.
Definition: gphoto2-filesys.h:103
int gp_filesystem_delete_all(CameraFilesystem *fs, const char *folder, GPContext *context)
Delete all files in specified folder.
Definition: gphoto2-filesys.c:874
unsigned int width
Width of the preview.
Definition: gphoto2-filesys.h:119
CameraFileInfoFields fields
Bitmask containing the set members.
Definition: gphoto2-filesys.h:114
The height is set.
Definition: gphoto2-filesys.h:59
Hardware type.
Definition: gphoto2-filesys.h:163
CameraStorageType
Hardware storage types.
Definition: gphoto2-filesys.h:176
Definition: gphoto2-filesys.h:348
int gp_filesystem_count(CameraFilesystem *fs, const char *folder, GPContext *context)
Count files a folder of a filesystem.
Definition: gphoto2-filesys.c:1060
unsigned int height
Height of the preview.
Definition: gphoto2-filesys.h:120
CameraFilePermissions
Bitmask containing the file permission flags.
Definition: gphoto2-filesys.h:71
CameraFileInfoFields
Bitmask on what fields are set in the CameraFileInfo structure.
Definition: gphoto2-filesys.h:53
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.
Definition: gphoto2-filesys.c:1316
int gp_filesystem_free(CameraFilesystem *fs)
Free filesystem struct.
Definition: gphoto2-filesys.c:693
int gp_filesystem_append(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
Append a file to a folder in a filesystem.
Definition: gphoto2-filesys.c:721
File information of a regular file.
Definition: gphoto2-filesys.h:94
The width is set.
Definition: gphoto2-filesys.h:58
More verbose description.
Definition: gphoto2-filesys.h:161
Definition: gphoto2-filesys.h:84
Generic flat storage (all in 1 directory).
Definition: gphoto2-filesys.h:204
unsigned int height
Width of the file.
Definition: gphoto2-filesys.h:101
Generic tree hierarchy.
Definition: gphoto2-filesys.h:205
int get_info_func(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, void *data, GPContext *context)
Definition: template.c:342
Storage is Ready Only, but allows Delete.
Definition: gphoto2-filesys.h:193
unsigned long freekbytes
Free space in kbytes.
Definition: gphoto2-filesys.h:224
The status is set (downloaded).
Definition: gphoto2-filesys.h:61
CameraFileType
The type of view on the specified file.
Definition: gphoto2-file.h:66
struct _CameraFileInfoPreview CameraFileInfoPreview
File information of a preview file.
Storage information structue.
Definition: gphoto2-filesys.h:215
int gp_filesystem_list_files(CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context)
Get the list of files in a folder.
Definition: gphoto2-filesys.c:935
Definition: gphoto2-context.c:35
Write permissions.
Definition: gphoto2-filesys.h:74
CameraFileStatus status
Status of the preview file.
Definition: gphoto2-filesys.h:131
int gp_filesystem_get_folder(CameraFilesystem *fs, const char *filename, const char **folder, GPContext *context)
Search a folder that contains a given filename.
Definition: gphoto2-filesys.c:1494
A removable ROM storage.
Definition: gphoto2-filesys.h:179
int gp_filesystem_make_dir(CameraFilesystem *fs, const char *folder, const char *name, GPContext *context)
Create a subfolder within a folder.
Definition: gphoto2-filesys.c:1167
CameraFileStatus status
Status of the preview.
Definition: gphoto2-filesys.h:115
A fixed ROM storage.
Definition: gphoto2-filesys.h:178
struct _CameraFileInfo CameraFileInfo
File information structure.
int gp_filesystem_new(CameraFilesystem **fs)
Create a new filesystem struct.
Definition: gphoto2-filesys.c:660