using System.Linq;
using System.Runtime.InteropServices;
+
namespace ElmSharp
{
/// <summary>
_cacheDisplayedMonth = currentDisplayedMonth;
};
- _calendarFormat = (t) => { return _dateFormatDelegate(t); };
+ _calendarFormat = (ref Interop.Libc.SystemTime t) => { return _dateFormatDelegate(t); };
}
/// <summary>
internal static extern void elm_calendar_marks_clear(IntPtr obj);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate string Elm_Calendar_Format_Cb(Libc.SystemTime date);
+ internal delegate string Elm_Calendar_Format_Cb(ref Libc.SystemTime date);
[DllImport(Libraries.Elementary)]
internal static extern void elm_calendar_format_function_set(IntPtr obj, Elm_Calendar_Format_Cb format_function);
internal static extern ResultType DataControlGetDataId(SafeDataControlHandle handle, out string dataId);
internal delegate void MapGetResponseCallback(int requestID,
- IntPtr provider, string[] resultValueList, int resultValueCount, bool providerResult, string error, IntPtr userData);
+ IntPtr provider, IntPtr resultValueList, int resultValueCount, bool providerResult, string error, IntPtr userData);
internal delegate void MapSetResponseCallback(int requestID,
IntPtr provider, bool providerResult, string error, IntPtr userData);
internal delegate void MapAddResponseCallback(int requestID,
using System.Collections.Generic;
using Tizen.Applications.DataControl.Core;
using System.Threading;
+using System.Runtime.InteropServices;
namespace Tizen.Applications.DataControl
{
_reqConsumerDictionary.Remove(reqId);
}
- private static void MapGetResponse(int reqId, IntPtr provider, string[] valueList, int valueCount, bool providerResult, string error, IntPtr userData)
+ static void IntPtrToStringArray(IntPtr unmanagedArray, int size, out string[] managedArray)
+ {
+ managedArray = new string[size];
+ IntPtr[] IntPtrArray = new IntPtr[size];
+ Marshal.Copy(unmanagedArray, IntPtrArray, 0, size);
+ for (int iterator = 0; iterator < size; iterator++)
+ {
+ managedArray[iterator] = Marshal.PtrToStringAnsi(IntPtrArray[iterator]);
+ }
+ }
+
+ private static void MapGetResponse(int reqId, IntPtr provider, IntPtr valueList, int valueCount, bool providerResult, string error, IntPtr userData)
{
MapGetResult mgr;
Log.Debug(LogTag, $"MapGetResponse {reqId.ToString()}");
if (valueList !=null)
{
- mgr = new MapGetResult(valueList, providerResult);
+ string[] stringArray;
+ IntPtrToStringArray(valueList, valueCount, out stringArray);
+ mgr = new MapGetResult(stringArray, providerResult);
}
else
{