gphoto2-filesys.h File Reference

Filesystem related operations and declarations. More...

#include <time.h>
#include <gphoto2/gphoto2-context.h>
#include <gphoto2/gphoto2-list.h>
#include <gphoto2/gphoto2-file.h>

Include dependency graph for gphoto2-filesys.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _CameraFileInfoFile
 File information of a regular file. More...
struct  _CameraFileInfoPreview
 File information of a preview file. More...
struct  _CameraFileInfoAudio
 File information of an audio file. More...
struct  _CameraFileInfo
 File information structure. More...
struct  _CameraStorageInformation
 Storage information structue. More...
struct  _CameraFilesystemFuncs

Typedefs

typedef _CameraFileInfoFile CameraFileInfoFile
 File information of a regular file.
typedef _CameraFileInfoPreview CameraFileInfoPreview
 File information of a preview file.
typedef _CameraFileInfoAudio CameraFileInfoAudio
 File information of an audio file.
typedef _CameraFileInfo CameraFileInfo
 File information structure.
typedef _CameraStorageInformation CameraStorageInformation
 Storage information structue.
typedef _CameraFilesystem CameraFilesystem
 Filesystem structure, only exposed to camera drivers.
typedef int(*) CameraFilesystemListFunc (CameraFilesystem *fs, const char *folder, CameraList *list, void *data, GPContext *context)
typedef int(*) CameraFilesystemSetInfoFunc (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, void *data, GPContext *context)
typedef int(*) CameraFilesystemGetInfoFunc (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo *info, void *data, GPContext *context)
typedef int(*) CameraFilesystemGetFileFunc (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileType type, CameraFile *file, void *data, GPContext *context)
typedef int(*) CameraFilesystemDeleteFileFunc (CameraFilesystem *fs, const char *folder, const char *filename, void *data, GPContext *context)
typedef int(*) CameraFilesystemPutFileFunc (CameraFilesystem *fs, const char *folder, CameraFile *file, void *data, GPContext *context)
typedef int(*) CameraFilesystemDeleteAllFunc (CameraFilesystem *fs, const char *folder, void *data, GPContext *context)
typedef int(*) CameraFilesystemDirFunc (CameraFilesystem *fs, const char *folder, const char *name, void *data, GPContext *context)
typedef int(*) CameraFilesystemStorageInfoFunc (CameraFilesystem *fs, CameraStorageInformation **, int *nrofstorageinformations, void *data, GPContext *context)
typedef _CameraFilesystemFuncs CameraFilesystemFuncs

Enumerations

enum  CameraFileInfoFields {
  GP_FILE_INFO_NONE = 0, GP_FILE_INFO_TYPE = 1 << 0, GP_FILE_INFO_NAME = 1 << 1, GP_FILE_INFO_SIZE = 1 << 2,
  GP_FILE_INFO_WIDTH = 1 << 3, GP_FILE_INFO_HEIGHT = 1 << 4, GP_FILE_INFO_PERMISSIONS = 1 << 5, GP_FILE_INFO_STATUS = 1 << 6,
  GP_FILE_INFO_MTIME = 1 << 7, GP_FILE_INFO_ALL = 0xFF
}
 Bitmask on what fields are set in the CameraFileInfo structure. More...
enum  CameraFilePermissions { GP_FILE_PERM_NONE = 0, GP_FILE_PERM_READ = 1 << 0, GP_FILE_PERM_DELETE = 1 << 1, GP_FILE_PERM_ALL = 0xFF }
 Bitmask containing the file permission flags. More...
enum  CameraFileStatus { GP_FILE_STATUS_NOT_DOWNLOADED, GP_FILE_STATUS_DOWNLOADED }
 Possible status values. More...
enum  CameraStorageInfoFields {
  GP_STORAGEINFO_BASE = (1<<0), GP_STORAGEINFO_LABEL = (1<<1), GP_STORAGEINFO_DESCRIPTION = (1<<2), GP_STORAGEINFO_ACCESS = (1<<3),
  GP_STORAGEINFO_STORAGETYPE = (1<<4), GP_STORAGEINFO_FILESYSTEMTYPE = (1<<5), GP_STORAGEINFO_MAXCAPACITY = (1<<6), GP_STORAGEINFO_FREESPACEKBYTES = (1<<7),
  GP_STORAGEINFO_FREESPACEIMAGES = (1<<8)
}
 Storage information flags. More...
