public void StartClient(string apiKey, bool isDebugEnabled)
        {
            if (this.scapeClientPtr == IntPtr.Zero)
            {
                int isDebugInt = 0;
                if (isDebugEnabled)
                {
                    isDebugInt = 1;
                }

                this.scapeClientPtr = ScapeNative.citf_createClient(apiKey, isDebugInt);


                if (this.IsStarted())
                {
                    this.scapeSessionNative = new ScapeSessionNative(this.scapeClientPtr);

                    ScapeNative.citf_setClientStateCallbacks(this.scapeClientPtr,
                                                             onAquireMotionMeasurements,
                                                             onAquireLocationMeasurements);

                    if (isDebugEnabled)
                    {
                        this.debugSessionPtr = ScapeNative.citf_getDebugSession(this.scapeClientPtr);

                        debugSession = new DebugSessionNative(debugSessionPtr);
                    }

                    setDeviceInfo();

                    Input.location.Start();
                }
            }
        }
 /// <summary>
 /// set the native impl
 /// </summary>
 /// <param name="in_native">
 /// The native implementation is passed in from the ScapeClient
 /// </param>
 internal void SetNative(ScapeSessionNative in_native)
 {
     this.scapeSessionNative = in_native;
     this.scapeSessionNative.SetFrontEnd(this);
 }