#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>
Include dependency graph for gphoto2-camera.c:
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) |
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 | |||
) |
Sets some file properties like name or permissions.
camera | a Camera | |
folder | a folder | |
file | the name of a file | |
info | the CameraFileInfo | |
context | a GPContext |
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 | |||
) |
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 |