media: move picture function from dive.c to picture.c

Currently, move only those functions that do not access dive
structures.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-04-10 09:42:14 +02:00 committed by Dirk Hohndel
parent 34657f62ae
commit 3f3869ff65
19 changed files with 58 additions and 29 deletions

View file

@ -10,6 +10,7 @@
#include "core/errorhelper.h" #include "core/errorhelper.h"
#include "core/divefilter.h" #include "core/divefilter.h"
#include "core/divesite.h" #include "core/divesite.h"
#include "core/picture.h"
#include "exportfuncs.h" #include "exportfuncs.h"
#if !defined(SUBSURFACE_MOBILE) #if !defined(SUBSURFACE_MOBILE)

View file

@ -125,6 +125,8 @@ set(SUBSURFACE_CORE_LIB_SRCS
parse-xml.c parse-xml.c
parse.c parse.c
parse.h parse.h
picture.c
picture.h
planner.c planner.c
planner.h planner.h
plannernotes.c plannernotes.c

View file

@ -14,6 +14,7 @@
#include "qthelper.h" #include "qthelper.h"
#include "metadata.h" #include "metadata.h"
#include "membuffer.h" #include "membuffer.h"
#include "picture.h"
#include "tag.h" #include "tag.h"
#include "trip.h" #include "trip.h"
#include "structured_list.h" #include "structured_list.h"
@ -2697,14 +2698,6 @@ static void free_dc(struct divecomputer *dc)
free(dc); free(dc);
} }
void free_picture(struct picture *picture)
{
if (picture) {
free(picture->filename);
free(picture);
}
}
static int same_sample(struct sample *a, struct sample *b) static int same_sample(struct sample *a, struct sample *b)
{ {
if (a->time.seconds != b->time.seconds) if (a->time.seconds != b->time.seconds)
@ -3410,15 +3403,6 @@ void set_git_prefs(const char *prefs)
git_prefs.pp_graphs.po2 = 1; git_prefs.pp_graphs.po2 = 1;
} }
struct picture *alloc_picture()
{
struct picture *pic = malloc(sizeof(struct picture));
if (!pic)
exit(1);
memset(pic, 0, sizeof(struct picture));
return pic;
}
static bool new_picture_for_dive(struct dive *d, const char *filename) static bool new_picture_for_dive(struct dive *d, const char *filename)
{ {
FOR_EACH_PICTURE (d) { FOR_EACH_PICTURE (d) {

View file

@ -211,19 +211,9 @@ extern struct event *get_next_divemodechange(const struct event **evd, bool upda
extern enum divemode_t get_divemode_at_time(const struct divecomputer *dc, int dtime, const struct event **ev_dmc); extern enum divemode_t get_divemode_at_time(const struct divecomputer *dc, int dtime, const struct event **ev_dmc);
/* picture list and methods related to dive picture handling */ /* picture list and methods related to dive picture handling */
struct picture {
char *filename;
offset_t offset;
location_t location;
struct picture *next;
};
#define FOR_EACH_PICTURE(_dive) \ #define FOR_EACH_PICTURE(_dive) \
if (_dive) \ if (_dive) \
for (struct picture *picture = (_dive)->picture_list; picture; picture = picture->next) for (struct picture *picture = (_dive)->picture_list; picture; picture = picture->next)
extern struct picture *alloc_picture();
extern void free_picture(struct picture *picture);
extern void create_picture(const char *filename, int shift_time, bool match_all); extern void create_picture(const char *filename, int shift_time, bool match_all);
extern void dive_add_picture(struct dive *d, struct picture *newpic); extern void dive_add_picture(struct dive *d, struct picture *newpic);
extern bool dive_remove_picture(struct dive *d, const char *filename); extern bool dive_remove_picture(struct dive *d, const char *filename);

View file

@ -22,6 +22,7 @@
#include "device.h" #include "device.h"
#include "membuffer.h" #include "membuffer.h"
#include "git-access.h" #include "git-access.h"
#include "picture.h"
#include "qthelper.h" #include "qthelper.h"
#include "tag.h" #include "tag.h"

View file

@ -29,6 +29,7 @@
#include "trip.h" #include "trip.h"
#include "device.h" #include "device.h"
#include "membuffer.h" #include "membuffer.h"
#include "picture.h"
#include "qthelper.h" #include "qthelper.h"
#include "tag.h" #include "tag.h"

View file

@ -11,6 +11,7 @@
#include "errorhelper.h" #include "errorhelper.h"
#include "subsurface-string.h" #include "subsurface-string.h"
#include "parse.h" #include "parse.h"
#include "picture.h"
#include "trip.h" #include "trip.h"
#include "device.h" #include "device.h"
#include "gettext.h" #include "gettext.h"

21
core/picture.c Normal file
View file

@ -0,0 +1,21 @@
// SPDX-License-Identifier: GPL-2.0
#include "picture.h"
#include <stdlib.h>
#include <string.h>
struct picture *alloc_picture()
{
struct picture *pic = malloc(sizeof(struct picture));
if (!pic)
exit(1);
memset(pic, 0, sizeof(struct picture));
return pic;
}
void free_picture(struct picture *picture)
{
if (picture) {
free(picture->filename);
free(picture);
}
}

18
core/picture.h Normal file
View file

@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-2.0
#ifndef PICTURE_H
#define PICTURE_H
// picture (more precisely media) related strutures and functions
#include "units.h"
struct picture {
char *filename;
offset_t offset;
location_t location;
struct picture *next;
};
extern struct picture *alloc_picture();
extern void free_picture(struct picture *picture);
#endif // PICTURE_H

View file

@ -19,6 +19,7 @@
#include <sys/time.h> #include <sys/time.h>
#include "exif.h" #include "exif.h"
#include "file.h" #include "file.h"
#include "picture.h"
#include "tag.h" #include "tag.h"
#include "trip.h" #include "trip.h"
#include "imagedownloader.h" #include "imagedownloader.h"

View file

@ -25,6 +25,7 @@
#include "membuffer.h" #include "membuffer.h"
#include "git-access.h" #include "git-access.h"
#include "version.h" #include "version.h"
#include "picture.h"
#include "qthelper.h" #include "qthelper.h"
#include "gettext.h" #include "gettext.h"
#include "tag.h" #include "tag.h"

View file

@ -10,6 +10,7 @@
#include "divesite.h" #include "divesite.h"
#include "errorhelper.h" #include "errorhelper.h"
#include "file.h" #include "file.h"
#include "picture.h"
#include "tag.h" #include "tag.h"
#include "trip.h" #include "trip.h"
#include <stdio.h> #include <stdio.h>

View file

@ -20,6 +20,7 @@
#include "device.h" #include "device.h"
#include "file.h" #include "file.h"
#include "membuffer.h" #include "membuffer.h"
#include "picture.h"
#include "strndup.h" #include "strndup.h"
#include "git-access.h" #include "git-access.h"
#include "qthelper.h" #include "qthelper.h"

View file

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "findmovedimagesdialog.h" #include "findmovedimagesdialog.h"
#include "core/picture.h"
#include "core/qthelper.h" #include "core/qthelper.h"
#include "desktop-widgets/divelistview.h" // TODO: used for lastUsedImageDir() #include "desktop-widgets/divelistview.h" // TODO: used for lastUsedImageDir()
#include "qt-models/divepicturemodel.h" #include "qt-models/divepicturemodel.h"

View file

@ -62,6 +62,7 @@ SOURCES += ../../subsurface-mobile-main.cpp \
../../core/load-git.c \ ../../core/load-git.c \
../../core/parse-xml.c \ ../../core/parse-xml.c \
../../core/parse.c \ ../../core/parse.c \
../../core/picture.c \
../../core/import-suunto.c \ ../../core/import-suunto.c \
../../core/import-shearwater.c \ ../../core/import-shearwater.c \
../../core/import-cobalt.c \ ../../core/import-cobalt.c \
@ -201,6 +202,7 @@ HEADERS += \
../../core/statistics.h \ ../../core/statistics.h \
../../core/units.h \ ../../core/units.h \
../../core/version.h \ ../../core/version.h \
../../core/picture.h \
../../core/planner.h \ ../../core/planner.h \
../../core/divesite.h \ ../../core/divesite.h \
../../core/checkcloudconnection.h \ ../../core/checkcloudconnection.h \

View file

@ -3,6 +3,7 @@
#include "qt-models/diveplotdatamodel.h" #include "qt-models/diveplotdatamodel.h"
#include "core/subsurface-string.h" #include "core/subsurface-string.h"
#include "core/qthelper.h" #include "core/qthelper.h"
#include "core/picture.h"
#include "core/profile.h" #include "core/profile.h"
#include "core/settings/qPrefDisplay.h" #include "core/settings/qPrefDisplay.h"
#include "core/settings/qPrefTechnicalDetails.h" #include "core/settings/qPrefTechnicalDetails.h"

View file

@ -1,9 +1,9 @@
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "qt-models/divepicturemodel.h" #include "qt-models/divepicturemodel.h"
#include "core/dive.h"
#include "core/metrics.h" #include "core/metrics.h"
#include "core/divelist.h" #include "core/divelist.h" // for mark_divelist_changed()
#include "core/imagedownloader.h" #include "core/imagedownloader.h"
#include "core/picture.h"
#include "core/qthelper.h" #include "core/qthelper.h"
#include <QFileInfo> #include <QFileInfo>

View file

@ -10,6 +10,7 @@
#include "core/trip.h" #include "core/trip.h"
#include "core/qthelper.h" #include "core/qthelper.h"
#include "core/divesite.h" #include "core/divesite.h"
#include "core/picture.h"
#include "core/subsurface-string.h" #include "core/subsurface-string.h"
#include "core/tag.h" #include "core/tag.h"
#include "qt-models/divelocationmodel.h" // For the dive-site field ids #include "qt-models/divelocationmodel.h" // For the dive-site field ids

View file

@ -2,6 +2,7 @@
#include "testpicture.h" #include "testpicture.h"
#include "core/divesite.h" #include "core/divesite.h"
#include "core/errorhelper.h" #include "core/errorhelper.h"
#include "core/picture.h"
#include "core/trip.h" #include "core/trip.h"
#include "core/file.h" #include "core/file.h"
#include <QString> #include <QString>