added beginining of gphoto2 utility library for frontends
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@552 67ed7778-7388-44ab-90cf-0a291f65f57c
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
## Process this file with automake to generate a GNU Makefile
|
||||
|
||||
SUBDIRS = command-line
|
||||
SUBDIRS = command-line libgphoto2-util
|
||||
|
||||
@@ -7,4 +7,5 @@ CFLAGS = @CFLAGS@ -I$(top_srcdir)/include
|
||||
gphoto2_SOURCES = main.c main.h \
|
||||
interface.c interface.h
|
||||
|
||||
gphoto2_LDADD = ../../libgphoto2/libgphoto2.la
|
||||
gphoto2_LDADD = ../../libgphoto2/libgphoto2.la \
|
||||
../libgphoto2-util/libgphoto2-util.la
|
||||
|
||||
10
frontends/libgphoto2-util/Makefile.am
Normal file
10
frontends/libgphoto2-util/Makefile.am
Normal file
@@ -0,0 +1,10 @@
|
||||
lib_LTLIBRARIES = libgphoto2-util.la
|
||||
|
||||
CFLAGS= @CFLAGS@ \
|
||||
-Wall \
|
||||
-I$(top_srcdir)/include \
|
||||
-DCAMLIBS=\"$(pkglibdir)\"
|
||||
|
||||
libgphoto2-util_la_LDFLAGS = -version-info 0:0:0
|
||||
libgphoto2-util_la_SOURCES = \
|
||||
cache.c cache.h
|
||||
184
frontends/libgphoto2-util/cache.c
Normal file
184
frontends/libgphoto2-util/cache.c
Normal file
@@ -0,0 +1,184 @@
|
||||
#include <dirent.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <gphoto2.h>
|
||||
|
||||
#include "cache.h"
|
||||
|
||||
int cache_put (int camera_number, int folder_number, int file_number, CameraFile *file) {
|
||||
|
||||
FILE *fp;
|
||||
char buf[1024];
|
||||
|
||||
sprintf(buf, "%s/.gphoto/cache/%i-%i-%i.%i", getenv("HOME"),
|
||||
camera_number, folder_number, file_number, file->type);
|
||||
#ifdef DEBUG
|
||||
printf("cache: putting \"%s\"... ", buf);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
fp = fopen(buf, "w");
|
||||
fwrite(file->data, (size_t)sizeof(char), (size_t)file->size, fp);
|
||||
fclose(fp);
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("done!\n");
|
||||
#endif
|
||||
return (GP_OK);
|
||||
}
|
||||
|
||||
int cache_get (int camera_number, int folder_number, int file_number, CameraFile *file) {
|
||||
|
||||
FILE *fp;
|
||||
DIR *d;
|
||||
struct dirent *de;
|
||||
long int s;
|
||||
int camn, foldn, filen, filet;
|
||||
char buf[1024], cachedir[1024];
|
||||
|
||||
sprintf(cachedir, "%s/.gphoto/cache", getenv("HOME"));
|
||||
d = opendir(cachedir);
|
||||
#ifdef DEBUG
|
||||
printf("cache: getting (%i, %i, %i)... ",
|
||||
camera_number, folder_number, file_number);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
|
||||
do {
|
||||
camn = -1;
|
||||
foldn = -1;
|
||||
filen = -1;
|
||||
/* Read each entry */
|
||||
de = readdir(d);
|
||||
if (de) {
|
||||
sscanf(de->d_name, "%i-%i-%i.%i",
|
||||
&camn, &foldn, &filen, &filet);
|
||||
if ((camn == camera_number) &&
|
||||
(foldn == folder_number) &&
|
||||
(filen == file_number)) {
|
||||
sprintf(buf, "%s/%s", cachedir, de->d_name);
|
||||
#ifdef DEBUG
|
||||
printf("found! (%s)\n", de->d_name);
|
||||
#endif
|
||||
fp = fopen(buf, "w");
|
||||
fseek(fp, 0, SEEK_END);
|
||||
s = ftell(fp);
|
||||
rewind(fp);
|
||||
file->data = (char*)malloc(sizeof(char)*s);
|
||||
fread(file->data, (size_t)sizeof(char),
|
||||
(size_t)file->size, fp);
|
||||
fclose(fp);
|
||||
file->size = s;
|
||||
file->type = filet;
|
||||
return (GP_OK);
|
||||
}
|
||||
}
|
||||
} while (de);
|
||||
#ifdef DEBUG
|
||||
printf("error! didn't exist!\n");
|
||||
#endif
|
||||
return (GP_ERROR);
|
||||
}
|
||||
|
||||
int cache_delete (int camera_number, int folder_number, int file_number) {
|
||||
|
||||
/* if file_number == -1, all the files in the folder get deleted */
|
||||
/* if folder_number == -1, all the folders for camera get deleted */
|
||||
/* if camera_number == -1, ALL the camera's files get delete */
|
||||
|
||||
DIR *d;
|
||||
struct dirent *de;
|
||||
int camn, foldn, filen, filet;
|
||||
char buf[1024], cachedir[1024];
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("cache: Deleting (%i, %i, %i)...\n",
|
||||
camera_number, folder_number, file_number);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
sprintf(cachedir, "%s/.gphoto/cache", getenv("HOME"));
|
||||
d = opendir(cachedir);
|
||||
do {
|
||||
camn = -2;
|
||||
foldn = -2;
|
||||
filen = -2;
|
||||
/* Read each entry */
|
||||
de = readdir(d);
|
||||
if (de) {
|
||||
sscanf(de->d_name, "%i-%i-%i.%i",
|
||||
&camn, &foldn, &filen, &filet);
|
||||
if ((camn>=0)&&(foldn>=0)&&(filen>=0)) {
|
||||
sprintf(buf, "%s/%s", cachedir, de->d_name);
|
||||
if (((camn == camera_number) &&
|
||||
(foldn == folder_number) &&
|
||||
(filen == file_number))
|
||||
||
|
||||
((camn == camera_number) &&
|
||||
(foldn == folder_number) &&
|
||||
(file_number == -1))
|
||||
||
|
||||
((camn == camera_number) &&
|
||||
(folder_number == -1))
|
||||
||
|
||||
(camera_number == -1)) {
|
||||
#ifdef DEBUG
|
||||
printf("cache: Removing %s\n", buf);
|
||||
#endif
|
||||
unlink(buf);
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
printf("cache: Leaving %s\n", buf);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
} while (de);
|
||||
|
||||
return (GP_OK);
|
||||
}
|
||||
|
||||
int cache_exists (int camera_number, int folder_number, int file_number) {
|
||||
|
||||
DIR *d;
|
||||
struct dirent *de;
|
||||
int camn, foldn, filen, filet;
|
||||
char cachedir[1024];
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("cache: looking for (%i, %i, %i)... ",
|
||||
camera_number, folder_number, file_number);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
|
||||
sprintf(cachedir, "%s/.gphoto/cache", getenv("HOME"));
|
||||
d = opendir(cachedir);
|
||||
do {
|
||||
camn = -1;
|
||||
foldn = -1;
|
||||
filen = -1;
|
||||
/* Read each entry */
|
||||
de = readdir(d);
|
||||
if (de) {
|
||||
sscanf(de->d_name, "%i-%i-%i.%i",
|
||||
&camn, &foldn, &filen, &filet);
|
||||
if ((camn == camera_number) &&
|
||||
(foldn == folder_number) &&
|
||||
(filen == file_number)) {
|
||||
#ifdef DEBUG
|
||||
printf("found! (%s)\n", de->d_name);
|
||||
#endif
|
||||
return (GP_OK);
|
||||
}
|
||||
}
|
||||
} while (de);
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("missing!\n");
|
||||
#endif
|
||||
|
||||
return (GP_ERROR);
|
||||
}
|
||||
5
frontends/libgphoto2-util/cache.h
Normal file
5
frontends/libgphoto2-util/cache.h
Normal file
@@ -0,0 +1,5 @@
|
||||
int cache_put (int camera_number, int folder_number, int file_number, CameraFile *file);
|
||||
int cache_get (int camera_number, int folder_number, int file_number, CameraFile *file);
|
||||
int cache_exists (int camera_number, int folder_number, int file_number);
|
||||
int cache_delete (int camera_number, int folder_number, int file_number);
|
||||
|
||||
22
frontends/libgphoto2-util/image.c
Normal file
22
frontends/libgphoto2-util/image.c
Normal file
@@ -0,0 +1,22 @@
|
||||
int gp_file_image_rotate (CameraFile *old_file, CameraFile *new_file,
|
||||
int degrees) {
|
||||
|
||||
return(GP_OK);
|
||||
}
|
||||
|
||||
int gp_file_image_scale (CameraFile *old_file, CameraFile *new_file,
|
||||
int width, int height) {
|
||||
|
||||
return(GP_OK);
|
||||
}
|
||||
|
||||
int gp_file_image_flip_h (CameraFile *old_file, CameraFile *new_file) {
|
||||
|
||||
return(GP_OK);
|
||||
}
|
||||
|
||||
int gp_file_image_flip_v (CameraFile *old_file, CameraFile *new_file) {
|
||||
|
||||
return(GP_OK);
|
||||
}
|
||||
|
||||
6
frontends/libgphoto2-util/image.h
Normal file
6
frontends/libgphoto2-util/image.h
Normal file
@@ -0,0 +1,6 @@
|
||||
int gp_file_image_rotate (CameraFile *old_file, CameraFile *new_file,
|
||||
int degrees);
|
||||
int gp_file_image_scale (CameraFile *old_file, CameraFile *new_file,
|
||||
int new_width, int new_height);
|
||||
int gp_file_image_flip_h (CameraFile *old_file, CameraFile *new_file);
|
||||
int gp_file_image_flip_v (CameraFile *old_file, CameraFile *new_file);
|
||||
Reference in New Issue
Block a user