enum  CameraStorageType {
  GP_STORAGEINFO_ST_UNKNOWN = 0, GP_STORAGEINFO_ST_FIXED_ROM = 1, GP_STORAGEINFO_ST_REMOVABLE_ROM = 2, GP_STORAGEINFO_ST_FIXED_RAM = 3,
  GP_STORAGEINFO_ST_REMOVABLE_RAM = 4
}
 Hardware storage types. More...
enum  CameraStorageAccessType { GP_STORAGEINFO_AC_READWRITE = 0, GP_STORAGEINFO_AC_READONLY = 1, GP_STORAGEINFO_AC_READONLY_WITH_DELETE = 2 }
 Storage access modes. More...
enum  CameraStorageFilesystemType { GP_STORAGEINFO_FST_UNDEFINED = 0, GP_STORAGEINFO_FST_GENERICFLAT = 1, GP_STORAGEINFO_FST_GENERICHIERARCHICAL = 2, GP_STORAGEINFO_FST_DCF = 3 }
 Filesystem hierarchy types. More...

Functions

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_set_info_noop (CameraFilesystem *fs, const char *folder, CameraFileInfo info, GPContext *context)
 Store the file information in the virtual fs.
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_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_reset (CameraFilesystem *fs)
 Clear the filesystem.
int gp_filesystem_count (CameraFilesystem *fs, const char *folder, GPContext *context)
 Count files a folder of a 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_get_folder (CameraFilesystem *fs, const char *filename, const char **folder, GPContext *context)
 Search a folder that contains a given filename.
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_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_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_set_info_funcs (CameraFilesystem *fs, CameraFilesystemGetInfoFunc get_info_func, CameraFilesystemSetInfoFunc set_info_func, void *data)
 Set file information functions.
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_info (CameraFilesystem *fs, const char *folder, const char *filename, CameraFileInfo info, GPContext *context)
 Set information about a file.
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_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_delete_file (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context)
 Delete a file from a folder.
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_storageinfo (CameraFilesystem *fs, CameraStorageInformation **, int *nrofstorageinformations, GPContext *context)
 Get the storage information about this filesystem.
int gp_filesystem_set_funcs (CameraFilesystem *fs, CameraFilesystemFuncs *funcs, void *data)
 Set all filesystem related function pointers.
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_delete_all (CameraFilesystem *fs, const char *folder, GPContext *context)
 Delete all files in specified folder.
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_dump (CameraFilesystem *fs)
 Dump the current filesystem.


Detailed Description

Filesystem related operations and declarations.

Author:
Copyright 2000 Scott Fritzinger
Note:
Contributions: Lutz Müller <lutz@users.sf.net> (2001)

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


Typedef Documentation

typedef struct _CameraFileInfo CameraFileInfo

File information structure.

Contains the normal, preview and audio file information structures for a specific file.

typedef struct _CameraFileInfoAudio CameraFileInfoAudio

File information of an audio file.

Contains information of an audio file with fields being set depending on the bitmask in the fields member.

typedef struct _CameraFileInfoFile CameraFileInfoFile

File information of a regular file.

Contains information a regular file with fields being set depending on the bitmask in the fields member.

typedef struct _CameraFileInfoPreview CameraFileInfoPreview

File information of a preview file.

Contains information of a preview file with fields being set depending on the bitmask in the fields member.

typedef struct _CameraFilesystem CameraFilesystem

Filesystem structure, only exposed to camera drivers.

Internal structure, contents not exposed to frontends. Camera drivers get these passed to filesystem related functions and are supposed to use it only via the accessor functions.

typedef struct _CameraStorageInformation CameraStorageInformation

Storage information structue.

This structure contains the information of a specific camera storage. Only the members as specified by the fields member are valid.


Enumeration Type Documentation

enum CameraFileInfoFields

Bitmask on what fields are set in the CameraFileInfo structure.

Bitmask to mark up which fields are set in the CameraFileInfo structure. The other fields might be uninitialized. If you set information via gp_camera_file_set_info() you need to set those flags. If you retrieve information via gp_camera_file_get_info() you need to check those flags. They are seperate for both "normal" and "preview" parts and are mostly image related.

Enumerator:
GP_FILE_INFO_NONE  No fields set.
GP_FILE_INFO_TYPE  The MIME type is set.
GP_FILE_INFO_NAME  The name is set.
GP_FILE_INFO_SIZE  The filesize is set.
GP_FILE_INFO_WIDTH  The width is set.
GP_FILE_INFO_HEIGHT  The height is set.
GP_FILE_INFO_PERMISSIONS  The access permissions are set.
GP_FILE_INFO_STATUS  The status is set (downloaded).
GP_FILE_INFO_MTIME  The modification time is set.
GP_FILE_INFO_ALL  All possible fields set. Internal.

