2001-10-16 Lutz M�ller <urc8@rz.uni-karlsruhe.de>

* frontends/command-line/main.c: Use gp_camera_set_abilities.
        * include/gphoto2-camera.h:
        * libgphoto2/camera.c:Introduce gp_camera_[set,get]_abilities.


git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@2552 67ed7778-7388-44ab-90cf-0a291f65f57c
This commit is contained in:
Lutz Mueller
2001-10-16 17:30:13 +00:00
parent 70b2484ac4
commit 2ae7089818
4 changed files with 57 additions and 17 deletions

View File

@@ -1,3 +1,9 @@
2001-10-16 Lutz Müller <urc8@rz.uni-karlsruhe.de>
* frontends/command-line/main.c: Use gp_camera_set_abilities.
* include/gphoto2-camera.h:
* libgphoto2/camera.c:Introduce gp_camera_[set,get]_abilities.
2001-10-16 Lutz Müller <urc8@rz.uni-karlsruhe.de>
* libgphoto2/gphoto2-result.[c,h]: GP_ERROR_NOT_SUPPORTED now in

View File

@@ -837,11 +837,14 @@ OPTION_CALLBACK (about)
static int
set_globals (void)
{
CameraAbilities abilities;
/* takes all the settings and sets up the gphoto lib */
cli_debug_print ("Setting globals...");
CHECK_RESULT (gp_camera_new (&glob_camera));
CHECK_RESULT (gp_camera_set_model (glob_camera, glob_model));
CHECK_RESULT (gp_camera_abilities_by_name (glob_model, &abilities));
CHECK_RESULT (gp_camera_set_abilities (glob_camera, abilities));
if (strcmp (glob_model, "Directory Browse"))
CHECK_RESULT (gp_camera_set_port_path (glob_camera, glob_port));
CHECK_RESULT (gp_camera_set_port_speed (glob_camera, glob_speed));

View File

@@ -117,6 +117,11 @@ typedef void (* CameraStatusFunc) (Camera *, const char *status, void *data);
typedef void (* CameraProgressFunc) (Camera *, float percentage, void *data);
struct _Camera {
/*
* Don't use, use abilities->model instead. This entry will
* disappear at some point in the future.
*/
char model[128];
GPPortInfo *port_info;
@@ -148,11 +153,11 @@ struct _Camera {
/* Create a new camera device */
int gp_camera_new (Camera **camera);
int gp_camera_set_model (Camera *camera, const char *model);
int gp_camera_get_model (Camera *camera, const char **model);
int gp_camera_set_port_name (Camera *camera, const char *port_name);
int gp_camera_set_abilities (Camera *camera, CameraAbilities abilities);
int gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities);
int gp_camera_set_port_name (Camera *camera, const char *port_name);
int gp_camera_get_port_name (Camera *camera, const char **port_name);
int gp_camera_set_port_path (Camera *camera, const char *port_path);
int gp_camera_set_port_path (Camera *camera, const char *port_path);
int gp_camera_get_port_path (Camera *camera, const char **port_path);
/* Don't use */

View File

@@ -31,6 +31,7 @@
#include "gphoto2-library.h"
#include "gphoto2-debug.h"
#include "gphoto2-port-core.h"
#include "gphoto2-port-log.h"
#include <config.h>
#ifdef ENABLE_NLS
@@ -121,23 +122,57 @@ gp_camera_new (Camera **camera)
return(GP_OK);
}
/* DEPRECATED */
int gp_camera_set_model (Camera *, const char *);
int
gp_camera_set_model (Camera *camera, const char *model)
{
CameraAbilities abilities;
CHECK_NULL (camera && model);
gp_debug_printf (GP_DEBUG_LOW, "core", "Setting model to '%s'", model);
CHECK_RESULT (gp_camera_abilities_by_name (model, &abilities));
CHECK_RESULT (gp_camera_set_abilities (camera, abilities));
strncpy (camera->model, model, sizeof (camera->model));
return (GP_OK);
}
/* DEPRECATED */
int gp_camera_get_model (Camera *, const char **);
int
gp_camera_get_model (Camera *camera, const char **model)
{
CHECK_NULL (camera && model);
*model = camera->model;
*model = camera->abilities->model;
return (GP_OK);
}
int
gp_camera_set_abilities (Camera *camera, CameraAbilities abilities)
{
gp_log (GP_LOG_DEBUG, "gphoto2-camera", "Setting abilibites ('%s')...",
abilities.model);
CHECK_NULL (camera);
memcpy (camera->abilities, &abilities, sizeof (CameraAbilities));
//FIXME: Remove this. Up to now, some camera drivers still need it.
strcpy (camera->model, abilities.model);
return (GP_OK);
}
int
gp_camera_get_abilities (Camera *camera, CameraAbilities *abilities)
{
CHECK_NULL (camera && abilities);
memcpy (abilities, camera->abilities, sizeof (CameraAbilities));
return (GP_OK);
}
@@ -434,8 +469,8 @@ gp_camera_init (Camera *camera)
* If the port or the model hasn't been indicated, try to
* figure it out (USB only). Beware of "Directory Browse".
*/
if (strcmp (camera->model, "Directory Browse")) {
if (!camera->port || !strcmp ("", camera->model)) {
if (strcmp (camera->abilities->model, "Directory Browse")) {
if (!camera->port || !strcmp ("", camera->abilities->model)) {
/* Call auto-detect and choose the first camera */
CRS (camera, gp_autodetect (&list));
@@ -451,10 +486,6 @@ gp_camera_init (Camera *camera)
return (GP_ERROR_UNKNOWN_PORT);
}
/* Fill in camera abilities. */
CRS (camera, gp_camera_abilities_by_name (camera->model,
camera->abilities));
/* In case of USB, find the device */
switch (camera->port->type) {
case GP_PORT_USB:
@@ -466,11 +497,6 @@ gp_camera_init (Camera *camera)
break;
}
} else {
/* Fill in camera abilities. */
CRS (camera, gp_camera_abilities_by_name (camera->model,
camera->abilities));
}
/* Load the library. */