2001-10-19 Lutz M�ller <urc8@rz.uni-karlsruhe.de>
* camlibs/kodak/dc240: Use camera->fs - this should fix file deletion
that I broke earlier.
* camlibs/kodak/dc3200: Use camera->fs. Don't use
gp_port_[new,free,open,close]. Declare some functions static in
order to fix compile warnings.
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@2616 67ed7778-7388-44ab-90cf-0a291f65f57c
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2001-10-19 Lutz Müller <urc8@rz.uni-karlsruhe.de>
|
||||
|
||||
* camlibs/kodak/dc240: Use camera->fs - this should fix file deletion
|
||||
that I broke earlier.
|
||||
* camlibs/kodak/dc3200: Use camera->fs. Don't use
|
||||
gp_port_[new,free,open,close]. Declare some functions static in
|
||||
order to fix compile warnings.
|
||||
|
||||
2001-10-18 Lutz Müller <urc8@rz.uni-karlsruhe.de>
|
||||
|
||||
* frontends/command-line/main.c: Port to gp_log
|
||||
|
||||
@@ -85,23 +85,29 @@ camera_exit (Camera *camera)
|
||||
}
|
||||
|
||||
static int
|
||||
camera_folder_list_folders (Camera *camera, const char *folder,
|
||||
CameraList *list)
|
||||
folder_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
|
||||
void *data)
|
||||
{
|
||||
Camera *camera = data;
|
||||
|
||||
return (dc240_get_folders (camera, list, folder));
|
||||
}
|
||||
|
||||
static int
|
||||
camera_folder_list_files (Camera *camera, const char *folder,
|
||||
CameraList *list)
|
||||
file_list_func (CameraFilesystem *fs, const char *folder, CameraList *list,
|
||||
void *data)
|
||||
{
|
||||
Camera *camera = data;
|
||||
|
||||
return (dc240_get_filenames (camera, list, folder));
|
||||
}
|
||||
|
||||
static int
|
||||
camera_file_get (Camera *camera, const char *folder, const char *filename,
|
||||
CameraFileType type, CameraFile *file)
|
||||
get_file_func (CameraFilesystem *fs, const char *folder, const char *filename,
|
||||
CameraFileType type, CameraFile *file, void *data)
|
||||
{
|
||||
Camera *camera = data;
|
||||
|
||||
switch (type) {
|
||||
case GP_FILE_TYPE_NORMAL:
|
||||
return (dc240_file_action (camera, DC240_ACTION_IMAGE, file,
|
||||
@@ -115,15 +121,22 @@ camera_file_get (Camera *camera, const char *folder, const char *filename,
|
||||
}
|
||||
|
||||
static int
|
||||
camera_file_delete (Camera *camera, const char *folder, const char *filename)
|
||||
delete_file_func (CameraFilesystem *fs, const char *folder,
|
||||
const char *filename, void *data)
|
||||
{
|
||||
Camera *camera = data;
|
||||
|
||||
return (dc240_file_action (camera, DC240_ACTION_DELETE, NULL, folder,
|
||||
filename));
|
||||
}
|
||||
|
||||
static int
|
||||
camera_capture (Camera *camera, int capture_type, CameraFilePath *path)
|
||||
camera_capture (Camera *camera, CameraCaptureType type,
|
||||
CameraFilePath *path)
|
||||
{
|
||||
if (type != GP_CAPTURE_IMAGE)
|
||||
return (GP_ERROR_NOT_SUPPORTED);
|
||||
|
||||
return dc240_capture(camera, path);
|
||||
}
|
||||
|
||||
@@ -159,24 +172,26 @@ int
|
||||
camera_init (Camera *camera)
|
||||
{
|
||||
int ret;
|
||||
gp_port_settings settings;
|
||||
GPPortSettings settings;
|
||||
|
||||
/* First, set up all the function pointers */
|
||||
camera->functions->exit = camera_exit;
|
||||
#warning This library is broken. Please use camera->fs!
|
||||
camera->functions->folder_list_folders = camera_folder_list_folders;
|
||||
camera->functions->folder_list_files = camera_folder_list_files;
|
||||
camera->functions->file_get = camera_file_get;
|
||||
#warning Deletion only using camera->fs! Please change!
|
||||
// camera->functions->file_delete = camera_file_delete;
|
||||
camera->functions->capture = camera_capture;
|
||||
camera->functions->summary = camera_summary;
|
||||
camera->functions->manual = camera_manual;
|
||||
camera->functions->about = camera_about;
|
||||
|
||||
/* Set up the CameraFilesystem */
|
||||
gp_filesystem_set_list_funcs (camera->fs, file_list_func,
|
||||
folder_list_func, camera);
|
||||
gp_filesystem_set_file_funcs (camera->fs, get_file_func,
|
||||
delete_file_func, camera);
|
||||
|
||||
ret = gp_port_settings_get (camera->port, &settings);
|
||||
if (ret < 0)
|
||||
return (ret);
|
||||
switch (camera->port->type) {
|
||||
case GP_PORT_SERIAL:
|
||||
strcpy(settings.serial.port, camera->port_info->path);
|
||||
settings.serial.speed = 9600;
|
||||
settings.serial.bits = 8;
|
||||
settings.serial.parity = 0;
|
||||
|
||||
@@ -57,33 +57,33 @@ int camera_abilities (CameraAbilitiesList *list)
|
||||
|
||||
int init(Camera *camera)
|
||||
{
|
||||
gp_port_settings settings;
|
||||
GPPortSettings settings;
|
||||
DC3200Data *dd = camera->camlib_data;
|
||||
int ret;
|
||||
|
||||
ret = gp_port_settings_get (camera->port, &settings);
|
||||
if (ret < 0)
|
||||
return (ret);
|
||||
|
||||
strcpy(settings.serial.port, camera->port_info->path);
|
||||
settings.serial.speed = 9600;
|
||||
settings.serial.bits = 8;
|
||||
settings.serial.parity = 0;
|
||||
settings.serial.stopbits = 1;
|
||||
|
||||
/* set up the port */
|
||||
if (gp_port_settings_set(dd->dev, settings) == GP_ERROR)
|
||||
return GP_ERROR;
|
||||
ret = gp_port_settings_set (camera->port, settings);
|
||||
if (ret < 0)
|
||||
return (ret);
|
||||
|
||||
/* open the port */
|
||||
if (gp_port_open(dd->dev) == GP_ERROR)
|
||||
return GP_ERROR;
|
||||
|
||||
gp_port_timeout_set(dd->dev, TIMEOUT);
|
||||
gp_port_timeout_set (camera->port, TIMEOUT);
|
||||
|
||||
if (dc3200_set_speed(dd, camera->port_info->speed) == GP_ERROR)
|
||||
return GP_ERROR;
|
||||
|
||||
settings.serial.speed = camera->port_info->speed;
|
||||
|
||||
/* set the new speed */
|
||||
if (gp_port_settings_set(dd->dev, settings) == GP_ERROR)
|
||||
return GP_ERROR;
|
||||
settings.serial.speed = camera->port_info->speed;
|
||||
ret = gp_port_settings_set (camera->port, settings);
|
||||
if (ret < 0)
|
||||
return (ret);
|
||||
|
||||
/* Wait for it to update */
|
||||
sleep(1);
|
||||
@@ -99,18 +99,13 @@ int init(Camera *camera)
|
||||
return GP_OK;
|
||||
}
|
||||
|
||||
int camera_exit (Camera *camera)
|
||||
static int camera_exit (Camera *camera)
|
||||
{
|
||||
DC3200Data *dd = camera->camlib_data;
|
||||
if (!dd)
|
||||
return (GP_OK);
|
||||
|
||||
gp_filesystem_free(dd->fs);
|
||||
|
||||
if (dd->dev) {
|
||||
if (gp_port_close(dd->dev) == GP_ERROR)
|
||||
{ /* camera did a bad, bad thing */ }
|
||||
gp_port_free(dd->dev);
|
||||
if (dd) {
|
||||
free (dd);
|
||||
camera->camlib_data = NULL;
|
||||
}
|
||||
|
||||
return (GP_OK);
|
||||
@@ -132,9 +127,10 @@ int check_last_use(Camera *camera)
|
||||
return GP_OK;
|
||||
}
|
||||
|
||||
int camera_folder_list_folders (Camera *camera, const char *folder,
|
||||
CameraList *list)
|
||||
static int folder_list_func (CameraFilesystem *fs, const char *folder,
|
||||
CameraList *list, void *user_data)
|
||||
{
|
||||
Camera *camera = user_data;
|
||||
DC3200Data *dd = camera->camlib_data;
|
||||
u_char *data = NULL;
|
||||
long data_len = 0;
|
||||
@@ -202,9 +198,10 @@ int camera_folder_list_folders (Camera *camera, const char *folder,
|
||||
return (dc3200_keep_alive (dd));
|
||||
}
|
||||
|
||||
int camera_folder_list_files (Camera *camera, const char *folder,
|
||||
CameraList *list)
|
||||
static int file_list_func (CameraFilesystem *fs, const char *folder,
|
||||
CameraList *list, void *user_data)
|
||||
{
|
||||
Camera *camera = user_data;
|
||||
DC3200Data *dd = camera->camlib_data;
|
||||
u_char *data = NULL;
|
||||
long data_len = 0;
|
||||
@@ -267,9 +264,11 @@ int camera_folder_list_files (Camera *camera, const char *folder,
|
||||
return (dc3200_keep_alive(dd));
|
||||
}
|
||||
|
||||
int camera_file_get (Camera *camera, const char *folder, const char *filename,
|
||||
CameraFileType type, CameraFile *file)
|
||||
static int get_file_func (CameraFilesystem *fs, const char *folder,
|
||||
const char *filename, CameraFileType type,
|
||||
CameraFile *file, void *user_data)
|
||||
{
|
||||
Camera *camera = user_data;
|
||||
DC3200Data *dd = camera->camlib_data;
|
||||
u_char *data = NULL;
|
||||
long data_len = 0;
|
||||
@@ -302,13 +301,7 @@ int camera_file_get (Camera *camera, const char *folder, const char *filename,
|
||||
return (dc3200_keep_alive(dd));
|
||||
}
|
||||
|
||||
int camera_summary (Camera *camera, CameraText *summary)
|
||||
{
|
||||
strcpy(summary->text, _("No summary information yet"));
|
||||
return (GP_OK);
|
||||
}
|
||||
|
||||
int camera_manual (Camera *camera, CameraText *manual)
|
||||
static int camera_manual (Camera *camera, CameraText *manual)
|
||||
{
|
||||
strcpy (manual->text,
|
||||
_("Known problems:\n"
|
||||
@@ -325,7 +318,7 @@ int camera_manual (Camera *camera, CameraText *manual)
|
||||
return (GP_OK);
|
||||
}
|
||||
|
||||
int camera_about (Camera *camera, CameraText *about)
|
||||
static int camera_about (Camera *camera, CameraText *about)
|
||||
{
|
||||
strcpy (about->text,
|
||||
_("Kodak DC3200 Driver\n"
|
||||
@@ -335,7 +328,7 @@ int camera_about (Camera *camera, CameraText *about)
|
||||
return (GP_OK);
|
||||
}
|
||||
|
||||
const char* camera_result_as_string (Camera *camera, int result)
|
||||
static const char* camera_result_as_string (Camera *camera, int result)
|
||||
{
|
||||
if (result >= 0) return (_("This is not an error..."));
|
||||
if (-result < 100) return gp_result_as_string (result);
|
||||
@@ -345,44 +338,33 @@ const char* camera_result_as_string (Camera *camera, int result)
|
||||
int camera_init (Camera *camera)
|
||||
{
|
||||
DC3200Data *dd;
|
||||
int ret;
|
||||
|
||||
if (!camera)
|
||||
return (GP_ERROR);
|
||||
int ret;
|
||||
|
||||
dd = (DC3200Data*)malloc(sizeof(DC3200Data));
|
||||
if (!dd)
|
||||
return (GP_ERROR);
|
||||
return (GP_ERROR_NO_MEMORY);
|
||||
dd->camera = camera;
|
||||
dd->dev = camera->port;
|
||||
camera->camlib_data = dd;
|
||||
|
||||
/* First, set up all the function pointers */
|
||||
camera->functions->exit = camera_exit;
|
||||
camera->functions->folder_list_folders = camera_folder_list_folders;
|
||||
camera->functions->folder_list_files = camera_folder_list_files;
|
||||
camera->functions->file_get = camera_file_get;
|
||||
camera->functions->summary = camera_summary;
|
||||
camera->functions->manual = camera_manual;
|
||||
camera->functions->about = camera_about;
|
||||
camera->functions->result_as_string = camera_result_as_string;
|
||||
|
||||
/* Set up the CameraFilesystem */
|
||||
gp_filesystem_set_list_funcs (camera->fs, file_list_func,
|
||||
folder_list_func, camera);
|
||||
gp_filesystem_set_file_funcs (camera->fs, get_file_func, NULL, camera);
|
||||
|
||||
if ((ret = gp_port_new(&(dd->dev), GP_PORT_SERIAL)) < 0) {
|
||||
/* initialize the camera */
|
||||
ret = init (camera);
|
||||
if (ret < 0) {
|
||||
free(dd);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
camera->camlib_data = dd;
|
||||
|
||||
/* initialize the camera */
|
||||
if (init(camera) == GP_ERROR) {
|
||||
gp_port_close(dd->dev);
|
||||
gp_port_free(dd->dev);
|
||||
free(dd);
|
||||
return (GP_ERROR);
|
||||
}
|
||||
|
||||
/* Everything went OK. Save the data*/
|
||||
gp_filesystem_new(&dd->fs);
|
||||
|
||||
return (dc3200_keep_alive(dd));
|
||||
}
|
||||
|
||||
|
||||
@@ -27,9 +27,7 @@
|
||||
|
||||
typedef struct {
|
||||
gp_port *dev;
|
||||
gp_port_settings settings;
|
||||
Camera *camera;
|
||||
CameraFilesystem *fs;
|
||||
int pkt_seqnum; /* sequence number */
|
||||
int cmd_seqnum; /* command seqnum */
|
||||
int debug;
|
||||
|
||||
Reference in New Issue
Block a user