Ejemplo n.º 1
0
        public static VarType GetVarType(this IPortableDeviceValues values, PropertyKey key)
        {
            PROPVARIANT val;

            values.GetValue(key, out val);
            return(((PropVariant)val).variantType);
        }
        internal static string GetKeyNameFromPropkey(_tagpropertykey propertyKey)
        {
            var query = (from value in _values
                         where (propertyKey.pid == value.Value.pid) && (propertyKey.fmtid == value.Value.fmtid)
                         select value.Key);

            return(query.First() ?? (propertyKey.pid + " " + propertyKey.fmtid));
        }
Ejemplo n.º 3
0
 public static bool TryGetIUnknownValue(this IPortableDeviceValues values, PropertyKey key, out object value)
 {
     if (values.HasKeyValue(key))
     {
         values.GetIUnknownValue(key, out value);
         return(true);
     }
     value = null;
     return(false);
 }
Ejemplo n.º 4
0
 public static bool TryGetGuidValue(this IPortableDeviceValues values, PropertyKey key, out Guid value)
 {
     if (values.HasKeyValue(key))
     {
         values.GetGuidValue(key, out value);
         return(true);
     }
     value = Guid.Empty;
     return(false);
 }
Ejemplo n.º 5
0
        genTagPropertyKey(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k, uint pid)
        {
            PortableDeviceApiLib._tagpropertykey value =
                new PortableDeviceApiLib._tagpropertykey();

            value.fmtid = new Guid(a, b, c, d, e, f, g, h, i, j, k);
            value.pid   = pid;

            return(value);
        }
Ejemplo n.º 6
0
        public static string GetNameFromGuid(PortableDeviceApiLib._tagpropertykey key, PortableDeviceApiLib.tag_inner_PROPVARIANT values)
        {
            PortableDeviceApiLib.IPortableDeviceValues pValues = (PortableDeviceApiLib.IPortableDeviceValues) new PortableDeviceTypesLib.PortableDeviceValuesClass();
            string contentTypeName;

            pValues.SetValue(ref key, ref values);
            pValues.GetStringValue(ref key, out contentTypeName);

            return(contentTypeName);
        }
Ejemplo n.º 7
0
 public static bool TryGetBoolValue(this IPortableDeviceValues values, PropertyKey key, out bool value)
 {
     if (values.HasKeyValue(key))
     {
         int val;
         values.GetBoolValue(key, out val);
         value = val != 0;
         return(true);
     }
     value = false;
     return(false);
 }
Ejemplo n.º 8
0
 public static bool TryGetDateTimeValue(this IPortableDeviceValues values, PropertyKey key, out DateTime?value)
 {
     if (values.HasKeyValue(key))
     {
         PROPVARIANT val;
         values.GetValue(key, out val);
         value = ((PropVariant)val).ToDate();
         return(true);
     }
     value = null;
     return(false);
 }
Ejemplo n.º 9
0
 internal static bool TryGetValue(this IPortableDeviceValues values, PropertyKey key, out PropVariant value)
 {
     if (values.HasKeyValue(key))
     {
         PROPVARIANT val;
         values.GetValue(key, out val);
         value = (PropVariant)val;
         return(true);
     }
     value = new PropVariant();
     return(false);
 }
Ejemplo n.º 10
0
        internal static string GetKeyNameFromPropkey(PortableDeviceApiLib._tagpropertykey propertyKey)
        {
            foreach (KeyValuePair <string, PortableDeviceApiLib._tagpropertykey> de in _values)
            {
                if ((propertyKey.pid == de.Value.pid) && (propertyKey.fmtid == de.Value.fmtid))
                {
                    return((string)de.Key);
                }
            }

            return(propertyKey.pid.ToString() + " " + propertyKey.fmtid.ToString());
        }
Ejemplo n.º 11
0
 public static bool TryByteArrayValue(this IPortableDeviceValues values, PropertyKey key, out byte[] value)
 {
     if (values.HasKeyValue(key))
     {
         PROPVARIANT val;
         values.GetValue(key, out val);
         value = ((PropVariant)val).ToByteArray();
         return(true);
     }
     value = null;
     return(false);
 }
