30 #ifndef __GPHOTO2_FILESYS_H__
31 #define __GPHOTO2_FILESYS_H__
241 const char *filename,
GPContext *context);
243 const char *folder,
const char *filename,
246 const char *folder,
const char *filename,
250 const char *filename,
GPContext *context);
257 int filenumber,
const char **filename,
262 const char *filename,
GPContext *context);
276 const char *filename,
281 const char *filename,
294 const char *filename,
300 const char *filename,
309 const char *filename,
316 uint64_t offset,
char *buf, uint64_t *size,
319 const char *filename,
GPContext *context);
324 const char *filename,
330 const char *folder,
void *
data,
334 const char *name,
void *
data,
339 int *nrofstorageinformations,
344 int *nrofstorageinformations,
Context callback operation functions.
Abstracted gphoto2 file operations.
CameraFileType
The type of view on the specified file.
int gp_filesystem_get_folder(CameraFilesystem *fs, const char *filename, char **folder, GPContext *context)
Search a folder that contains a given filename.
int gp_filesystem_free(CameraFilesystem *fs)
Free filesystem struct.
int(* CameraFilesystemDeleteFileFunc)(CameraFilesystem *fs, const char *folder, const char *filename, void *data, GPContext *context)
int gp_filesystem_dump(CameraFilesystem *fs)
Dump the current filesystem.
CameraFilePermissions
Bitmask containing the file permission flags.
@ GP_FILE_PERM_ALL
Internal.
@ GP_FILE_PERM_DELETE
Write permissions.
@ GP_FILE_PERM_READ
Read permissions.
@ GP_FILE_PERM_NONE
No permissions.
int gp_filesystem_new(CameraFilesystem **fs)
Create a new filesystem struct.
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_make_dir(CameraFilesystem *fs, const char *folder, const char *name, GPContext *context)
Create a subfolder within a folder.
int(* CameraFilesystemReadFileFunc)(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, uint64_t offset, char *buf, uint64_t *size, void *data, GPContext *context)
int gp_filesystem_delete_file(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
Delete a file from a folder.
int gp_filesystem_set_info_noop(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, GPContext *context)
Store the file information in the virtual fs.
struct _CameraFileInfo CameraFileInfo
File information structure.
int gp_filesystem_reset(CameraFilesystem *fs)
Clear the filesystem.
struct _CameraFileInfoAudio CameraFileInfoAudio
File information of an audio file.
struct _CameraFileInfoPreview CameraFileInfoPreview
File information of a preview file.
int gp_filesystem_delete_all(CameraFilesystem *fs, const char *folder, GPContext *context)
Delete all files in specified folder.
CameraFileInfoFields
Bitmask on what fields are set in the CameraFileInfo structure.
@ GP_FILE_INFO_WIDTH
The width is set.
@ GP_FILE_INFO_HEIGHT
The height is set.
@ GP_FILE_INFO_TYPE
The MIME type is set.
@ GP_FILE_INFO_STATUS
The status is set (downloaded).
@ GP_FILE_INFO_NONE
No fields set.
@ GP_FILE_INFO_ALL
All possible fields set. Internal.
@ GP_FILE_INFO_SIZE
The filesize is set.
@ GP_FILE_INFO_MTIME
The modification time is set.
@ GP_FILE_INFO_PERMISSIONS
The access permissions are set.
int gp_filesystem_set_funcs(CameraFilesystem *fs, CameraFilesystemFuncs *funcs, void *data)
Set all filesystem related function pointers.
int(* CameraFilesystemDeleteAllFunc)(CameraFilesystem *fs, const char *folder, void *data, GPContext *context)
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(* CameraFilesystemListFunc)(CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
int gp_filesystem_set_file_noop(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, GPContext *context)
Attach file content to a specified file.
int gp_filesystem_count(CameraFilesystem *fs, const char *folder, GPContext *context)
Count files a folder of a filesystem.
struct _CameraFileInfoFile CameraFileInfoFile
File information of a regular file.
int(* CameraFilesystemStorageInfoFunc)(CameraFilesystem *fs, CameraStorageInformation **, int *nrofstorageinformations, void *data, GPContext *context)
int gp_filesystem_get_storageinfo(CameraFilesystem *fs, CameraStorageInformation **, int *nrofstorageinformations, GPContext *context)
Get the storage information about this filesystem.
CameraFileStatus
Possible status values.
@ GP_FILE_STATUS_NOT_DOWNLOADED
@ GP_FILE_STATUS_DOWNLOADED
struct _CameraStorageInformation CameraStorageInformation
Storage information structue.
int(* CameraFilesystemGetFileFunc)(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, void *data, GPContext *context)
int gp_filesystem_list_files(CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context)
Get the list of files in a folder.
int(* CameraFilesystemDirFunc)(CameraFilesystem *fs, const char *folder, const char *name, void *data, GPContext *context)
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_append(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
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(* CameraFilesystemPutFileFunc)(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, void *data, GPContext *context)
CameraStorageType
Hardware storage types.
@ GP_STORAGEINFO_ST_FIXED_ROM
A fixed ROM storage.
@ GP_STORAGEINFO_ST_REMOVABLE_ROM
A removable ROM storage.
@ GP_STORAGEINFO_ST_UNKNOWN
Unknown storage type.
@ GP_STORAGEINFO_ST_FIXED_RAM
A fixed RAM storage. (e.g. SDRAM)
@ GP_STORAGEINFO_ST_REMOVABLE_RAM
A removable RAM storage. (any kind of cards etc)
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_put_file(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, GPContext *context)
Upload a file to a folder on the device filesystem.
int gp_filesystem_list_folders(CameraFilesystem *fs, const char *folder, CameraList *list, GPContext *context)
List all subfolders within a filesystem folder.
CameraStorageInfoFields
Storage information flags.
@ GP_STORAGEINFO_FREESPACEKBYTES
Free space in kbytes.
@ GP_STORAGEINFO_FILESYSTEMTYPE
Filesystem type.
@ GP_STORAGEINFO_MAXCAPACITY
Maximum capacity in kbytes.
@ GP_STORAGEINFO_ACCESS
Access permissions.
@ GP_STORAGEINFO_LABEL
Label of the filesystem. Could also be a DOS label.
@ GP_STORAGEINFO_FREESPACEIMAGES
Free space in images.
@ GP_STORAGEINFO_DESCRIPTION
More verbose description.
@ GP_STORAGEINFO_BASE
The base directory. Usually / if just 1 storage is attached.
@ GP_STORAGEINFO_STORAGETYPE
Hardware type.
CameraStorageFilesystemType
Filesystem hierarchy types.
@ GP_STORAGEINFO_FST_GENERICFLAT
Generic flat storage (all in 1 directory).
@ GP_STORAGEINFO_FST_GENERICHIERARCHICAL
Generic tree hierarchy.
@ GP_STORAGEINFO_FST_DCF
DCIM style storage.
@ GP_STORAGEINFO_FST_UNDEFINED
Undefined or unknown filesystem hierarchy.
int gp_filesystem_read_file(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, uint64_t offset, char *buf, uint64_t *size, GPContext *context)
Get partial file data from the filesystem.
int(* CameraFilesystemGetInfoFunc)(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, void *data, GPContext *context)
CameraStorageAccessType
Storage access modes.
@ GP_STORAGEINFO_AC_READONLY
Storage is Ready Only.
@ GP_STORAGEINFO_AC_READWRITE
Storage is Read / Write.
@ GP_STORAGEINFO_AC_READONLY_WITH_DELETE
Storage is Ready Only, but allows Delete.
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_number(CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
Get the index of a file in specified folder.
int(* CameraFilesystemSetInfoFunc)(CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, void *data, GPContext *context)
File information of an audio file.
CameraFileStatus status
Status of the preview file.
uint64_t size
Size of the audio file.
char type[64]
MIME type of the audio file.
CameraFileInfoFields fields
Bitmask containing the set members.
File information of a regular file.
CameraFileStatus status
Status of the file.
CameraFileInfoFields fields
Bitmask containing the set members.
CameraFilePermissions permissions
Permissions of the file.
uint64_t size
Size of the file.
char type[64]
MIME type of the file.
uint32_t width
Height of the file.
time_t mtime
Modification time of the file.
uint32_t height
Width of the file.
File information of a preview file.
CameraFileStatus status
Status of the preview.
uint32_t width
Width of the preview.
uint32_t height
Height of the preview.
char type[64]
MIME type of the preview.
CameraFileInfoFields fields
Bitmask containing the set members.
uint64_t size
Size of the preview.
File information structure.
CameraFileInfoPreview preview
CameraFileInfoAudio audio
CameraFilesystemListFunc file_list_func
CameraFilesystemStorageInfoFunc storage_info_func
CameraFilesystemListFunc folder_list_func
CameraFilesystemDirFunc remove_dir_func
CameraFilesystemGetInfoFunc get_info_func
CameraFilesystemGetFileFunc get_file_func
CameraFilesystemSetInfoFunc set_info_func
CameraFilesystemDeleteAllFunc delete_all_func
CameraFilesystemReadFileFunc read_file_func
CameraFilesystemDirFunc make_dir_func
CameraFilesystemPutFileFunc put_file_func
CameraFilesystemDeleteFileFunc del_file_func
The internal camera filesystem structure.