X-Git-Url: https://git.toastfreeware.priv.at/gregoa/zavai.git/blobdiff_plain/e4f1261a037dd7c30cfe4971ced9ade48d8e8b95..3082fc59cd1922135e9779af8a9ba4270feaffee:/src/config.vala?ds=sidebyside diff --git a/src/config.vala b/src/config.vala index f3de748..387546e 100644 --- a/src/config.vala +++ b/src/config.vala @@ -22,33 +22,115 @@ namespace zavai { 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"); } /*