Ejemplo n.º 12
0
        public static string GetKeyName(uint pid, Guid fmtid)
        {
            Hashtable knownKeys = new Hashtable();

            knownKeys.Add(PropertyNames.OBJECT_PLAY_COUNT, PropertyKeys.WPD_MEDIA_USE_COUNT);
            knownKeys.Add(PropertyNames.OBJECT_GENRE, PropertyKeys.WPD_MEDIA_GENRE);
            knownKeys.Add(PropertyNames.OBJECT_STAR_RATING, PropertyKeys.WPD_MEDIA_STAR_RATING);
            knownKeys.Add(PropertyNames.OBJECT_ARTIST, PropertyKeys.WPD_MEDIA_ARTIST);
            knownKeys.Add(PropertyNames.OBJECT_ALBUM_ARTIST, PropertyKeys.WPD_MEDIA_ALBUM_ARTIST);
            knownKeys.Add(PropertyNames.OBJECT_SUBSCRIPTION_CONTENT_ID, PropertyKeys.WPD_MEDIA_SUBSCRIPTION_CONTENT_ID);
            knownKeys.Add(PropertyNames.OBJECT_EFFECTIVE_RATING, PropertyKeys.WPD_MEDIA_USER_EFFECTIVE_RATING);
            knownKeys.Add(PropertyNames.OBJECT_ALBUM, PropertyKeys.WPD_MUSIC_ALBUM);
            knownKeys.Add(PropertyNames.OBJECT_TRACK, PropertyKeys.WPD_MUSIC_TRACK);
            knownKeys.Add(PropertyNames.OBJECT_ID, PropertyKeys.WPD_OBJECT_ID);
            knownKeys.Add(PropertyNames.OBJECT_SIZE, PropertyKeys.WPD_OBJECT_SIZE);
            knownKeys.Add(PropertyNames.OBJECT_DURATION, PropertyKeys.WPD_MEDIA_DURATION);
            knownKeys.Add(PropertyNames.OBJECT_TITLE, PropertyKeys.WPD_MEDIA_TITLE);
            knownKeys.Add(PropertyNames.OBJECT_DATE_AUTHORED, PropertyKeys.WPD_OBJECT_DATE_AUTHORED);
            knownKeys.Add(PropertyNames.OBJECT_DATE_CREATED, PropertyKeys.WPD_OBJECT_DATE_CREATED);
            knownKeys.Add(PropertyNames.OBJECT_MODIFIED, PropertyKeys.WPD_OBJECT_DATE_MODIFIED);
            knownKeys.Add(PropertyNames.OBJECT_FORMAT, PropertyKeys.WPD_OBJECT_FORMAT);
            knownKeys.Add(PropertyNames.OBJECT_DRM_PROTECTED, PropertyKeys.WPD_OBJECT_IS_DRM_PROTECTED);
            knownKeys.Add(PropertyNames.OBJECT_FILENAME, PropertyKeys.WPD_OBJECT_ORIGINAL_FILE_NAME);
            knownKeys.Add(PropertyNames.OBJECT_NAME, PropertyKeys.WPD_OBJECT_NAME);
            knownKeys.Add(PropertyNames.OBJECT_PERSISTENT_ID, PropertyKeys.WPD_OBJECT_PERSISTENT_UNIQUE_ID);
            knownKeys.Add(PropertyNames.OBJECT_TOTAL_BITRATE, PropertyKeys.WPD_MEDIA_TOTAL_BITRATE);
            knownKeys.Add(PropertyNames.OBJECT_SKIP_COUNT, PropertyKeys.WPD_MEDIA_SKIP_COUNT);
            knownKeys.Add(PropertyNames.OBJECT_SAMPLE_RATE, PropertyKeys.WPD_MEDIA_SAMPLE_RATE);
            knownKeys.Add(PropertyNames.OBJECT_RELEASE_DATE, PropertyKeys.WPD_MEDIA_RELEASE_DATE);
            knownKeys.Add(PropertyNames.OBJECT_LAST_BUILD_DATE, PropertyKeys.WPD_MEDIA_LAST_BUILD_DATE);
            knownKeys.Add(PropertyNames.OBJECT_LAST_ACCESSED_TIME, PropertyKeys.WPD_MEDIA_LAST_ACCESSED_TIME);
            knownKeys.Add(PropertyNames.OBJECT_BITRATE_TYPE, PropertyKeys.WPD_MEDIA_BITRATE_TYPE);
            knownKeys.Add(PropertyNames.OBJECT_ALBUM_ART, PropertyKeys.WPD_RESOURCE_ALBUM_ART);
            knownKeys.Add(PropertyNames.DEVICE_FIRMWARE_VERSION, PropertyKeys.WPD_DEVICE_FIRMWARE_VERSION);
            knownKeys.Add(PropertyNames.DEVICE_FRIENDLY_NAME, PropertyKeys.WPD_DEVICE_FRIENDLY_NAME);
            knownKeys.Add(PropertyNames.DEVICE_MANUFACTURER, PropertyKeys.WPD_DEVICE_MANUFACTURER);
            knownKeys.Add(PropertyNames.DEVICE_MODEL, PropertyKeys.WPD_DEVICE_MODEL);
            knownKeys.Add(PropertyNames.DEVICE_BATTERY_LEVEL, PropertyKeys.WPD_DEVICE_POWER_LEVEL);
            knownKeys.Add(PropertyNames.DEVICE_POWER_SOURCE, PropertyKeys.WPD_DEVICE_POWER_SOURCE);
            knownKeys.Add(PropertyNames.DEVICE_SERIAL_NUMBER, PropertyKeys.WPD_DEVICE_SERIAL_NUMBER);
            knownKeys.Add(PropertyNames.OBJECT_CONTENT_TYPE, PropertyKeys.WPD_OBJECT_CONTENT_TYPE);

            foreach (DictionaryEntry entry in knownKeys)
            {
                PortableDeviceApiLib._tagpropertykey propertyKey = (PortableDeviceApiLib._tagpropertykey)entry.Value;

                if (propertyKey.pid == pid && propertyKey.fmtid == fmtid)
                {
                    return((string)entry.Key);
                }
            }
            return(pid.ToString() + " " + fmtid.ToString());
        }
