#include "config.h"
#include <gphoto2/gphoto2-camera.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <ltdl.h>
#include <gphoto2/gphoto2-result.h>
#include <gphoto2/gphoto2-library.h>
#include <gphoto2/gphoto2-port-log.h>
Data Structures | |
struct | _CameraPrivateCore |
Defines | |
#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 | CHECK_NULL(r) {if (!(r)) return (GP_ERROR_BAD_PARAMETERS);} |
#define | CAMERA_UNUSED(c, ctx) |
#define | CR(c, result, ctx) |
#define | CHECK_OPEN(c, ctx) |
#define | CHECK_CLOSE(c, ctx) |
#define | CRS(c, res, ctx) |
#define | CRSL(c, res, ctx, list) |
#define | CHECK_RESULT_OPEN_CLOSE(c, result, ctx) |
#define | CHECK_INIT(c, ctx) |
Functions | |
int | gp_camera_exit (Camera *camera, GPContext *context) |
int | gp_camera_new (Camera **camera) |
int | gp_camera_set_abilities (Camera *camera, CameraAbilities abilities) |
Sets the camera abilities. | |
int | gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities) |
int | gp_camera_get_port_info (Camera *camera, GPPortInfo *info) |
int | gp_camera_set_port_info (Camera *camera, GPPortInfo info) |
int | gp_camera_set_port_speed (Camera *camera, int speed) |
int | gp_camera_get_port_speed (Camera *camera) |
int | gp_camera_ref (Camera *camera) |
int | gp_camera_unref (Camera *camera) |
int | gp_camera_free (Camera *camera) |
int | gp_camera_init (Camera *camera, GPContext *context) |
int | gp_camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) |
int | gp_camera_set_config (Camera *camera, CameraWidget *window, GPContext *context) |
int | gp_camera_get_summary (Camera *camera, CameraText *summary, GPContext *context) |
int | gp_camera_get_manual (Camera *camera, CameraText *manual, GPContext *context) |
int | gp_camera_get_about (Camera *camera, CameraText *about, GPContext *context) |
int | gp_camera_capture (Camera *camera, CameraCaptureType type, CameraFilePath *path, GPContext *context) |
int | gp_camera_capture_preview (Camera *camera, CameraFile *file, GPContext *context) |
int | gp_camera_wait_for_event (Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context) |
int | gp_camera_folder_list_files (Camera *camera, const char *folder, CameraList *list, GPContext *context) |
int | gp_camera_folder_list_folders (Camera *camera, const char *folder, CameraList *list, GPContext *context) |
int | gp_camera_folder_delete_all (Camera *camera, const char *folder, GPContext *context) |
int | gp_camera_folder_put_file (Camera *camera, const char *folder, CameraFile *file, GPContext *context) |
int | gp_camera_file_get_info (Camera *camera, const char *folder, const char *file, CameraFileInfo *info, GPContext *context) |
int | gp_camera_file_set_info (Camera *camera, const char *folder, const char *file, CameraFileInfo info, GPContext *context) |
int | gp_camera_file_get (Camera *camera, const char *folder, const char *file, CameraFileType type, CameraFile *camera_file, GPContext *context) |
int | gp_camera_file_delete (Camera *camera, const char *folder, const char *file, GPContext *context) |
int | gp_camera_folder_make_dir (Camera *camera, const char *folder, const char *name, GPContext *context) |
int | gp_camera_folder_remove_dir (Camera *camera, const char *folder, const char *name, GPContext *context) |
int | gp_camera_get_storageinfo (Camera *camera, CameraStorageInformation **sifs, int *nrofsifs, GPContext *context) |
Gets information on the camera attached storage. | |
void | gp_camera_set_timeout_funcs (Camera *camera, CameraTimeoutStartFunc start_func, CameraTimeoutStopFunc stop_func, void *data) |
int | gp_camera_start_timeout (Camera *camera, unsigned int timeout, CameraTimeoutFunc func) |
void | gp_camera_stop_timeout (Camera *camera, unsigned int id) |
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.
#define CAMERA_UNUSED | ( | c, | |||
ctx | ) |
Value:
{ \ (c)->pc->used--; \ if (!(c)->pc->used) { \ if ((c)->pc->exit_requested) \ gp_camera_exit ((c), (ctx)); \ if (!(c)->pc->ref_count) \ gp_camera_free (c); \ } \ }
#define CHECK_CLOSE | ( | c, | |||
ctx | ) |
Value:
{ \ if ((c)->functions->post_func) { \ int r3 = (c)->functions->post_func (c,ctx); \ if (r3 < 0) { \ CAMERA_UNUSED (c,ctx); \ return (r3); \ } \ } \ }
#define CHECK_INIT | ( | c, | |||
ctx | ) |
Value:
{ \ if ((c)->pc->used) \ return (GP_ERROR_CAMERA_BUSY); \ (c)->pc->used++; \ if (!(c)->pc->lh) \ CR((c), gp_camera_init (c, ctx), ctx); \ }
#define CHECK_OPEN | ( | c, | |||
ctx | ) |
Value:
{ \ if ((c)->functions->pre_func) { \ int r2 = (c)->functions->pre_func (c,ctx); \ if (r2 < 0) { \ CAMERA_UNUSED (c,ctx); \ return (r2); \ } \ } \ }
#define CHECK_RESULT_OPEN_CLOSE | ( | c, | |||
result, | |||||
ctx | ) |
Value:
{ \ int r6; \ \ CHECK_OPEN (c,ctx); \ r6 = (result); \ if (r6 < 0) { \ CHECK_CLOSE (c,ctx); \ gp_log (GP_LOG_DEBUG, "gphoto2-camera", "Operation failed!");\ CAMERA_UNUSED (c,ctx); \ return (r6); \ } \ CHECK_CLOSE (c,ctx); \ }
#define CR | ( | c, | |||
result, | |||||
ctx | ) |
Value:
{ \ int r1 = (result); \ \ if (r1 < 0) { \ \ /* libgphoto2_port doesn't have a GPContext */ \ if (r1 > -100) \ gp_context_error ((ctx), _("An error occurred " \ "in the io-library ('%s'): %s"), \ gp_port_result_as_string (r1), \ (c) ? gp_port_get_error ((c)->port) : \ _("No additional information " \ "available.")); \ if (c) \ CAMERA_UNUSED((c),(ctx)); \ return (r1); \ } \ }
#define CRS | ( | c, | |||
res, | |||||
ctx | ) |
Value:
{ \ int r4 = (res); \ \ if (r4 < 0) { \ CAMERA_UNUSED (c,ctx); \ return (r4); \ } \ }
#define CRSL | ( | c, | |||
res, | |||||
ctx, | |||||
list | ) |
Value:
{ \ int r5 = (res); \ \ if (r5 < 0) { \ CAMERA_UNUSED (c,ctx); \ gp_list_free (list); \ return (r5); \ } \ }
int gp_camera_capture | ( | Camera * | camera, | |
CameraCaptureType | type, | |||
CameraFilePath * | path, | |||
GPContext * | context | |||
) |
Captures an image, movie, or sound clip depending on the given type
.
camera | a Camera | |
type | a CameraCaptureType | |
path | a CameraFilePath | |
context | a GPContext |
path
. The file can then be downloaded using gp_camera_file_get.
int gp_camera_capture_preview | ( | Camera * | camera, | |
CameraFile * | file, | |||
GPContext * | context | |||
) |
Captures a preview that won't be stored on the camera but returned in supplied file.
camera | a Camera | |
file | a CameraFile | |
context | a GPContext |
Close connection to camera.
It is recommended that you call this function when you currently don't need the camera. The camera will get reinitialized by gp_camera_init() automatically if you try to access the camera again.
int gp_camera_file_get | ( | Camera * | camera, | |
const char * | folder, | |||
const char * | file, | |||
CameraFileType | type, | |||
CameraFile * | camera_file, | |||
GPContext * | context | |||
) |
Retrieves a file from the Camera.
camera | a Camera | |
folder | a folder | |
file | the name of a file | |
type | the CameraFileType | |
camera_file | a CameraFile | |
context | a GPContext |
int gp_camera_file_get_info | ( | Camera * | camera, | |
const char * | folder, | |||
const char * | file, | |||
CameraFileInfo * | info, | |||
GPContext * | context | |||
) |
int gp_camera_file_set_info | ( | Camera * | camera, | |
const char * | folder, | |||
const char * | file, | |||
CameraFileInfo | info, | |||
GPContext * | context | |||
) |
int gp_camera_folder_list_files | ( | Camera * | camera, | |
const char * | folder, | |||
CameraList * | list, | |||
GPContext * | context | |||
) |
Lists the files in supplied folder
.
camera | a Camera | |
folder | a folder | |
list | a CameraList | |
context | a GPContext |
int gp_camera_folder_list_folders | ( | Camera * | camera, | |
const char * | folder, | |||
CameraList * | list, | |||
GPContext * | context | |||
) |
Lists the folders in supplied folder
.
camera | a Camera | |
folder | a folder | |
list | a CameraList | |
context | a GPContext |
int gp_camera_folder_put_file | ( | Camera * | camera, | |
const char * | folder, | |||
CameraFile * | file, | |||
GPContext * | context | |||
) |
Uploads a file into given folder
.
camera | a Camera | |
folder | a folder | |
file | a CameraFile | |
context | a GPContext |
int gp_camera_free | ( | Camera * | camera | ) |
Free the camera
.
camera | a Camera |
int gp_camera_get_abilities | ( | Camera * | camera, | |
CameraAbilities * | abilities | |||
) |
Retrieve the abilities
of the camera
.
camera | a Camera | |
abilities |
int gp_camera_get_about | ( | Camera * | camera, | |
CameraText * | about, | |||
GPContext * | context | |||
) |
Retrieves information about the camera driver.
camera | a Camera | |
about | a CameraText | |
context | a GPContext |
int gp_camera_get_config | ( | Camera * | camera, | |
CameraWidget ** | window, | |||
GPContext * | context | |||
) |
Retrieve a configuration window
for the camera
.
camera | a Camera | |
window | a CameraWidget | |
context | a GPContext |
window
can be used for construction of a configuration dialog.
int gp_camera_get_manual | ( | Camera * | camera, | |
CameraText * | manual, | |||
GPContext * | context | |||
) |
Retrieves the manual
for given camera
.
camera | a Camera | |
manual | a CameraText | |
context | a GPContext |
int gp_camera_get_port_speed | ( | Camera * | camera | ) |
Retrieve the current speed.
camera | a Camera |
int gp_camera_get_storageinfo | ( | Camera * | camera, | |
CameraStorageInformation ** | sifs, | |||
int * | nrofsifs, | |||
GPContext * | context | |||
) |
Gets information on the camera attached storage.
camera | a Camera | |
sifs | Pointer to receive a pointer to/array of storage info items | |
nrofsifs | Pointer to receive number of array entries | |
context | a GPContext |
The variable pointed to by nrofsifs will be set to the number of elements in that array.
It is the caller's responsibility to free the memory of the array.
int gp_camera_get_summary | ( | Camera * | camera, | |
CameraText * | summary, | |||
GPContext * | context | |||
) |
Retrieves a camera summary.
camera | a Camera | |
summary | a CameraText | |
context | a GPContext |
Initiate a connection to the camera
.
camera
should be set up using gp_camera_set_port_path or gp_camera_set_port_name and gp_camera_set_abilities. If that has been omitted, gphoto2 tries to autodetect any cameras and chooses the first one if any cameras are found. It is generally a good idea to call gp_camera_exit after transactions have been completed in order to give other applications the chance to access the camera, too.
int gp_camera_new | ( | Camera ** | camera | ) |
int gp_camera_ref | ( | Camera * | camera | ) |
int gp_camera_set_abilities | ( | Camera * | camera, | |
CameraAbilities | abilities | |||
) |
Sets the camera abilities.
camera | a Camera | |
abilities | the CameraAbilities to be set |
abilities
, you tell gphoto2 what model the camera
is and what camera driver should be used for accessing the camera
. You can get abilities
by calling gp_abilities_list_get_abilities.
int gp_camera_set_config | ( | Camera * | camera, | |
CameraWidget * | window, | |||
GPContext * | context | |||
) |
Sets the configuration.
camera | a Camera | |
window | a CameraWidget | |
context | a GPContext |
window
is retrieved using gp_camera_get_config and passed to this function in order to adjust the settings on the camera.
int gp_camera_set_port_speed | ( | Camera * | camera, | |
int | speed | |||
) |
Set the camera speed.
camera | a Camera | |
speed | the speed |
void gp_camera_set_timeout_funcs | ( | Camera * | camera, | |
CameraTimeoutStartFunc | start_func, | |||
CameraTimeoutStopFunc | stop_func, | |||
void * | data | |||
) |
camera | a Camera | |
start_func | ||
stop_func | ||
data |
int gp_camera_start_timeout | ( | Camera * | camera, | |
unsigned int | timeout, | |||
CameraTimeoutFunc | func | |||
) |
camera | a Camera | |
timeout | number of seconds that should pass between each call to func | |
func | the function that should be called each timeout seconds |
void gp_camera_stop_timeout | ( | Camera * | camera, | |
unsigned int | id | |||
) |
Stop periodic calls to keepalive function.
camera | a Camera | |
id | the id of the background process previously returned by gp_camera_start_timeout |
int gp_camera_unref | ( | Camera * | camera | ) |
int gp_camera_wait_for_event | ( | Camera * | camera, | |
int | timeout, | |||
CameraEventType * | eventtype, | |||
void ** | eventdata, | |||
GPContext * | context | |||
) |
Wait for an event from the camera.
camera | a Camera | |
timeout | amount of time to wait in 1/1000 seconds | |
eventtype | received CameraEventType [out] | |
eventdata | received event specific data [out] | |
context | a GPContext |