/* * libosso.vapi * * Copyright (C) 2007 Instituto Nokia de Tecnologia * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Author: * Marcelo Lira dos Santos * * * ChangeLog: * * 2009-02-16: Jukka-Pekka Iivonen * * * Context.rpc_async_run: changed the async_cb type to RpcAsync?. * Context.rpc_async_run_with_defaults: same here * * * 2009-02-10: Jukka-Pekka Iivonen * * * Converted 'pointer' to 'void*'. * * * Changed the name of Osso.Error to Osso.Status. * * * Changed the type of 4th argument of Context.Context (). * * * Made all fields of HWState public. * * * Removed all argfill functions. * * * Initial code based on r78 from * * http://code.google.com/p/setanta-labs/source/browse/trunk/vala/osso/libosso.vala */ [CCode (cheader_filename = "libosso.h")] namespace Osso { [CCode (ref_function = "osso_initialize", unref_function = "osso_deinitialize", cname = "osso_context_t", cprefix = "osso_", cheader_filename = "libosso.h")] public class Context { [CCode (cname = "osso_initialize")] public Context (string application, string version, bool activation, GLib.MainContext? context); /* RPC */ public Status rpc_run (string service, string object_path, string iface, string method, out Rpc retval, int argument_type, ...); public Status rpc_run_system (string service, string object_path, string iface, string method, out Rpc retval, int argument_type, ...); public Status rpc_run_with_defaults (string application, string method, out Rpc retval, int argument_type, ...); public Status rpc_async_run (string service, string object_path, string iface, string method, RpcAsync? async_callback, void* data, int argument_type, ...); public Status rpc_async_run_with_defaults (string application, string method, RpcAsync? async_callback, void* data,int argument_type, ...); [CCode (cname = "osso_rpc_set_cb_f")] public Status set_rpc_callback (string service, string object_path, string iface, RpcCallback cb, void* data); [CCode (cname = "osso_rpc_set_default_cb_f")] public Status set_rpc_default_callback (RpcCallback cb, void* data); [CCode (cname = "osso_rpc_unset_cb_f")] public Status unset_rpc_callback (string service, string object_path, string iface, RpcCallback cb, void* data); [CCode (cname = "osso_rpc_unset_default_cb_f")] public Status unset_rpc_default_callback (RpcCallback cb, void* data); [CCode (cname = "osso_rpc_get_timeout")] public Status get_rpc_timeout (ref int timeout); [CCode (cname = "osso_rpc_set_timeout")] public Status set_rpc_timeout (int timeout); /* Application */ public Status application_top (string application, string arguments); [CCode (cname = "osso_application_set_top_callback")] public Status set_application_top_callback (ApplicationTopCallback cb, void* data); [CCode (cname = "osso_application_unset_top_callback")] public Status unset_application_top_callback (ApplicationTopCallback cb, void* data); [CCode (cname = "osso_application_set_autosave_callback")] public Status set_application_autosave_callback (ApplicationAutosaveCallback cb, void* data); [CCode (cname = "osso_application_unset_autosave_callback")] public Status unset_application_autosave_callback (ApplicationAutosaveCallback cb, void* data); public Status application_userdata_changed (); public Status application_autosave_force (); [CCode (cname = "osso_application_name_get")] public string get_application_name (); [CCode (cname = "osso_application_version_get")] public string get_application_version (); public Status statusbar_send_event (string name, int argument1, int argument2, string argument3, out Rpc retval); /* Time Notification */ [CCode (cname = "osso_time_set_notification_cb")] public Status set_time_notification_callback (TimeCallback cb, void* data); //[CCode (cname = "osso_time_set")] //public Status set_time (time_t new_time); /* Locale */ [CCode (cname = "osso_locale_change_set_notification_cb")] public Status set_locale_change_notification_callback (LocaleChangeCallback cb, void* data); [CCode (cname = "osso_locale_set")] public Status set_locale (string new_locale); /* System Note */ public Status system_note_dialog (string message, SystemNoteType type, out Rpc retval); public Status system_note_infoprint (string text, out Rpc retval); /* State Saving */ [CCode (cname = "osso_state_write")] public Status state_write (ref State state); [CCode (cname = "osso_state_read")] public Status state_read (ref State state); /* Plugin */ [CCode (cname = "osso_cp_plugin_execute")] public Status plugin_execute (string filename, void* data, bool user_activated); [CCode (cname = "osso_cp_plugin_execute")] public Status plugin_save (string filename, void* data); /* Device State */ public Status display_state_on (); public Status display_blanking_pause (); [CCode (cname = "osso_hw_set_event_cb")] public Status set_hw_event_callback (void* state, HWCallback cb, void* data); [CCode (cname = "osso_hw_unset_event_cb")] public Status unset_hw_event_callback (ref HWState state, void* data); [CCode (cname = "osso_hw_set_display_event_cb")] public Status set_hw_display_event_callback (DisplayEventCallback cb, void* data); /* Mime */ [CCode (cname = "osso_mime_set_cb")] public Status set_mime_callback (MimeCallback cb, void* data); [CCode (cname = "osso_mime_unset_cb")] public Status unset_mime_callback (); [CCode (cname = "osso_mime_unset_cb_full")] public Status unset_mime_callback_full (MimeCallback cb, void* data); /* DBus */ public void* get_dbus_connection (); public void* get_sys_dbus_connection (); } /* Callbacks */ [CCode (cname = "osso_rpc_cb_f", has_target = false)] public delegate int RpcCallback (string iface, string method, GLib.Array arguments, void* data, out Rpc rpc); [CCode (cname = "osso_rpc_async_f", has_target = false)] public delegate int RpcAsync (string iface, string method, out Rpc rpc, void* data); [CCode (cname = "osso_application_top_cb_f", has_target = false)] public delegate void ApplicationTopCallback (string arguments, void* data); [CCode (cname = "osso_application_autosave_cb_f", has_target = false)] public delegate void ApplicationAutosaveCallback (void* data); [CCode (cname = "osso_time_cb_f", has_target = false)] public delegate void TimeCallback (void* data); [CCode (cname = "osso_locale_change_cb_f", has_target = false)] public delegate void LocaleChangeCallback (string new_locale, void* data); [CCode (cname = "osso_display_event_cb_f", has_target = false)] public delegate void DisplayEventCallback (DisplayState state, void* data); [CCode (cname = "osso_hw_cb_f*", has_target = false)] public delegate void HWCallback (ref HWState state, void* data); [CCode (cname = "osso_mime_cb_f", has_target = false)] public delegate void MimeCallback (void* data, string[] args); /* Structs */ [CCode (cname = "osso_state_t")] public struct State { public uint32 state_size; public void* state_data; } [CCode (cname = "osso_hw_state_t")] public struct HWState { public bool shutdown_ind; public bool save_unsaved_data_ind; public bool memory_low_ind; public bool system_inactivity_ind; public DevMode sig_device_mode_ind; } [CCode (destroy_function = "osso_rpc_free_val", cname = "osso_rpc_t")] public struct Rpc { public int type; [CCode (cname = "value.u")] private uint32 u; [CCode (cname = "value.i")] private int32 i; [CCode (cname = "value.b")] private bool b; [CCode (cname = "value.d")] private double d; [CCode (cname = "value.s")] private string s; public uint32 to_uint32 () requires (type == 'u') { return u; } public int32 to_int32 () requires (type == 'i') { return i; } public bool to_bool () requires (type == 'b') { return b; } public double to_double () requires (type == 'd') { return d; } public unowned string to_string () requires (type == 's') { return s; } } /* Enums */ [CCode (cname = "osso_return_t", cprefix = "OSSO_")] public enum Status { OK, ERROR, INVALID, RPC_ERROR, ERROR_NAME, ERROR_NO_STATE, ERROR_STATE_SIZE } [CCode (cname = "osso_system_note_type_t", cprefix = "OSSO_GN_")] public enum SystemNoteType { WARNING, ERROR, NOTICE, WAIT } [CCode (cname = "osso_devmode_t", cprefix = "OSSO_DEVMODE_")] public enum DevMode { NORMAL, FLIGHT, OFFLINE, INVALID } [CCode (cname = "osso_display_state_t", cprefix = "OSSO_DISPLAY_")] public enum DisplayState { ON, OFF, DIMMED } [CCode (cprefix = "GDK_", has_type_id = false, cheader_filename = "gdk/gdkkeysyms.h")] public enum KeySym { Up, Down, Left, Right, [CCode (cname = "GDK_Return")] Select, [CCode (cname = "GDK_F6")] FullScreen, [CCode (cname = "GDK_F7")] ZoomIn, [CCode (cname = "GDK_F8")] ZoomOut, [CCode (cname = "GDK_Escape")] Close, [CCode (cname = "GDK_F4")] OpenMenu, [CCode (cname = "GDK_F5")] ShowHome, [CCode (cname = "GDK_Execute")] Power } }