enum CameraFilePermissions

Bitmask containing the file permission flags.

Possible flag values of the permission entry in the file information.

Enumerator:
GP_FILE_PERM_NONE  No permissions.
GP_FILE_PERM_READ  Read permissions.
GP_FILE_PERM_DELETE  Write permissions.
GP_FILE_PERM_ALL  Internal.

enum CameraFileStatus

Possible status values.

Bitmask of possible stati. Currently only download is supported.

Enumerator:
GP_FILE_STATUS_NOT_DOWNLOADED  File is not downloaded.
GP_FILE_STATUS_DOWNLOADED  File is already downloaded.

enum CameraStorageAccessType

Storage access modes.

The modes we can access the storage with. Uses the same types and values as the PTP standard (PTP_AC_xxx).

Enumerator:
GP_STORAGEINFO_AC_READWRITE  Storage is Read / Write.
GP_STORAGEINFO_AC_READONLY  Storage is Ready Only.
GP_STORAGEINFO_AC_READONLY_WITH_DELETE  Storage is Ready Only, but allows Delete.

enum CameraStorageFilesystemType

Filesystem hierarchy types.

The type of the filesystem hierarchy the devices uses. Same types and values as the PTP standard defines (PTP_FST_xxx).

Enumerator:
GP_STORAGEINFO_FST_UNDEFINED  Undefined or unknown filesystem hierarchy.
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.

enum CameraStorageInfoFields

Storage information flags.

Bitmask to specify which entries of the filesystem storage information is set.

Enumerator:
GP_STORAGEINFO_BASE  The base directory. Usually / if just 1 storage is attached.
GP_STORAGEINFO_LABEL  Label of the filesystem. Could also be a DOS label.
GP_STORAGEINFO_DESCRIPTION  More verbose description.
GP_STORAGEINFO_ACCESS  Access permissions.
GP_STORAGEINFO_STORAGETYPE  Hardware type.
GP_STORAGEINFO_FILESYSTEMTYPE  Filesystem type.
GP_STORAGEINFO_MAXCAPACITY  Maximum capacity in kbytes.
GP_STORAGEINFO_FREESPACEKBYTES  Free space in kbytes.
GP_STORAGEINFO_FREESPACEIMAGES  Free space in images.

enum CameraStorageType

Hardware storage types.

Type of hardware this storage is on. The types and values are the same as the PTP standard uses (PTP_ST_xxx).

Enumerator:
GP_STORAGEINFO_ST_UNKNOWN  Unknown storage type.
GP_STORAGEINFO_ST_FIXED_ROM  A fixed ROM storage.
GP_STORAGEINFO_ST_REMOVABLE_ROM  A removable ROM storage.
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).


Function Documentation

int gp_filesystem_append ( CameraFilesystem fs,
const char *  folder,
const char *  filename,
GPContext context 
)

Append a file to a folder in a filesystem.

Parameters:
fs a CameraFilesystem
folder the folder where to put the file in
filename filename of the file
context a GPContext
Tells the fs that there is a file called filename in folder called folder. Usually camera drivers will call this function after capturing an image in order to tell the fs about the new file. A front-end should not use this function.

Returns:
a gphoto2 error code.

int gp_filesystem_count ( CameraFilesystem fs,
const char *  folder,
GPContext context 
)

Count files a folder of a filesystem.

Parameters:
fs a CameraFilesystem
folder a folder in which to count the files
context a GPContext
Counts the files in the folder.

Returns:
The number of files in the folder or a gphoto2 error code.

int gp_filesystem_delete_all ( CameraFilesystem fs,
const char *  folder,
GPContext context 
)

Delete all files in specified folder.

Parameters:
fs a CameraFilesystem
folder the folder in which to delete all files
context a GPContext
Deletes all files in the given folder from the fs. If the fs has not been supplied with a delete_all_func, it tries to delete the files one by one using the delete_file_func. If that function has not been supplied neither, an error is returned.

Returns:
a gphoto2 error code.

int gp_filesystem_delete_file ( CameraFilesystem fs,
const char *  folder,
const char *  filename,
GPContext context 
)

Delete a file from a folder.

Parameters:
fs a CameraFilesystem
folder a folder in which to delete the file
filename the name of the file to delete
context a GPContext
If a delete_file_func has been supplied to the fs, this function will be called and, if this function returns without error, the file will be removed from the fs.

Returns:
a gphoto2 error code.

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.

Parameters:
fs a CameraFilesystem
folder a folder in which to delete the file
filename the name of the file to delete
context a GPContext
Remove a file from the filesystem. Compared to gp_filesystem_delete_file() this just removes the file from the libgphoto2 view of the filesystem, but does not call the camera driver to delete it from the physical device.

