38c3768615d5a6e730beea1dc7522f5150dbc05d
[framework/uifw/edbus.git] / src / lib / bluez / e_bluez_adapter.c
1 #include "e_bluez_private.h"
2
3 /**
4  * Register new agent for handling user requests.
5  *
6  * Call method RegisterAgent(object) on server in order to
7  * register new agent for handling user requests.
8  *
9  * @param element adapter's element
10  * @param object_path object to be registered.
11  * @param capability input/output agent capabilities
12  * @param cb function to call when server replies or some error happens.
13  * @param data data to give to cb when it is called.
14  *
15  * @return 1 on success, 0 otherwise.
16  */
17 bool
18 e_bluez_adapter_agent_register(E_Bluez_Element *element, const char *object_path, const char *capability, E_DBus_Method_Return_Cb cb, const void *data)
19 {
20    const char name[] = "RegisterAgent";
21
22    EINA_SAFETY_ON_NULL_RETURN_VAL(object_path, 0);
23
24    return e_bluez_element_call_with_path_and_string
25      (element, name, object_path, capability, NULL,
26       &element->_pending.agent_register, cb, data);
27 }
28
29 /**
30  * Unregister an existing agent.
31  *
32  * Call method UnregisterAgent(object) on server in order to
33  * unregister an existing agent.
34  *
35  * @param element adapter's element
36  * @param object_path agent to be unregistered.
37  * @param cb function to call when server replies or some error happens.
38  * @param data data to give to cb when it is called.
39  *
40  * @return 1 on success, 0 otherwise.
41  */
42 bool
43 e_bluez_adapter_agent_unregister(E_Bluez_Element *element, const char *object_path, E_DBus_Method_Return_Cb cb, const void *data)
44 {
45    const char name[] = "UnregisterAgent";
46
47    EINA_SAFETY_ON_NULL_RETURN_VAL(object_path, 0);
48
49    return e_bluez_element_call_with_path
50      (element, name, object_path, NULL,
51       &element->_pending.agent_unregister, cb, data);
52 }
53
54 /**
55  * Get property "Address" value.
56  *
57  * If this property isn't found then 0 is returned.
58  * If zero is returned, then this call failed and parameter-returned
59  * values shall be considered invalid.
60  *
61  * @param address where to store the property value, must be a pointer
62  *        to string (const char **), it will not be allocated or
63  *        copied and references will be valid until element changes,
64  *        so copy it if you want to use it later.
65  *
66  * @return 1 on success, 0 otherwise.
67  */
68 bool
69 e_bluez_adapter_address_get(E_Bluez_Element *element, const char **address)
70 {
71    EINA_SAFETY_ON_NULL_RETURN_VAL(address, 0);
72
73    return e_bluez_element_property_get_stringshared
74      (element, e_bluez_prop_address, NULL, address);
75 }
76
77 /**
78  * Get property "Powered" value.
79  *
80  * If this property isn't found then 0 is returned.
81  * If zero is returned, then this call failed and parameter-returned
82  * values shall be considered invalid.
83  *
84  * @param offline where to store the property value, must be a pointer
85  *        to booleans (bool *).
86  *
87  * @return 1 on success, 0 otherwise.
88  * @see e_connman_manager_offline_mode_set()
89  */
90 bool
91 e_bluez_adapter_powered_get(E_Bluez_Element *element, bool *powered)
92 {
93    EINA_SAFETY_ON_NULL_RETURN_VAL(element, 0);
94    EINA_SAFETY_ON_NULL_RETURN_VAL(powered, 0);
95
96    return e_bluez_element_property_get_stringshared
97      (element, e_bluez_prop_powered, NULL, powered);
98 }
99
100 /**
101  * Call method SetProperty("Powered", powered) at the given element on server.
102  *
103  *
104  * @param powered value to set.
105  * @param cb function to call when server replies or some error happens.
106  * @param data data to give to cb when it is called.
107  *
108  * @return 1 on success, 0 otherwise.
109  */
110 bool
111 e_bluez_adapter_powered_set(E_Bluez_Element *profile, bool offline, E_DBus_Method_Return_Cb cb, const void *data)
112 {
113    EINA_SAFETY_ON_NULL_RETURN_VAL(profile, 0);
114    return e_bluez_element_property_set_full
115      (profile, e_bluez_prop_powered, DBUS_TYPE_BOOLEAN,
116       &offline, cb, data);
117 }