public class Config
{
- public string version { get; set; }
- public string homedir { get; set; }
- public string icondir { get; set; }
- public int min_button_height { get; set; }
- public string gprs_apn { get; set; }
- public string gprs_user { get; set; }
- public string gprs_pass { get; set; }
- public int backlight_max { get; set; }
+ protected Lua.LuaVM lua;
+ protected weak string get_string(string name)
+ {
+ lua.get_global(name);
+ weak string res = lua.to_string(-1);
+ lua.pop(1);
+ return res;
+ }
+ protected void set_string(string name, string? val)
+ {
+ if (val == null)
+ lua.push_nil();
+ else
+ lua.push_string(val);
+ lua.set_global(name);
+ }
+ protected weak int get_int(string name)
+ {
+ lua.get_global(name);
+ int res = lua.to_integer(-1);
+ lua.pop(1);
+ return res;
+ }
+ protected void set_int(string name, int val)
+ {
+ lua.push_integer(val);
+ lua.set_global(name);
+ }
+
+ public string version
+ {
+ get { return get_string("version"); }
+ set { set_string("version", value); }
+ }
+ public string homedir
+ {
+ get { return get_string("homedir"); }
+ set { set_string("homedir", value); }
+ }
+ public string icondir
+ {
+ get { return get_string("icondir"); }
+ set { set_string("icondir", value); }
+ }
+ public int min_button_height
+ {
+ get { return get_int("min_button_height"); }
+ set { set_int("min_button_height", value); }
+ }
+ public string gprs_apn
+ {
+ get { return get_string("gprs_apn"); }
+ set { set_string("gprs_apn", value); }
+ }
+ public string gprs_user
+ {
+ get { return get_string("gprs_user"); }
+ set { set_string("gprs_user", value); }
+ }
+ public string gprs_pass
+ {
+ get { return get_string("gprs_pass"); }
+ set { set_string("gprs_pass", value); }
+ }
+ public int backlight_max
+ {
+ get;
+ set;
+ }
private string _argv0;
public string argv0 {
- get { return _argv0; }
- set { _argv0 = value; }
+ get { return _argv0; }
+ set { _argv0 = value; }
}
public Config()
{
+ lua = new Lua.LuaVM();
+ lua.open_libs();
+
+stderr.printf("ZA1\n");
+
// Set defaults
version = "0.1";
+stderr.printf("ZA2\n");
homedir = GLib.Environment.get_home_dir() + "/.zavai";
+stderr.printf("ZA3\n");
icondir = GLib.Environment.get_variable("ZAVAI_ICONDIR");
+stderr.printf("ZA4\n");
if (icondir == null)
icondir = "/usr/share/zavai/icons";
+stderr.printf("ZA5\n");
min_button_height = 80;
+stderr.printf("ZA6\n");
gprs_apn = "general.t-mobile.uk";
+stderr.printf("ZA7\n");
gprs_user = "x";
+stderr.printf("ZA8\n");
gprs_pass = "x";
- backlight_max = 15;
+stderr.printf("ZA9\n");
+ backlight_max = 15;
+stderr.printf("ZA10\n");
+
+ // Read config
+ if (lua.do_file(homedir + "/config"))
+ {
+ zavai.log.error("Failed to parse " + homedir + "/config: " + lua.to_string(-1));
+ }
+stderr.printf("ZA11\n");
}
/*