-/** function type to register a changed callback */
-typedef void (*setting_changed_callback)(const std::string);
+// Global objects
+extern Settings *g_settings;
+extern std::string g_settings_path;
+
+// Type for a settings changed callback function
+typedef void (*SettingsChangedCallback)(const std::string &name, void *data);
+
+typedef std::vector<
+ std::pair<
+ SettingsChangedCallback,
+ void *
+ >
+> SettingsCallbackList;
+
+typedef std::map<std::string, SettingsCallbackList> SettingsCallbackMap;