libgphoto2 photo camera library (libgphoto2) API  2.4.11
gphoto2-file.c File Reference
#include "config.h"
#include <gphoto2/gphoto2-file.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
#include <utime.h>
#include <gphoto2/gphoto2-port-log.h>
#include <gphoto2/gphoto2-port-portability.h>
#include <gphoto2/gphoto2-result.h>

Data Structures

struct  _CameraFile
 

Macros

#define _POSIX_SOURCE
 
#define _BSD_SOURCE
 
#define CHECK_NULL(r)   {if (!(r)) return (GP_ERROR_BAD_PARAMETERS);}
 
#define CHECK_RESULT(result)   {int r = (result); if (r < 0) return (r);}
 
#define CHECK_MEM(m)   {if (!(m)) return (GP_ERROR_NO_MEMORY);}
 
#define MAX_PATH   256
 

Functions

int gp_file_new (CameraFile **file)
 
int gp_file_new_from_fd (CameraFile **file, int fd)
 
int gp_file_free (CameraFile *file)
 descruct a CameraFile object. More...
 
int gp_file_ref (CameraFile *file)
 Increase reference counter for CameraFile object. More...
 
int gp_file_unref (CameraFile *file)
 Decrease reference counter for CameraFile object. More...
 
int gp_file_append (CameraFile *file, const char *data, unsigned long int size)
 
int gp_file_slurp (CameraFile *file, char *data, size_t size, size_t *readlen)
 
int gp_file_set_data_and_size (CameraFile *file, char *data, unsigned long int size)
 
int gp_file_get_data_and_size (CameraFile *file, const char **data, unsigned long int *size)
 
int gp_file_save (CameraFile *file, const char *filename)
 
int gp_file_open (CameraFile *file, const char *filename)
 
int gp_file_clean (CameraFile *file)
 
int gp_file_copy (CameraFile *destination, CameraFile *source)
 
int gp_file_get_name (CameraFile *file, const char **name)
 
int gp_file_get_mime_type (CameraFile *file, const char **mime_type)
 
int gp_file_set_name (CameraFile *file, const char *name)
 
int gp_file_set_mime_type (CameraFile *file, const char *mime_type)
 
int gp_file_detect_mime_type (CameraFile *file)
 
int gp_file_adjust_name_for_mime_type (CameraFile *file)
 
int gp_file_set_type (CameraFile *file, CameraFileType type)
 
int gp_file_get_type (CameraFile *file, CameraFileType *type)
 
int gp_file_get_mtime (CameraFile *file, time_t *mtime)
 
int gp_file_set_mtime (CameraFile *file, time_t mtime)
 

Detailed Description

Author
Copyright 2000 Scott Fritzinger
Note
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.
This file contains internal functions. Use of these functions from external software modules is considered deprecated.

Function Documentation

int gp_file_adjust_name_for_mime_type ( CameraFile file)
Parameters
filea CameraFile
Returns
a gphoto2 error code.

References gp_log(), GP_LOG_DEBUG, and GP_OK.

Referenced by gp_filesystem_get_file().

int gp_file_append ( CameraFile file,
const char *  data,
unsigned long int  size 
)
Parameters
filea CameraFile
data
size
Returns
a gphoto2 error code.

References GP_ERROR, GP_ERROR_IO_WRITE, GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_log(), GP_LOG_ERROR, and GP_OK.

int gp_file_clean ( CameraFile file)
Parameters
filea CameraFile
Returns
a gphoto2 error code.

References GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, and GP_OK.

Referenced by gp_camera_capture_preview(), gp_camera_file_get(), gp_file_free(), and gp_file_open().

int gp_file_copy ( CameraFile destination,
CameraFile source 
)
int gp_file_detect_mime_type ( CameraFile file)
Parameters
filea CameraFile
Returns
a gphoto2 error code.

References GP_ERROR_IO_READ, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_file_set_mime_type(), and GP_OK.

int gp_file_free ( CameraFile file)

descruct a CameraFile object.

Parameters
filea CameraFile
Returns
a gphoto2 error code.

References GP_FILE_ACCESSTYPE_FD, gp_file_clean(), and GP_OK.

Referenced by gp_file_unref().

int gp_file_get_data_and_size ( CameraFile file,
const char **  data,
unsigned long int *  size 
)

Get a pointer to the data and the file's size.

