annotate libaudacious++/configdb.cxx @ 2293:10e07bc9a8c9 trunk

[svn] WTF addr? ITYM ptr!
author js
date Sun, 07 Jan 2007 14:14:14 -0800
parents 36d4043b3df2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2118
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
1 #include "configdb.hh"
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
2
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
3 using namespace Audacious;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
4
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
5 ConfValue::~ConfValue(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
6 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
7 // make sure we don't leak any string data
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
8 if (this->strval != NULL)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
9 g_free(this->strval);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
10 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
11
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
12 std::string ConfValue::asString(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
13 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
14 return this->strval;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
15 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
16
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
17 gint ConfValue::asInt(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
18 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
19 return this->intval;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
20 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
21
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
22 bool ConfValue::asBool(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
23 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
24 return this->boolval;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
25 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
26
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
27 gfloat ConfValue::asFloat(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
28 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
29 return this->floatval;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
30 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
31
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
32 gdouble ConfValue::asDouble(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
33 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
34 return this->dblval;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
35 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
36
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
37 // *************************************************************************
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
38
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
39 ConfigDB::ConfigDB(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
40 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
41 this->db = bmp_cfg_db_open();
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
42 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
43
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
44 ConfigDB::~ConfigDB(void)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
45 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
46 bmp_cfg_db_close(this->db);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
47 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
48
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
49 ConfValue *ConfigDB::GetValue(std::string &section, std::string &value, ConfigDB::ValueType type)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
50 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
51 ConfValue *val = new ConfValue;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
52
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
53 switch(type)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
54 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
55 case String:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
56 bmp_cfg_db_get_string(this->db, section.c_str(), value.c_str(), &val->strval);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
57 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
58
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
59 case Int:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
60 bmp_cfg_db_get_int(this->db, section.c_str(), value.c_str(), &val->intval);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
61 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
62
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
63 case Bool:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
64 gboolean tmp;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
65
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
66 bmp_cfg_db_get_bool(this->db, section.c_str(), value.c_str(), &tmp);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
67
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
68 if (tmp != 0)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
69 val->boolval = true;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
70 else
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
71 val->boolval = false;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
72
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
73 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
74
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
75 case Float:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
76 bmp_cfg_db_get_float(this->db, section.c_str(), value.c_str(), &val->floatval);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
77 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
78
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
79 case Double:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
80 bmp_cfg_db_get_double(this->db, section.c_str(), value.c_str(), &val->dblval);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
81 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
82
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
83 default:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
84 g_warning("Unknown value passed to Audacious::ConfigDB::GetValue!");
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
85 break;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
86 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
87
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
88 return val;
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
89 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
90
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
91 void ConfigDB::SetValue(std::string &section, std::string &name, std::string &value)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
92 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
93 // XXX bmp_cfg_db_set_string should be const char
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
94 // because it's not, we have to do this:
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
95
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
96 gchar *foo = g_strdup(value.c_str());
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
97
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
98 bmp_cfg_db_set_string(this->db, section.c_str(), name.c_str(), foo);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
99
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
100 g_free(foo);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
101 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
102
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
103 void ConfigDB::SetValue(std::string &section, std::string &name, gint value)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
104 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
105 bmp_cfg_db_set_int(this->db, section.c_str(), name.c_str(), value);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
106 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
107
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
108 void ConfigDB::SetValue(std::string &section, std::string &name, bool value)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
109 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
110 bmp_cfg_db_set_bool(this->db, section.c_str(), name.c_str(), value);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
111 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
112
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
113 void ConfigDB::SetValue(std::string &section, std::string &name, gfloat value)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
114 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
115 bmp_cfg_db_set_float(this->db, section.c_str(), name.c_str(), value);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
116 }
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
117
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
118 void ConfigDB::SetValue(std::string &section, std::string &name, gdouble value)
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
119 {
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
120 bmp_cfg_db_set_double(this->db, section.c_str(), name.c_str(), value);
36d4043b3df2 [svn] - add the starting point of some audacious C++ bindings
nenolod
parents:
diff changeset
121 }