summaryrefslogtreecommitdiff
path: root/Tizen.Network.WiFiDirect/Interop/Interop.WiFiDirect.cs
blob: 3f687986da82b6c814dea93f02b6a7c2a93cc9cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/*
 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using System;
using Tizen.Network.WiFiDirect;
using System.Runtime.InteropServices;

/// <summary>
/// Interop class for Wi-Fi Direct
/// </summary>
internal static partial class Interop
{
    /// <summary>
    /// Wi-Fi Direct Native Apis
    /// </summary>
    internal static partial class WiFiDirect
    {
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void DiscoveryStateChangedCallback(int result, WiFiDirectDiscoveryState state, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void PeerFoundCallback(int result, WiFiDirectDiscoveryState state, string address, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void DeviceStateChangedCallback(int result, WiFiDirectDeviceState state, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void ConnectionStateChangedCallback(int result, WiFiDirectConnectionState state, string address, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void ClientIpAddressAssignedCallback(string macAddress, string ipAddress, string interfaceAddress, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void ServiceStateChangedCallback(int result, WiFiDirectServiceDiscoveryState state, WiFiDirectServiceType type, IntPtr responseData, string address, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void StateChangedCallback(WiFiDirectState state, IntPtr userData);

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool DiscoveredPeerCallback(ref DiscoveredPeerStruct peer, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool ConnectedPeerCallback(ref ConnectedPeerStruct peer, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool WpsTypeCallback(WiFiDirectWpsType type, IntPtr userData);
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool PersistentGroupCallback(string address, string ssid, IntPtr userData);

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_state_changed_cb")]
        internal static extern int SetStateChangedCallback(StateChangedCallback stateChangedCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_state_changed_cb")]
        internal static extern int UnsetStateChangedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_device_state_changed_cb")]
        internal static extern int SetDeviceStateChangedCallback(DeviceStateChangedCallback deviceChangedCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_device_state_changed_cb")]
        internal static extern int UnsetDeviceStateChangedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_discovery_state_changed_cb")]
        internal static extern int SetDiscoveryStateChangedCallback(DiscoveryStateChangedCallback discoveryStateChangedCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_discovery_state_changed_cb")]
        internal static extern int UnsetDiscoveryStateChangedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_peer_found_cb")]
        internal static extern int SetPeerFoundCallback(PeerFoundCallback peerFoundCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_peer_found_cb")]
        internal static extern int UnsetPeerFoundCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_connection_state_changed_cb")]
        internal static extern int SetConnectionChangedCallback(ConnectionStateChangedCallback connectionCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_connection_state_changed_cb")]
        internal static extern int UnsetConnectionChangedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_client_ip_address_assigned_cb")]
        internal static extern int SetIpAddressAssignedCallback(ClientIpAddressAssignedCallback callback, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_client_ip_address_assigned_cb")]
        internal static extern int UnsetIpAddressAssignedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_service_state_changed_cb")]
        internal static extern int SetServiceStateChangedCallback(ServiceStateChangedCallback serviceStateChangedCb, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_unset_service_state_changed_cb")]
        internal static extern int UnsetServiceStateChangedCallback();

        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_initialize")]
        internal static extern int Initialize();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_deinitialize")]
        internal static extern int Deinitialize();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_activate")]
        internal static extern int Activate();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_deactivate")]
        internal static extern int Deactivate();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_start_discovery_specific_channel")]
        internal static extern int StartDiscoveryInChannel(bool listenOnly, int timeout, WiFiDirectDiscoveryChannel channel);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_cancel_discovery")]
        internal static extern int StopDiscovery();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_foreach_discovered_peers")]
        internal static extern int GetDiscoveredPeers(DiscoveredPeerCallback callback, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_connect")]
        internal static extern int Connect(string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_cancel_connection")]
        internal static extern int CancelConnection(string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_disconnect_all")]
        internal static extern int DisconnectAll();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_disconnect")]
        internal static extern int Disconnect(string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_foreach_connected_peers")]
        internal static extern int GetConnectedPeers(ConnectedPeerCallback callback, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_create_group")]
        internal static extern int CreateGroup();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_destroy_group")]
        internal static extern int DestroyGroup();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_group_owner")]
        internal static extern int IsGroupOwner(out bool isGroupOwner);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_autonomous_group")]
        internal static extern int IsAutonomousGroup(out bool isAutonomous);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_device_name")]
        internal static extern int SetName(string name);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_device_name")]
        internal static extern int GetName(out string name);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_ssid")]
        internal static extern int GetSsid(out string ssid);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_network_interface_name")]
        internal static extern int GetInterfaceName(out string name);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_ip_address")]
        internal static extern int GetIpAddress(out string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_subnet_mask")]
        internal static extern int GetSubnetMask(out string mask);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_gateway_address")]
        internal static extern int GetGatewayAddress(out string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_mac_address")]
        internal static extern int GetMacAddress(out string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_state")]
        internal static extern int GetState(out WiFiDirectState state);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_discoverable")]
        internal static extern int IsDiscoverable(out bool isDiscoverable);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_listening_only")]
        internal static extern int IsListeningOnly(out bool listenOnly);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_primary_device_type")]
        internal static extern int GetPrimaryType(out WiFiDirectPrimaryDeviceType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_secondary_device_type")]
        internal static extern int GetSecondaryType(out WiFiDirectSecondaryDeviceType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_activate_pushbutton")]
        internal static extern int ActivatePushButton();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_wps_pin")]
        internal static extern int SetWpsPin(string pin);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_wps_pin")]
        internal static extern int GetWpsPin(out string pin);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_supported_wps_mode")]
        internal static extern int GetWpsMode(out int mode);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_foreach_supported_wps_types")]
        internal static extern int GetWpsTypes(WpsTypeCallback callback, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_local_wps_type")]
        internal static extern int GetLocalWpsType(out WiFiDirectWpsType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_req_wps_type")]
        internal static extern int SetReqWpsType(WiFiDirectWpsType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_req_wps_type")]
        internal static extern int GetReqWpsType(out WiFiDirectWpsType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_group_owner_intent")]
        internal static extern int SetIntent(int intent);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_group_owner_intent")]
        internal static extern int GetIntent(out int intent);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_max_clients")]
        internal static extern int SetMaxClients(int max);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_max_clients")]
        internal static extern int GetMaxClients(out int max);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_passphrase")]
        internal static extern int SetPassPhrase(string passphrase);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_passphrase")]
        internal static extern int GetPassPhrase(out string passphrase);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_operating_channel")]
        internal static extern int GetChannel(out int channel);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_autoconnection_mode")]
        internal static extern int SetAutoConnectionMode(bool mode);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_autoconnection_mode")]
        internal static extern int GetAutoConnectionMode(out bool mode);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_autoconnection_peer")]
        internal static extern int SetAutoConnectionPeer(string address);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_persistent_group_enabled")]
        internal static extern int SetPersistentGroupState(bool enabled);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_is_persistent_group_enabled")]
        internal static extern int GetPersistentGroupState(out bool enabled);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_foreach_persistent_groups")]
        internal static extern int GetPersistentGroups(PersistentGroupCallback callback, IntPtr userData);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_remove_persistent_group")]
        internal static extern int RemovePersistentGroup(string address, string ssid);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_start_service_discovery")]
        internal static extern int StartServiceDiscovery(string address, WiFiDirectServiceType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_cancel_service_discovery")]
        internal static extern int StopServiceDiscovery(string address, WiFiDirectServiceType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_register_service")]
        internal static extern int RegisterService(WiFiDirectServiceType type, string info1, string info2, out uint serviceId);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_deregister_service")]
        internal static extern int DeregisterService(uint serviceId);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_init_miracast")]
        internal static extern int InitMiracast(bool enable);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_info")]
        internal static extern int GetDiscoveredPeerInfo(string address, out IntPtr peer);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_init_display")]
        internal static extern int InitDisplay();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_deinit_display")]
        internal static extern int DeinitDisplay();
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_display")]
        internal static extern int SetDisplay(WiFiDirectDisplayType type, int port, int hdcp);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_display_availability")]
        internal static extern int SetDisplayAvailability(bool availability);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_display_type")]
        internal static extern int GetDisplayType(string address, out WiFiDirectDisplayType type);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_display_availability")]
        internal static extern int GetDisplayAvailability(string address, out bool availability);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_display_hdcp")]
        internal static extern int GetDisplayHdcp(string address, out int hdcp);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_display_port")]
        internal static extern int GetDisplayPort(string address, out int port);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_display_throughput")]
        internal static extern int GetDisplayThroughput(string address, out int throughput);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_peer_rssi")]
        internal static extern int GetRssi(string address, out int rssi);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_get_session_timer")]
        internal static extern int GetSessionTimer(out int seconds);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_session_timer")]
        internal static extern int SetSessionTimer(int seconds);
        [DllImport(Libraries.WiFiDirect,EntryPoint = "wifi_direct_set_auto_group_removal")]
        internal static extern int SetAutoGroupRemoval(bool enable);
    }
}