Example #1
0
        private void screenCaptureSourcesRClbck(IntPtr opaque,
                                                ref ADLError error, IntPtr sources, UIntPtr size)
        {
            try
            {
                Responder <List <ScreenCaptureSource> > responder =
                    (Responder <List <ScreenCaptureSource> >)
                    getResponder((uint)opaque);
                if (error.err_code != 0)
                {
                    responder.errHandler(error.err_code, error.err_message.body);
                }
                List <ScreenCaptureSource> sourcesList =
                    new List <ScreenCaptureSource>();

                var  arrayValue     = sources;
                var  tableEntrySize = Marshal.SizeOf(typeof(ADLScreenCaptureSource));
                uint tableSize      = (uint)size;

                for (var i = 0; i < tableSize; i++)
                {
                    ADLScreenCaptureSource cur =
                        (ADLScreenCaptureSource)Marshal.PtrToStructure(
                            arrayValue, typeof(ADLScreenCaptureSource));
                    byte[] snapshotArrayData = new byte[(uint)cur.imageDataLen];
                    Marshal.Copy(cur.imageData, snapshotArrayData, 0, (int)(uint)cur.imageDataLen);
                    sourcesList.Add(
                        new ScreenCaptureSource(cur.id.body, cur.title.body,
                                                snapshotArrayData));
                    arrayValue = new IntPtr(arrayValue.ToInt32() + tableEntrySize);
                }
                responder.resultHandler(sourcesList);
            }
            catch (Exception) { }
        }
Example #2
0
        /**
         * NativeAPI callback handlers
         * =====================================================================
         */

        /// <summary>
        ///
        /// </summary>
        /// <param name="opaque"></param>
        /// <param name="error"></param>
        private void voidRCallback(IntPtr opaque, ref ADLError error)
        {
            Responder <object> responder = (Responder <object>)getResponder(
                (uint)opaque);

            try
            {
                if (error.err_code == 0)
                {
                    responder.resultHandler(null);
                }
                else
                {
                    responder.errHandler(error.err_code, error.err_message.body);
                }
            }
            catch (Exception) { }
        }
Example #3
0
        // =====================================================================

        /// <summary>
        ///
        /// </summary>
        /// <param name="opaque"></param>
        /// <param name="error"></param>
        /// <param name="str"></param>
        private void stringRCallback(IntPtr opaque,
                                     ref ADLError error,
                                     ref ADLString str)
        {
            Responder <string> responder = (Responder <string>)getResponder(
                (uint)opaque);

            try
            {
                if (error.err_code == 0)
                {
                    responder.resultHandler(str.body);
                }
                else
                {
                    responder.errHandler(error.err_code, error.err_message.body);
                }
            }
            catch (Exception) { }
        }
Example #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ptr"></param>
 /// <param name="err"></param>
 /// <param name="h"></param>
 private static void onInitComplete(IntPtr ptr,
                                    ref ADLError err, IntPtr h)
 {
     InitStateChangedEvent.InitState state;
     if (err.err_code == 0)
     {
         _platformHandle = h;
         _service        = new CloudeoServiceImpl(h);
         state           = InitStateChangedEvent.InitState.INITIALIZED;
     }
     else
     {
         state = InitStateChangedEvent.InitState.ERROR;
     }
     if (_listener != null)
     {
         InitStateChangedEvent e = new InitStateChangedEvent(state,
                                                             err.err_code, err.err_message.body);
         _listener.onInitStateChanged(e);
     }
 }
Example #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="opaque"></param>
 /// <param name="error"></param>
 /// <param name="i"></param>
 private void renderResponder(IntPtr opaque, ref ADLError error, int i)
 {
     try
     {
         Console.Error.WriteLine("Got rendering result");
         int         callId = (int)opaque;
         PendingCall call   = _pendingCalls[callId];
         _pendingCalls.Remove(callId);
         if (error.err_code == 0)
         {
             call.manualRenderer.rendererId = i;
             _activeRenderers[i]            = new WeakReference(call.manualRenderer);
             if (call.manual)
             {
                 call.manualRendererResponder.resultHandler(call.manualRenderer);
             }
             else
             {
                 call.rendererResponder.resultHandler(
                     new RenderingWidget(call.manualRenderer));
             }
         }
         else
         {
             if (call.manual)
             {
                 call.manualRendererResponder.errHandler(error.err_code,
                                                         StringHelper.fromNative(error.err_message));
             }
             else
             {
                 call.rendererResponder.errHandler(error.err_code,
                                                   StringHelper.fromNative(error.err_message));
             }
         }
     }
     catch (Exception) { }
 }
Example #6
0
        // =====================================================================

        /// <summary>
        ///
        /// </summary>
        /// <param name="opaque"></param>
        /// <param name="error"></param>
        /// <param name="device"></param>
        /// <param name="size_t"></param>
        private void devsRCallback(IntPtr opaque,
                                   ref ADLError error, IntPtr device, UIntPtr size)
        {
            try
            {
                Responder <Dictionary <string, string> > responder =
                    (Responder <Dictionary <string, string> >)
                    getResponder((uint)opaque);

                Dictionary <string, string> devList =
                    new Dictionary <string, string>();

                // 'device' is an array of 'CDODevice' structures, add devices to
                // devList
                var  arrayValue     = device;
                var  tableEntrySize = Marshal.SizeOf(typeof(ADLDevice));
                uint tableSize      = (uint)size;
                for (var i = 0; i < tableSize; i++)
                {
                    var cur = (ADLDevice)Marshal.PtrToStructure(
                        arrayValue, typeof(ADLDevice));
                    devList.Add(cur.id.body, cur.label.body);
                    arrayValue = new IntPtr(arrayValue.ToInt32() + tableEntrySize);
                }


                if (error.err_code == 0)
                {
                    responder.resultHandler(devList);
                }
                else
                {
                    responder.errHandler(error.err_code, error.err_message.body);
                }
            }
            catch (Exception) { }
        }
 public static extern bool adl_no_error(ref ADLError error);
 public static extern bool adl_no_error(ref ADLError error);
 /// <summary>
 ///
 /// </summary>
 /// <param name="opaque"></param>
 /// <param name="error"></param>
 private void stopRHandler(IntPtr opaque, ref ADLError error)
 {
     stoppedEvent.Set();
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="opaque"></param>
 /// <param name="error"></param>
 /// <param name="i"></param>
 private void renderResponder(IntPtr opaque, ref ADLError error, int i)
 {
     try
     {
         Console.Error.WriteLine("Got rendering result");
         int callId = (int)opaque;
         PendingCall call = _pendingCalls[callId];
         _pendingCalls.Remove(callId);
         if (error.err_code == 0)
         {
             call.manualRenderer.rendererId = i;
             _activeRenderers[i] = new WeakReference(call.manualRenderer);
             if (call.manual)
             {
                 call.manualRendererResponder.resultHandler(call.manualRenderer);
             }
             else
             {
                 call.rendererResponder.resultHandler(
                     new RenderingWidget(call.manualRenderer));
             }
         }
         else
         {
             if (call.manual)
                 call.manualRendererResponder.errHandler(error.err_code,
                 StringHelper.fromNative(error.err_message));
             else
                 call.rendererResponder.errHandler(error.err_code,
                 StringHelper.fromNative(error.err_message));
         }
     }
     catch (Exception) { }
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="opaque"></param>
 /// <param name="error"></param>
 private void stopRHandler(IntPtr opaque, ref ADLError error)
 {
     stoppedEvent.Set();
 }