Returns:
a gphoto2 error code.

int gp_filesystem_dump ( CameraFilesystem fs  ) 

Dump the current filesystem.

Parameters:
fs the CameraFilesystem
Returns:
a gphoto error code
Internal function to dump the current filesystem.

int gp_filesystem_free ( CameraFilesystem fs  ) 

Free filesystem struct.

Parameters:
fs a CameraFilesystem
Frees the CameraFilesystem

Returns:
a gphoto2 error code.

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.

Parameters:
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
Downloads the file called filename from the folder using the get_file_func if such a function has been previously supplied. If the file has been previously downloaded, the file is retrieved from cache. The result is stored in the passed file structure.

Returns:
a gphoto2 error code.

int gp_filesystem_get_folder ( CameraFilesystem fs,
const char *  filename,
const char **  folder,
GPContext context 
)

Search a folder that contains a given filename.

Parameters:
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
Searches a file called filename in the fs and returns the first occurrency. This functionality is needed for camera drivers that cannot figure out where a file gets created after capturing an image although the name of the image is known. Usually, those drivers will call gp_filesystem_reset in order to tell the fs that something has changed and then gp_filesystem_get_folder in order to find the file.

Note that you get a reference to the string stored in the filesystem structure, so do not free it yourself.

Returns:
a gphoto2 error code.

int gp_filesystem_get_info ( CameraFilesystem fs,
const char *  folder,
const char *  filename,
CameraFileInfo info,
GPContext context 
)

Get information about the specified file.

Parameters:
fs a CameraFilesystem
folder the folder that contains the file
filename the filename
info pointer to CameraFileInfo that receives the information
context a GPContext
Returns:
a gphoto2 error code.

int gp_filesystem_get_storageinfo ( CameraFilesystem fs,
CameraStorageInformation **  storageinfo,
int *  nrofstorageinfos,
GPContext context 
)

Get the storage information about this filesystem.

Parameters:
fs the filesystem
storageinfo pointer to receive the array of informations
nrofstorageinfos pointer to receive number of array entries
context a GPContext
Retrieves the storage information, like maximum and free space, for the specified filesystem, if supported by the device.

Returns:
a gphoto error code

int gp_filesystem_list_files ( CameraFilesystem fs,
const char *  folder,
CameraList list,
GPContext context 
)

Get the list of files in a folder.

