コード例 #1
0
        private static void NewInstance(ExternalPtr ptr, AtomList args)
        {
            External instance;

            Class cl = Internal.pass.klass; // set by native side

            Internal.extptr = ptr;

//            Post("CLASS-NEW {0}",cl);
            try
            {
                // TODO: create dynamic delegate for that....
                System.Reflection.ConstructorInfo m = cl.extclass.GetConstructor(new Type[1] {
                    typeof(Atom[])
                });
                if (m != null)
                {
                    instance = (External)m.Invoke(new object[1] {
                        (Atom[])args
                    });
                }
                else
                {
                    // search for the argument-less constructor... it must exist, we searched before
                    m        = cl.extclass.GetConstructor(System.Type.EmptyTypes);
                    instance = (External)m.Invoke(null);
                }
            }
            catch (Exception exc)
            {
                instance = null;
                PostError(exc.ToString());
            }

#if DEBUG
            Internal.extptr.Clear();
#endif

            Internal.pass.ext = instance; // back to native
        }
コード例 #2
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void Unbind(ExternalPtr obj, Symbol dst);
コード例 #3
0
 internal extern static void AddInlet(ExternalPtr obj, Symbol type); // create proxy inlet (typed)
コード例 #4
0
 internal extern static void AddInlet(ExternalPtr obj, ref Symbol s);
コード例 #5
0
 internal extern static void AddInlet(ExternalPtr obj, Symbol sel, Symbol to_sel);
コード例 #6
0
 internal extern static void Outlet(ExternalPtr obj, int n, Atom a);
コード例 #7
0
 internal extern static void OutletEx(ExternalPtr obj, int n, object o);
コード例 #8
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj,ref Pointer f);
コード例 #9
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj, Symbol type); // create proxy inlet (typed)
コード例 #10
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj, ref float f); 
コード例 #11
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj, ref Symbol s);
コード例 #12
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj, Symbol sel, Symbol to_sel);
コード例 #13
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
        // --------------------------------------------------------------------------

        protected External()
        {
            ptr = Internal.extptr;
            klass = Internal.pass.klass;
        }
コード例 #14
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
        private static void NewInstance(ExternalPtr ptr,AtomList args)
        {
            External instance;
            
            Class cl = Internal.pass.klass; // set by native side
            Internal.extptr = ptr;

//            Post("CLASS-NEW {0}",cl);
            try 
            {
                // TODO: create dynamic delegate for that....
                System.Reflection.ConstructorInfo m = cl.extclass.GetConstructor(new Type[1] { typeof(Atom[]) });
                if (m != null)
                    instance = (External)m.Invoke(new object[1] { (Atom[])args });
                else
                {
                    // search for the argument-less constructor... it must exist, we searched before
                    m = cl.extclass.GetConstructor(System.Type.EmptyTypes);
                    instance = (External)m.Invoke(null);
                }
            }
            catch (Exception exc) 
            {
                instance = null;
                PostError(exc.ToString()); 
            }

#if DEBUG
            Internal.extptr.Clear();
#endif

            Internal.pass.ext = instance; // back to native
         }
コード例 #15
0
 internal extern static void Outlet(ExternalPtr obj, int n, float f);
コード例 #16
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddInlet(ExternalPtr obj); // create proxy inlet (anything)
コード例 #17
0
 internal extern static void Outlet(ExternalPtr obj, int n, Pointer p);
コード例 #18
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void AddOutlet(ExternalPtr obj, Symbol type);
コード例 #19
0
 internal extern static void Outlet(ExternalPtr obj, int n, Symbol s, Atom[] l);
コード例 #20
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void Outlet(ExternalPtr obj, int n, float f);
コード例 #21
0
 internal extern static void Unbind(ExternalPtr obj, Symbol dst);
コード例 #22
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void Outlet(ExternalPtr obj, int n, Symbol s);
コード例 #23
0
        // --------------------------------------------------------------------------

        protected External()
        {
            ptr   = Internal.extptr;
            klass = Internal.pass.klass;
        }
コード例 #24
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void Outlet(ExternalPtr obj, int n, Pointer p);
コード例 #25
0
 internal extern static void AddInlet(ExternalPtr obj, ref float f);
コード例 #26
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void Outlet(ExternalPtr obj, int n, Atom a);
コード例 #27
0
 internal extern static void AddInlet(ExternalPtr obj, ref Pointer f);
コード例 #28
0
 internal extern static void AddOutlet(ExternalPtr obj, Symbol type);
コード例 #29
0
 internal extern static void AddInlet(ExternalPtr obj); // create proxy inlet (anything)
コード例 #30
0
ファイル: PureData.cs プロジェクト: ma4u/pd-macambira
 internal extern static void OutletEx(ExternalPtr obj, int n, object o);