예제 #1
0
 void OnProgress(NikonDevice sender, eNkMAIDDataObjType type, int done, int total)
 {
     if (_progress != null)
     {
         _progress(sender, type, done, total);
     }
 }
예제 #2
0
 void OnProgress(NikonDevice sender, eNkMAIDDataObjType type, int done, int total)
 {
     if (_progress != null)
     {
         _progress(sender, type, done, total);
     }
 }
예제 #3
0
        void HandleAddChild(IntPtr id)
        {
            NikonObject item = new NikonObject(Md3, Object, (uint)id.ToInt32());

            List <uint> dataIds = new List <uint>();

            item.Open();
            item.Event += (NikonObject obj, IntPtr refClient, eNkMAIDEvent currentEvent, IntPtr data) =>
            {
                if (currentEvent == eNkMAIDEvent.kNkMAIDEvent_AddChild)
                {
                    dataIds.Add((uint)data.ToInt32());
                }
            };

            item.EnumChildren();

            _currentItemId = item.Id;

            foreach (var dataId in dataIds)
            {
                eNkMAIDDataObjType dataObjectType = (eNkMAIDDataObjType)dataId;

                NikonObject data = new NikonObject(Md3, item, dataId);

                data.Open();

                switch (dataObjectType)
                {
                case eNkMAIDDataObjType.kNkMAIDDataObjType_Thumbnail:
                case eNkMAIDDataObjType.kNkMAIDDataObjType_File | eNkMAIDDataObjType.kNkMAIDDataObjType_Thumbnail:
                    // Note:
                    // We do a 'thread-unsafe' check of the thumbnail-ready event here. No
                    // need to acquire if the user hasn't hooked up the thumbnail event.
                    if (_thumbnailReady != null)
                    {
                        DataItemAcquire(data);
                    }
                    break;

                case eNkMAIDDataObjType.kNkMAIDDataObjType_Image:
                case eNkMAIDDataObjType.kNkMAIDDataObjType_Sound:
                case eNkMAIDDataObjType.kNkMAIDDataObjType_File:
                case eNkMAIDDataObjType.kNkMAIDDataObjType_File | eNkMAIDDataObjType.kNkMAIDDataObjType_Image:
                case eNkMAIDDataObjType.kNkMAIDDataObjType_File | eNkMAIDDataObjType.kNkMAIDDataObjType_Sound:
                    DataItemAcquire(data);
                    break;

                case eNkMAIDDataObjType.kNkMAIDDataObjType_Video:
                    // Note:
                    // We do a 'thread-unsafe' check of the videofragment-ready event here. No
                    // need to download videos if the user hasn't hooked up the event.
                    if (_videoFragmentReady != null)
                    {
                        DataItemGetVideoImage(data);
                    }
                    break;

                default:
                    Debug.Print("Unknown data object type: " + dataObjectType.ToString());
                    break;
                }

                data.Close();
            }

            item.Close();
        }