diff options
author | Yu Jiung <jiung.yu@samsung.com> | 2016-12-22 14:22:24 +0900 |
---|---|---|
committer | Yu Jiung <jiung.yu@samsung.com> | 2016-12-26 11:16:40 +0900 |
commit | 4ecefb3d2b5f7c6677f1793f7e54f79f76a374be (patch) | |
tree | 30fb18c0768be9c3f660bd03a73d89f2e367586f /Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs | |
parent | ccab26a94b82b516f04ca9c7268f050fbb4e438e (diff) | |
download | wifi-direct-4ecefb3d2b5f7c6677f1793f7e54f79f76a374be.tar.gz wifi-direct-4ecefb3d2b5f7c6677f1793f7e54f79f76a374be.tar.bz2 wifi-direct-4ecefb3d2b5f7c6677f1793f7e54f79f76a374be.zip |
[C# Wi-Fi Direct] Adding C# Wi-Fi Direct codesubmit/tizen/20170102.053259submit/tizen/20161228.005300accepted/tizen/tv/20170102.060855accepted/tizen/mobile/20170102.060834
Change-Id: I8a4d5635a1ee4fd80f97624dcf0ba764018ca857
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
Diffstat (limited to 'Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs')
-rw-r--r-- | Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs b/Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs new file mode 100644 index 0000000..10e2862 --- /dev/null +++ b/Tizen.Network.WiFiDirect/Tizen.Network.WiFiDirect/WiFiDirectData.cs @@ -0,0 +1,165 @@ +/* + * 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 System.Runtime.InteropServices; +using System.Collections.ObjectModel; + +namespace Tizen.Network.WiFiDirect +{ + [StructLayout(LayoutKind.Sequential)] + internal struct DiscoveredPeerStruct + { + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _name; + + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _macAddress; + + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _interfaceAddress; + + internal int _channel; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isConnected; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isGroupOwner; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isPersistentGroupOwner; + + internal WiFiDirectPrimaryDeviceType _primaryType; + + internal WiFiDirectSecondaryDeviceType _secondaryType; + + internal int _wpsTypes; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isP2PInvitationSupported; + + internal uint _serviceCount; + + internal IntPtr _serviceList; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isMiracast; + } + + [StructLayout(LayoutKind.Sequential)] + internal struct ConnectedPeerStruct + { + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _name; + + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _ipAddress; + + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _macAddress; + + [MarshalAsAttribute(UnmanagedType.LPStr)] + internal string _interfaceAddress; + + internal int _channel; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isP2PSupport; + + internal WiFiDirectPrimaryDeviceType _primaryType; + + internal WiFiDirectSecondaryDeviceType _secondaryType; + + internal uint _serviceCount; + + internal IntPtr _serviceList; + + [MarshalAsAttribute(UnmanagedType.I1)] + internal bool _isMiracast; + } + + internal static class WiFiDirectUtils + { + internal static WiFiDirectPeer ConvertStructToDiscoveredPeer(DiscoveredPeerStruct peer) + { + WiFiDirectPeer resultPeer = new WiFiDirectPeer(); + resultPeer._peerDeviceName = peer._name; + resultPeer._peerMacAddress = peer._macAddress; + resultPeer._peerInterfaceAddress = peer._interfaceAddress; + resultPeer._peerChannel = peer._channel; + resultPeer._isPeerConnected = peer._isConnected; + resultPeer._isPeerGroupOwner = peer._isGroupOwner; + resultPeer._isPeerPersistentGroupOwner = peer._isPersistentGroupOwner; + resultPeer._peerPrimaryType = peer._primaryType; + resultPeer._peerSecondaryType = peer._secondaryType; + resultPeer._peerWpsTypes = peer._wpsTypes; + resultPeer._p2PInvitationSupported = peer._isP2PInvitationSupported; + Collection<string> uuidList = null; + + if (peer._serviceCount > 0) + { + IntPtr[] serviceList = new IntPtr[peer._serviceCount]; + Marshal.Copy(peer._serviceList, serviceList, 0, (int)peer._serviceCount); + uuidList = new Collection<string>(); + foreach (IntPtr service in serviceList) + { + string registeredService = Marshal.PtrToStringAnsi(service); + uuidList.Add(registeredService); + } + + resultPeer._peerServiceCount = peer._serviceCount; + resultPeer._peerServiceList = uuidList; + } + + resultPeer._isPeerMiracastDevice = peer._isMiracast; + return resultPeer; + } + + internal static WiFiDirectPeer ConvertStructToConnectedPeer(ConnectedPeerStruct peer) + { + WiFiDirectPeer resultPeer = new WiFiDirectPeer(); + resultPeer._peerDeviceName = peer._name; + resultPeer._peerIpAddress = peer._ipAddress; + resultPeer._peerMacAddress = peer._macAddress; + resultPeer._peerInterfaceAddress = peer._interfaceAddress; + resultPeer._peerChannel = peer._channel; + resultPeer._peerP2PSupport = peer._isP2PSupport; + resultPeer._peerPrimaryType = peer._primaryType; + resultPeer._peerSecondaryType = peer._secondaryType; + Collection<string> uuidList = null; + + if (peer._serviceCount > 0) + { + IntPtr[] serviceList = new IntPtr[peer._serviceCount]; + Marshal.Copy(peer._serviceList, serviceList, 0, (int)peer._serviceCount); + uuidList = new Collection<string>(); + foreach (IntPtr service in serviceList) + { + string registeredService = Marshal.PtrToStringAnsi(service); + uuidList.Add(registeredService); + } + + resultPeer._peerServiceCount = peer._serviceCount; + resultPeer._peerServiceList = uuidList; + } + + resultPeer._isPeerMiracastDevice = peer._isMiracast; + return resultPeer; + } + } + +} |