Parameters:
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
Lists the files in folder using either cached values or (if there aren't any) the file_list_func which (hopefully) has been previously supplied.

Returns:
a gphoto2 error code.

int gp_filesystem_list_folders ( CameraFilesystem fs,
const char *  folder,
CameraList list,
GPContext context 
)

List all subfolders within a filesystem folder.

Parameters:
fs a CameraFilesystem
folder a folder
list a CameraList where subfolders should be listed
context a GPContext
Generates a list of subfolders of the supplied folder either using cached values (if there are any) or the folder_list_func if it has been supplied previously. If not, it is assumed that only a root folder exists (which is the case for many cameras).

Returns:
a gphoto2 error code.

int gp_filesystem_make_dir ( CameraFilesystem fs,
const char *  folder,
const char *  name,
GPContext context 
)

Create a subfolder within a folder.

Parameters:
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
Creates a new directory called name in given folder.

Returns:
a gphoto2 error code

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.

Parameters:
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
Looks up the filename of file with given filenumber in given folder. See gp_filesystem_number for exactly the opposite functionality.

Returns:
a gphoto2 error code.

int gp_filesystem_new ( CameraFilesystem **  fs  ) 

Create a new filesystem struct.

Parameters:
fs a pointer to a CameraFilesystem
Creates a new empty CameraFilesystem

Returns:
a gphoto2 error code.

int gp_filesystem_number ( CameraFilesystem fs,
const char *  folder,
const char *  filename,
GPContext context 
)

Get the index of a file in specified folder.

Parameters:
fs a CameraFilesystem
folder the folder where to look for file called filename
filename the file to look for
context a GPContext
Looks for a file called filename in the given folder. See gp_filesystem_name for exactly the opposite functionality.

Returns:
a gphoto2 error code.

int gp_filesystem_put_file ( CameraFilesystem fs,
const char *  folder,
CameraFile file,
GPContext context 
)

Upload a file to a folder on the device filesystem.

Parameters:
fs a CameraFilesystem
folder the folder where to put the file into
file the file
context a GPContext
Uploads a file to the camera if a put_file_func has been previously supplied to the fs. If the upload is successful, the file will get cached in the fs.

Returns:
a gphoto2 error code.

int gp_filesystem_remove_dir ( CameraFilesystem fs,
const char *  folder,
const char *  name,
GPContext context 
)

Remove a subfolder from within a folder.

Parameters:
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
Removes a directory called name from the given folder.

Returns:
a gphoto2 error code

int gp_filesystem_reset ( CameraFilesystem fs  ) 

Clear the filesystem.

Parameters:
fs the filesystem to be cleared
Resets the filesystem. All cached information including the folder tree will get lost and will be queried again on demand.

Returns:
a gphoto2 error code.

int gp_filesystem_set_file_funcs ( CameraFilesystem fs,
CameraFilesystemGetFileFunc  get_file_func,
CameraFilesystemDeleteFileFunc  del_file_func,
void *  data 
)

Set camera filesystem file related functions.

Parameters:
fs a CameraFilesystem
get_file_func the function downloading files
del_file_func the function deleting files
data private data structure
Tells the fs which functions to use for file download or file deletion. Typically, a camera driver would call this function on initialization. A function can be NULL indicating that this functionality is not supported. For example, if a camera does not support file deletion, you would supply NULL for del_file_func.

Returns:
a gphoto2 error code.

int gp_filesystem_set_file_noop ( CameraFilesystem fs,
const char *  folder,
CameraFile file,
GPContext context 
)

Attach file content to a specified file.

Parameters:
fs a CameraFilesystem
folder a folder in the filesystem
file a CameraFile
context,: a GPContext
Tells the fs about a file. Typically, camera drivers will call this function in case they get information about a file (i.e. preview) "for free" on gp_camera_capture() or gp_camera_folder_list_files().

Returns:
a gphoto2 error code.

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.

Parameters:
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
Tells the filesystem which functions to call for file upload, deletion of all files in a given folder, creation or removal of a folder. Typically, a camera driver would call this function on initialization. If one functionality is not supported, NULL can be supplied. If you don't call this function, the fs will assume that neither of these features is supported.

The fs will try to compensate missing delete_all_func functionality with the delete_file_func if such a function has been supplied.

Returns:
a gphoto2 error code.

int gp_filesystem_set_funcs ( CameraFilesystem fs,
CameraFilesystemFuncs *  funcs,
void *  data 
)

Set all filesystem related function pointers.

Parameters:
fs a CameraFilesystem
funcs pointer to a struct of filesystem functions
data private data
Tells the filesystem which functions to call for camera/filesystem specific functions, like listing, retrieving, uploading files and so on.

Returns:
a gphoto2 error code.

int gp_filesystem_set_info ( CameraFilesystem fs,
const char *  folder,
const char *  filename,
CameraFileInfo  info,
GPContext context 
)

Set information about a file.

Parameters:
fs a CameraFilesystem
folder foldername where the file resides
filename the files name
info the CameraFileInfo to set
context a GPContext
Sets information about a file in the camera.

Returns:
a gphoto2 error code.

int gp_filesystem_set_info_funcs ( CameraFilesystem fs,
CameraFilesystemGetInfoFunc  get_info_func,
CameraFilesystemSetInfoFunc  set_info_func,
void *  data 
)

Set file information functions.

Parameters:
fs a CameraFilesystem
get_info_func the function to retrieve file information
set_info_func the function to set file information
data private data
Tells the filesystem which functions to call when file information about a file should be retrieved or set. Typically, this function will get called by the camera driver on initialization.

Returns:
a gphoto2 error code.

int gp_filesystem_set_info_noop ( CameraFilesystem fs,
const char *  folder,
CameraFileInfo  info,
GPContext context 
)

Store the file information in the virtual fs.

Parameters:
fs a CameraFilesystem
folder the foldername
info the CameraFileInfo to store
context a GPContext
In contrast to gp_filesystem_set_info, gp_filesystem_set_info_noop will only change the file information in the fs. Typically, camera drivers will use this function in case they get file information "for free" on gp_camera_capture or gp_camera_folder_list_files.

Returns:
a gphoto2 error code

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.

Parameters:
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
Tells the fs which functions to use to retrieve listings of folders and/or files. Typically, a camera driver would call this function on initialization. Each function can be NULL indicating that this functionality is not supported. For example, many cameras don't support folders. In this case, you would supply NULL for folder_list_func. Then, the fs assumes that there is only a root folder.

Returns:
a gphoto2 error code.


Generated on Sun Jul 22 19:29:33 2007 for libgphoto2 photo camera library (libgphoto2) by  doxygen 1.5.0