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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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()); }
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); }
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); }
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; }
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; }