1 // Copyright 2016 by Samsung Electronics, Inc.,
3 // This software is the confidential and proprietary information
4 // of Samsung Electronics, Inc. ("Confidential Information"). You
5 // shall not disclose such Confidential Information and shall use
6 // it only in accordance with the terms of the license agreement
7 // you entered into with Samsung.
10 using System.Runtime.InteropServices;
12 using Tizen.Convergence;
14 internal static partial class Interop
16 internal static partial class Internal
18 public enum ConvDiscoveryResult
29 /// Discovery finished
38 internal static partial class ConvManager
40 [DllImport(Libraries.Convergence, EntryPoint = "conv_create")]
41 internal static extern int ConvCreate(out ConvManagerHandle /* conv_h */ handle);
43 [DllImport(Libraries.Convergence, EntryPoint = "conv_destroy")]
44 internal static extern int ConvDestroy(IntPtr /* conv_h */ handle);
46 [DllImport(Libraries.Convergence, EntryPoint = "conv_discovery_start")]
47 internal static extern int ConvDiscoveryStart(ConvManagerHandle /* conv_h */ handle, int timeoutSeconds, ConvDiscoveryCallback callback, IntPtr /* void */ userData);
49 [DllImport(Libraries.Convergence, EntryPoint = "conv_discovery_stop")]
50 internal static extern int ConvDiscoveryStop(ConvManagerHandle /* conv_h */ handle);
52 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
53 internal delegate void ConvDiscoveryCallback(IntPtr /* conv_device_h */ deviceHandle, ConvDiscoveryResult /* conv_discovery_result_e */ result, IntPtr /* void */ userData);
56 internal class ConvManagerHandle : TizenSafeHandle
58 public ConvManagerHandle() : base()
63 public ConvManagerHandle(IntPtr handle)
68 public override void Destroy()
70 var err = ConvManager.ConvDestroy(this.handle);
71 if (err != (int)ConvErrorCode.None)
73 Log.Error(ErrorFactory.LogTag, "Failed to destroy conv manager handle");
74 throw ErrorFactory.GetException(err);