r1026: Videoscope layout tweaks.
[cinelerra_cv/ct.git] / cinelerra / autoconf.C
bloba1750b3f9b3f823c50a1f111f58e925f57e0aac0
1 #include "autoconf.h"
2 #include "bchash.h"
3 #include "filexml.h"
6 static char *xml_titles[] = 
8         "SHOW_MUTE",
9         "SHOW_CAMERA_X",
10         "SHOW_CAMERA_Y",
11         "SHOW_CAMERA_Z",
12         "SHOW_PROJECTOR_X",
13         "SHOW_PROJECTOR_Y",
14         "SHOW_PROJECTOR_Z",
15         "SHOW_FADE",
16         "SHOW_PAN",
17         "SHOW_MODE",
18         "SHOW_MASK",
19         "SHOW_NUDGE"
22 static int auto_defaults[] = 
24         0,
25         0,
26         0,
27         0,
28         0,
29         0,
30         0,
31         1,
32         0,
33         0
36 int AutoConf::load_defaults(BC_Hash* defaults)
38         for(int i = 0; i < AUTOMATION_TOTAL; i++)
39         {
40                 autos[i] = defaults->get(xml_titles[i], auto_defaults[i]);
41         }
42         transitions = defaults->get("SHOW_TRANSITIONS", 1);
43         plugins = defaults->get("SHOW_PLUGINS", 1);
44         return 0;
47 void AutoConf::load_xml(FileXML *file)
49         for(int i = 0; i < AUTOMATION_TOTAL; i++)
50         {
51                 autos[i] = file->tag.get_property(xml_titles[i], auto_defaults[i]);
52         }
53         transitions = file->tag.get_property("SHOW_TRANSITIONS", 1);
54         plugins = file->tag.get_property("SHOW_PLUGINS", 1);
57 int AutoConf::save_defaults(BC_Hash* defaults)
59         for(int i = 0; i < AUTOMATION_TOTAL; i++)
60         {
61                 defaults->update(xml_titles[i], autos[i]);
62         }
63         defaults->update("SHOW_TRANSITIONS", transitions);
64         defaults->update("SHOW_PLUGINS", plugins);
65         return 0;
68 void AutoConf::save_xml(FileXML *file)
70         for(int i = 0; i < AUTOMATION_TOTAL; i++)
71         {
72                 file->tag.set_property(xml_titles[i], autos[i]);
73         }
74         file->tag.set_property("SHOW_TRANSITIONS", transitions);
75         file->tag.set_property("SHOW_PLUGINS", plugins);
78 int AutoConf::set_all(int value)
80         for(int i = 0; i < AUTOMATION_TOTAL; i++)
81         {
82                 autos[i] = value;
83         }
84         transitions = value;
85         plugins = value;
86         return 0;
89 AutoConf& AutoConf::operator=(AutoConf &that)
91         copy_from(&that);
92         return *this;
95 void AutoConf::copy_from(AutoConf *src)
97         for(int i = 0; i < AUTOMATION_TOTAL; i++)
98         {
99                 autos[i] = src->autos[i];
100         }
101         transitions = src->transitions;
102         plugins = src->plugins;