1 /* fuji.h 2 * 3 * Copyright 2002 Lutz Mueller <lutz@users.sourceforge.net> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef __FUJI_H__ 22 #define __FUJI_H__ 23 24 #include <gphoto2/gphoto2-context.h> 25 #include <gphoto2/gphoto2-camera.h> 26 27 enum _FujiCmd { 28 FUJI_CMD_PIC_GET = 0x02, 29 FUJI_CMD_PIC_GET_THUMB = 0x00, 30 FUJI_CMD_SPEED = 0x07, 31 FUJI_CMD_VERSION = 0x09, 32 FUJI_CMD_PIC_NAME = 0x0a, 33 FUJI_CMD_PIC_COUNT = 0x0b, 34 35 FUJI_CMD_UNKNOWN1 = 0x0c, /* Figure this out! */ 36 37 FUJI_CMD_UPLOAD = 0x0e, 38 FUJI_CMD_UPLOAD_INIT = 0x0f, 39 40 FUJI_CMD_UNKNOWN4 = 0x11, /* Figure this out! */ 41 FUJI_CMD_UNKNOWN5 = 0x13, /* Figure this out! */ 42 43 FUJI_CMD_PIC_SIZE = 0x17, 44 FUJI_CMD_PIC_DEL = 0x19, 45 FUJI_CMD_AVAIL_MEM = 0x1b, 46 47 FUJI_CMD_UNKNOWN10 = 0x20, /* Figure this out! */ 48 FUJI_CMD_UNKNOWN11 = 0x22, /* Figure this out! */ 49 50 FUJI_CMD_TAKE = 0x27, 51 FUJI_CMD_MODEL = 0x29, 52 53 FUJI_CMD_UNKNOWN13 = 0x2a, /* Figure this out! */ 54 FUJI_CMD_UNKNOWN14 = 0x2b, /* Figure this out! */ 55 FUJI_CMD_UNKNOWN15 = 0x2e, /* Figure this out! */ 56 57 /* Flash related commands */ 58 FUJI_CMD_FLASH_GET = 0x30, 59 FUJI_CMD_FLASH_SET = 0x32, 60 FUJI_CMD_FLASH_CHARGE = 0x34, 61 62 FUJI_CMD_CMDS_VALID = 0x4c, 63 64 FUJI_CMD_UNKNOWN16 = 0x51, /* Figure this out! */ 65 66 FUJI_CMD_PREVIEW = 0x64, 67 68 /* Configurable settings */ 69 FUJI_CMD_ID_GET = 0x80, 70 FUJI_CMD_ID_SET = 0x82, 71 FUJI_CMD_DATE_GET = 0x84, 72 FUJI_CMD_DATE_SET = 0x86, 73 74 FUJI_CMD_UNKNOWN8 = 0xc0 /* Figure this out! */ 75 }; 76 typedef enum _FujiCmd FujiCmd; 77 78 int fuji_get_cmds (Camera *camera, unsigned char *cmds, GPContext *context); 79 80 int fuji_ping (Camera *, GPContext *context); 81 int fuji_pic_count (Camera *, unsigned int *n, GPContext *); 82 int fuji_version (Camera *, const char **version, GPContext *); 83 int fuji_model (Camera *, const char **model, GPContext *); 84 int fuji_avail_mem (Camera *, unsigned int *avail_mem, GPContext *); 85 86 int fuji_upload_init (Camera *, const char *name, GPContext *); 87 int fuji_upload (Camera *, const unsigned char *data, 88 unsigned int size, GPContext *context); 89 90 int fuji_id_get (Camera *camera, const char **id, GPContext *context); 91 int fuji_id_set (Camera *camera, const char *id, GPContext *context); 92 93 typedef struct _FujiDate FujiDate; 94 struct _FujiDate { 95 unsigned int year; 96 unsigned int month; 97 unsigned int day; 98 unsigned int hour; 99 unsigned int min; 100 unsigned int sec; 101 }; 102 103 int fuji_date_get (Camera *camera, FujiDate *date, GPContext *context); 104 int fuji_date_set (Camera *camera, FujiDate date, GPContext *context); 105 106 /* Operations on pictures */ 107 int fuji_pic_name (Camera *camera, unsigned int i, const char **name, 108 GPContext *context); 109 int fuji_pic_size (Camera *camera, unsigned int i, unsigned int *size, 110 GPContext *context); 111 int fuji_pic_del (Camera *camera, unsigned int i, GPContext *context); 112 int fuji_pic_get (Camera *camera, unsigned int i, unsigned char **data, 113 unsigned int *size, GPContext *context); 114 int fuji_pic_get_thumb (Camera *camera, unsigned int i, unsigned char **data, 115 unsigned int *size, GPContext *context); 116 117 enum _FujiSpeed { 118 FUJI_SPEED_9600 = 0, 119 FUJI_SPEED_19200 = 5, 120 FUJI_SPEED_38400 = 6, 121 FUJI_SPEED_57600 = 7, 122 FUJI_SPEED_115200 = 8 123 }; 124 typedef enum _FujiSpeed FujiSpeed; 125 126 int fuji_set_speed (Camera *camera, FujiSpeed speed, GPContext *context); 127 128 #endif /* __FUJI_H__ */ 129