Parameters
filea CameraFile
data
size
Returns
a gphoto2 error code.

Both data and size can be NULL and will then be ignored.

References GP_ERROR, GP_ERROR_IO, GP_ERROR_IO_READ, GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_log(), GP_LOG_ERROR, and GP_OK.

Referenced by gp_camera_file_get_info(), gp_filesystem_get_file(), and gp_filesystem_set_file_noop().

int gp_file_get_mime_type ( CameraFile file,
const char **  mime_type 
)
Parameters
filea CameraFile
mime_typea pointer to a MIME type string
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_camera_file_get_info().

int gp_file_get_mtime ( CameraFile file,
time_t *  mtime 
)
Parameters
filea CameraFile
mtime
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_set_file_noop().

int gp_file_get_name ( CameraFile file,
const char **  name 
)
Parameters
filea CameraFile
namea pointer to a name string
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_set_file_noop().

int gp_file_get_type ( CameraFile file,
CameraFileType type 
)
Parameters
filea CameraFile
typea CameraFileType
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_set_file_noop().

int gp_file_new ( CameraFile **  file)

Create new CameraFile object.

Parameters
filea pointer to a CameraFile
Returns
a gphoto2 error code.

References GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_MEMORY, GP_FILE_TYPE_NORMAL, and GP_OK.

Referenced by gp_camera_file_get_info(), and gp_filesystem_get_file().

int gp_file_new_from_fd ( CameraFile **  file,
int  fd 
)

Create new CameraFile object from a UNIX filedescriptor.

Parameters
filea pointer to a CameraFile
fda UNIX filedescriptor
Returns
a gphoto2 error code.

References GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_FD, GP_FILE_TYPE_NORMAL, and GP_OK.

int gp_file_open ( CameraFile file,
const char *  filename 
)
Parameters
filea CameraFile
filename
Returns
a gphoto2 error code.

References GP_ERROR, GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_file_clean(), gp_log(), GP_LOG_ERROR, and GP_OK.

int gp_file_ref ( CameraFile file)

Increase reference counter for CameraFile object.

Parameters
filea CameraFile
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_set_file_noop().

int gp_file_save ( CameraFile file,
const char *  filename 
)
Parameters
filea CameraFile
filename
Returns
a gphoto2 error code.

References GP_ERROR, GP_ERROR_IO, GP_ERROR_IO_READ, GP_ERROR_NO_MEMORY, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_log(), GP_LOG_ERROR, and GP_OK.

int gp_file_set_data_and_size ( CameraFile file,
char *  data,
unsigned long int  size 
)
Parameters
filea CameraFile
data
size
Returns
a gphoto2 error code.

References GP_ERROR, GP_ERROR_IO_WRITE, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_log(), GP_LOG_ERROR, and GP_OK.

Referenced by gp_filesystem_get_file().

int gp_file_set_mime_type ( CameraFile file,
const char *  mime_type 
)
Parameters
filea CameraFile
mime_typea MIME type string
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_file_detect_mime_type(), and gp_filesystem_get_file().

int gp_file_set_mtime ( CameraFile file,
time_t  mtime 
)
Parameters
filea CameraFile
mtime
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_set_file_noop().

int gp_file_set_name ( CameraFile file,
const char *  name 
)
Parameters
filea CameraFile
namea pointer to a MIME type string
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_get_file().

int gp_file_set_type ( CameraFile file,
CameraFileType  type 
)
Parameters
filea CameraFile
typea CameraFileType
Returns
a gphoto2 error code.

References GP_OK.

Referenced by gp_filesystem_get_file().

int gp_file_slurp ( CameraFile file,
char *  data,
size_t  size,
size_t *  readlen 
)
Parameters
filea CameraFile
data
size
Returns
a gphoto2 error code.

Internal.

References GP_ERROR, GP_ERROR_IO_READ, GP_FILE_ACCESSTYPE_FD, GP_FILE_ACCESSTYPE_MEMORY, gp_log(), GP_LOG_ERROR, and GP_OK.

int gp_file_unref ( CameraFile file)

Decrease reference counter for CameraFile object.

Parameters
filea CameraFile
Returns
a gphoto2 error code.

References gp_file_free(), and GP_OK.

Referenced by gp_camera_file_get_info(), gp_filesystem_get_file(), and gp_filesystem_set_file_noop().