Ejemplo n.º 13
0
        public static bool HasKeyValue(this IPortableDeviceValues values, PropertyKey findKey)
        {
            uint num = 0;

            values?.GetCount(ref num);
            for (uint i = 0; i < num; i++)
            {
                PropertyKey key = new PropertyKey();
                PROPVARIANT val = new PROPVARIANT();
                values.GetAt(i, ref key, ref val);
                if (key.fmtid == findKey.fmtid && key.pid == findKey.pid)
                {
                    PropVariant pval = val;
                    return(pval.variantType != VarType.VT_ERROR);
                }
            }
            return(false);
        }
Ejemplo n.º 14
0
 public static bool TryGetUnsignedIntegerValue(this IPortableDeviceValues values, PropertyKey key, out uint value)
 {
     if (values.HasKeyValue(key))
     {
         values.GetUnsignedIntegerValue(key, out value);
         return(true);
     }
     value = 0;
     return(false);
 }
Ejemplo n.º 15
0
        public static List<PortableDeviceFileClass> getFiles()
        {
            List<PortableDeviceFileClass> result = new List<PortableDeviceFileClass>();

            if (gopro == null)
                return result;

            //ne e toj device
            if (gopro.DeviceId != currentDeviceId)
                return result;


            var root = gopro.GetContents();


            var filesOnDevice = from f in root.Files select f;


            foreach (var file in filesOnDevice)
            {
                if (file is PortableDeviceFile)
                    files.Add(file as PortableDeviceFile);
                else if (file is PortableDeviceFolder)
                    GetAllFilesFromFolder(file as PortableDeviceFolder);
            }


            PortableDeviceApiLib.IPortableDeviceContent pContent;
            gopro.PortableDeviceClass.Content(out pContent);

            PortableDeviceApiLib.IPortableDeviceProperties pProperties;
            pContent.Properties(out pProperties);



            if (files.Count > 0)
                foreach (PortableDeviceFile file in files)
                {
                    PortableDeviceApiLib.IPortableDeviceKeyCollection keys;
                    pProperties.GetSupportedProperties(file.Id, out keys);


                    PortableDeviceApiLib.IPortableDeviceValues values;
                    pProperties.GetValues(file.Id, keys, out values);

                    string name = string.Empty;
                    var property = new PortableDeviceApiLib._tagpropertykey();
                    property.fmtid = new Guid(0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C);
                    property.pid = 12;
                    try
                    {
                        values.GetStringValue(property, out name);
                    }
                    catch (Exception ex) { name = string.Empty; } //OVDE DA SE NAPRAVI NESHTO


                    string createdOn = string.Empty;
                    property = new PortableDeviceApiLib._tagpropertykey();
                    property.fmtid = new Guid(0xEF6B490D, 0x5CD8, 0x437A, 0xAF, 0xFC, 0xDA, 0x8B, 0x60, 0xEE, 0x4A, 0x3C);
                    property.pid = 18;
                    try
                    {
                        values.GetStringValue(property, out createdOn);
                    }
                    catch (Exception ex) { createdOn = string.Empty; } //OVDE DA SE NAPRAVI NESHTO

                    if (name.ToLower().EndsWith(".mp4"))
                        result.Add(new PortableDeviceFileClass() { CreatedOn = string.IsNullOrEmpty(createdOn) ? new DateTime?() : DateTime.Parse(createdOn), Location = System.IO.File.Exists(name) ? name : string.Empty, Name = name, PortableDeviceFileObject = file });
                }


            return result;
        }
Ejemplo n.º 16
0
        static PortableDeviceApiLib._tagpropertykey genTagPropertyKey(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k, uint pid )
        {
            PortableDeviceApiLib._tagpropertykey value =
                new PortableDeviceApiLib._tagpropertykey();

            value.fmtid = new Guid(a, b, c, d, e, f, g, h, i, j, k);
            value.pid = pid;

            return value;
        }
 internal static string GetKeyNameFromPropkey(_tagpropertykey propertyKey)
 {
     var query = (from value in _values
                 where (propertyKey.pid == value.Value.pid) && (propertyKey.fmtid == value.Value.fmtid)
                 select value.Key);
     return query.First() ?? (propertyKey.pid + " " + propertyKey.fmtid);
 }
        public static string GetNameFromGuid(_tagpropertykey key, tag_inner_PROPVARIANT values)
        {
            var pValues = (IPortableDeviceValues) new PortableDeviceValuesClass();
            string contentTypeName;

            pValues.SetValue(ref key, ref values);
            pValues.GetStringValue(ref key, out contentTypeName);

            return contentTypeName;
        }