//virtual MtpProperty* MozMtpDatabase::getObjectPropertyDesc(MtpObjectProperty aProperty, MtpObjectFormat aFormat) { MTP_LOG("Property: %s 0x%08x", ObjectPropertyAsStr(aProperty), aProperty); MtpProperty* result = nullptr; switch (aProperty) { case MTP_PROPERTY_PROTECTION_STATUS: result = new MtpProperty(aProperty, MTP_TYPE_UINT16); break; case MTP_PROPERTY_OBJECT_FORMAT: result = new MtpProperty(aProperty, MTP_TYPE_UINT16, false, aFormat); break; case MTP_PROPERTY_STORAGE_ID: case MTP_PROPERTY_PARENT_OBJECT: case MTP_PROPERTY_WIDTH: case MTP_PROPERTY_HEIGHT: case MTP_PROPERTY_IMAGE_BIT_DEPTH: result = new MtpProperty(aProperty, MTP_TYPE_UINT32); break; case MTP_PROPERTY_OBJECT_SIZE: result = new MtpProperty(aProperty, MTP_TYPE_UINT64); break; case MTP_PROPERTY_DISPLAY_NAME: case MTP_PROPERTY_NAME: result = new MtpProperty(aProperty, MTP_TYPE_STR); break; case MTP_PROPERTY_OBJECT_FILE_NAME: result = new MtpProperty(aProperty, MTP_TYPE_STR, true); break; case MTP_PROPERTY_DATE_CREATED: case MTP_PROPERTY_DATE_MODIFIED: case MTP_PROPERTY_DATE_ADDED: result = new MtpProperty(aProperty, MTP_TYPE_STR); result->setFormDateTime(); break; case MTP_PROPERTY_PERSISTENT_UID: result = new MtpProperty(aProperty, MTP_TYPE_UINT128); break; default: break; } return result; }
MtpProperty* MyMtpDatabase::getObjectPropertyDesc(MtpObjectProperty property, MtpObjectFormat format) { MtpProperty* result = NULL; switch (property) { case MTP_PROPERTY_OBJECT_FORMAT: // use format as default value result = new MtpProperty(property, MTP_TYPE_UINT16, false, format); break; case MTP_PROPERTY_PROTECTION_STATUS: case MTP_PROPERTY_TRACK: result = new MtpProperty(property, MTP_TYPE_UINT16); break; case MTP_PROPERTY_STORAGE_ID: case MTP_PROPERTY_PARENT_OBJECT: case MTP_PROPERTY_DURATION: result = new MtpProperty(property, MTP_TYPE_UINT32); break; case MTP_PROPERTY_OBJECT_SIZE: result = new MtpProperty(property, MTP_TYPE_UINT64); break; case MTP_PROPERTY_PERSISTENT_UID: result = new MtpProperty(property, MTP_TYPE_UINT128); break; case MTP_PROPERTY_NAME: case MTP_PROPERTY_DISPLAY_NAME: case MTP_PROPERTY_ARTIST: case MTP_PROPERTY_ALBUM_NAME: case MTP_PROPERTY_ALBUM_ARTIST: case MTP_PROPERTY_GENRE: case MTP_PROPERTY_COMPOSER: case MTP_PROPERTY_DESCRIPTION: result = new MtpProperty(property, MTP_TYPE_STR); break; case MTP_PROPERTY_DATE_MODIFIED: case MTP_PROPERTY_DATE_ADDED: case MTP_PROPERTY_ORIGINAL_RELEASE_DATE: result = new MtpProperty(property, MTP_TYPE_STR); result->setFormDateTime(); break; case MTP_PROPERTY_OBJECT_FILE_NAME: // We allow renaming files and folders result = new MtpProperty(property, MTP_TYPE_STR, true); break; } return result; }