Example #1
0
        private async Task OnDoneCommandAsync()
        {
            var selectedItems = listView.SelectedItems;

            if (Chooser.EnableSelection)
            {
                var values = listView.SelectedItems.Cast <object>()
                             .Select(x => x?.GetPropertyValue(Chooser.ValuePath))
                             .Where(x => x != null);

                AtomList <object> sitems = Chooser.SelectedItems as AtomList <object>;
                sitems.Replace(listView.SelectedItems.Cast <object>());

                if (Chooser.AllowMultipleSelection)
                {
                    Chooser.Value = string.Join(Chooser.ValueSeparator, values.Select(x => x.ToString()));
                }
                else
                {
                    var first = values.FirstOrDefault();
                    Chooser.Value = first;
                }
            }

            Chooser.TapCommand?.Execute(selectedItems);

            await DependencyService.Get <INavigation>().PopAsync();
        }
Example #2
0
        private static void CallList(AtomList l)
        {
            External e = Internal.pass.ext;

            try { e.klass.m_list(e, (Atom[])l); }
            catch (Exception exc) { PostError(exc.ToString()); }
        }
Example #3
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
        }
Example #4
0
 public AtomListEnum(AtomList l)
 {
     list = l;
 }
Example #5
0
            private void _read()
            {
                _len32    = m_io.ReadU4be();
                _atomType = ((QuicktimeMov.AtomType)m_io.ReadU4be());
                if (Len32 == 1)
                {
                    _len64 = m_io.ReadU8be();
                }
                switch (AtomType)
                {
                case QuicktimeMov.AtomType.Moof: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Tkhd: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new TkhdBody(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Stbl: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Traf: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Minf: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Trak: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Moov: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Mdia: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Dinf: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new AtomList(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Mvhd: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new MvhdBody(io___raw_body, this, m_root);
                    break;
                }

                case QuicktimeMov.AtomType.Ftyp: {
                    __raw_body = m_io.ReadBytes(Len);
                    var io___raw_body = new KaitaiStream(__raw_body);
                    _body = new FtypBody(io___raw_body, this, m_root);
                    break;
                }

                default: {
                    _body = m_io.ReadBytes(Len);
                    break;
                }
                }
            }
Example #6
0
 private void _read()
 {
     _atoms = new AtomList(m_io, this, m_root);
 }
Example #7
0
        private static void CallAnything(int inlet, Symbol s, AtomList l)
        {
//            Post("CLASS-ANYTHING {0}->{1}:{2}", inlet,s,l);

            try {
                External e = Internal.pass.ext;
                Class    c = e.klass;

                Hashtable h;
                try { h = (Hashtable)c.m_map[inlet]; }
                catch (IndexOutOfRangeException) { h = null; }

                if (h != null)
                {
                    object fnd = h[s];
                    if (fnd != null)
                    {
                        MapValue mv = (MapValue)fnd;
                        switch (mv.k)
                        {
                        case Kind.k_bang:
                        {
                            ((DynamicMethodBang)mv.d)(e);
                            return;
                        }

                        case Kind.k_float:
                        {
                            float f = l.Count > 0 ? (float)l[0] : 0;
                            ((DynamicMethodFloat)mv.d)(e, f);
                            return;
                        }

                        case Kind.k_symbol:
                        {
                            Symbol sym = l.Count > 0 ? (Symbol)l[0] : _;
                            ((DynamicMethodSymbol)mv.d)(e, sym);
                            return;
                        }

                        case Kind.k_pointer:
                        {
                            Pointer p = l.Count > 0 ? (Pointer)l[0] : new Pointer();
                            ((DynamicMethodPointer)mv.d)(e, p);
                            return;
                        }

                        case Kind.k_list:
                            ((DynamicMethodList)mv.d)(e, (Atom[])l);
                            return;

                        case Kind.k_anything:
                            ((DynamicMethodAnything)mv.d)(e, inlet, s, (Atom[])l);
                            return;

                        default:
                            throw new NotImplementedException("Selector " + s.ToString() + " not handled");
                        }
                    }
                }

                // no explicit method found...
                c.m_anything(e, inlet, s, (Atom[])l);
            }
            catch (Exception exc) { PostError(exc.ToString()); }
        }
Example #8
0
        private static void CallAnything(int inlet, Symbol s, AtomList l)
        {
//            Post("CLASS-ANYTHING {0}->{1}:{2}", inlet,s,l);

            try {
                External e = Internal.pass.ext;
                Class c = e.klass;

                Hashtable h;
                try { h = (Hashtable)c.m_map[inlet]; }
                catch (IndexOutOfRangeException) { h = null; }

                if(h != null)
                {
                    object fnd = h[s];
                    if (fnd != null)
                    {
                        MapValue mv = (MapValue)fnd;
                        switch(mv.k)
                        {
                            case Kind.k_bang:
                                {
                                    ((DynamicMethodBang)mv.d)(e);
                                    return;
                                }
                            case Kind.k_float:
                                {
                                    float f = l.Count > 0 ? (float)l[0] : 0;
                                    ((DynamicMethodFloat)mv.d)(e, f);
                                    return;
                                }
                            case Kind.k_symbol:
                                {
                                    Symbol sym = l.Count > 0 ? (Symbol)l[0] : _;
                                    ((DynamicMethodSymbol)mv.d)(e, sym);
                                    return;
                                }
                            case Kind.k_pointer:
                                {
                                    Pointer p = l.Count > 0 ? (Pointer)l[0] : new Pointer();
                                    ((DynamicMethodPointer)mv.d)(e, p);
                                    return;
                                }
                            case Kind.k_list:
                                ((DynamicMethodList)mv.d)(e,(Atom[])l);
                                return;
                            case Kind.k_anything:
                                ((DynamicMethodAnything)mv.d)(e,inlet,s,(Atom[])l);
                                return;
                            default:
                                throw new NotImplementedException("Selector " + s.ToString() + " not handled");
                        }
                    }
                }

                // no explicit method found...
                c.m_anything(e, inlet, s, (Atom[])l); 
            }
            catch (Exception exc) { PostError(exc.ToString()); }
        }
Example #9
0
 private static void CallList(AtomList l)
 {
     External e = Internal.pass.ext;
     try { e.klass.m_list(e, (Atom[])l); }
     catch (Exception exc) { PostError(exc.ToString()); }
 }
Example #10
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
         }