1 /*
2 Private constructors and destructors
3 Copyright (C) 2007 by Andrew Zabolotny
4 */
5
6 #include "config.h"
7 #include "lensfun.h"
8 #include "lensfunprv.h"
9
lfCamera()10 lfCamera::lfCamera ()
11 {
12 Maker = NULL;
13 Model = NULL;
14 Variant = NULL;
15 Mount = NULL;
16 CropFactor = 0.0f;
17 }
18
~lfCamera()19 lfCamera::~lfCamera ()
20 {
21 lf_free (Maker);
22 lf_free (Model);
23 lf_free (Variant);
24 lf_free (Mount);
25 }
26
lfCamera(const lfCamera & other)27 lfCamera::lfCamera (const lfCamera &other)
28 {
29 Maker = lf_mlstr_dup (other.Maker);
30 Model = lf_mlstr_dup (other.Model);
31 Variant = lf_mlstr_dup (other.Variant);
32 Mount = g_strdup (other.Mount);
33 CropFactor = other.CropFactor;
34 }
35
operator =(const lfCamera & other)36 lfCamera &lfCamera::operator = (const lfCamera &other)
37 {
38 lf_free (Maker);
39 Maker = lf_mlstr_dup (other.Maker);
40 lf_free (Model);
41 Model = lf_mlstr_dup (other.Model);
42 lf_free (Variant);
43 Variant = lf_mlstr_dup (other.Variant);
44 _lf_setstr (&Mount, other.Mount);
45 CropFactor = other.CropFactor;
46 return *this;
47 }
48
SetMaker(const char * val,const char * lang)49 void lfCamera::SetMaker (const char *val, const char *lang)
50 {
51 Maker = lf_mlstr_add (Maker, lang, val);
52 }
53
SetModel(const char * val,const char * lang)54 void lfCamera::SetModel (const char *val, const char *lang)
55 {
56 Model = lf_mlstr_add (Model, lang, val);
57 }
58
SetVariant(const char * val,const char * lang)59 void lfCamera::SetVariant (const char *val, const char *lang)
60 {
61 Variant = lf_mlstr_add (Variant, lang, val);
62 }
63
SetMount(const char * val)64 void lfCamera::SetMount (const char *val)
65 {
66 _lf_setstr (&Mount, val);
67 }
68
Check()69 bool lfCamera::Check ()
70 {
71 if (!Maker || !Model || !Mount || CropFactor <= 0)
72 return false;
73
74 return true;
75 }
76
77 //---------------------------// The C interface //---------------------------//
78
lf_camera_new()79 lfCamera *lf_camera_new ()
80 {
81 return new lfCamera ();
82 }
83
lf_camera_create()84 lfCamera *lf_camera_create ()
85 {
86 return new lfCamera ();
87 }
88
lf_camera_destroy(lfCamera * camera)89 void lf_camera_destroy (lfCamera *camera)
90 {
91 delete camera;
92 }
93
lf_camera_copy(lfCamera * dest,const lfCamera * source)94 void lf_camera_copy (lfCamera *dest, const lfCamera *source)
95 {
96 *dest = *source;
97 }
98
lf_camera_check(lfCamera * camera)99 cbool lf_camera_check (lfCamera *camera)
100 {
101 return camera->Check ();
102 }
103