MTP: Add support for some audio specific object properties
This stops Windows 7 from putting up the "Your device might not be able to play or view this file" dialog when copying MP3 files to the device. Bug: 3195286 Change-Id: Ic5b3fb75309893caae1a4f4b56068a543847f1f7
This commit is contained in:
@@ -596,6 +596,11 @@ public class MtpDatabase {
|
||||
MtpConstants.PROPERTY_DURATION,
|
||||
MtpConstants.PROPERTY_GENRE,
|
||||
MtpConstants.PROPERTY_COMPOSER,
|
||||
MtpConstants.PROPERTY_AUDIO_WAVE_CODEC,
|
||||
MtpConstants.PROPERTY_BITRATE_TYPE,
|
||||
MtpConstants.PROPERTY_AUDIO_BITRATE,
|
||||
MtpConstants.PROPERTY_NUMBER_OF_CHANNELS,
|
||||
MtpConstants.PROPERTY_SAMPLE_RATE,
|
||||
};
|
||||
|
||||
static final int[] VIDEO_PROPERTIES = {
|
||||
|
||||
@@ -1000,6 +1000,22 @@ MtpResponseCode MyMtpDatabase::setObjectReferences(MtpObjectHandle handle,
|
||||
|
||||
MtpProperty* MyMtpDatabase::getObjectPropertyDesc(MtpObjectProperty property,
|
||||
MtpObjectFormat format) {
|
||||
static const int channelEnum[] = {
|
||||
1, // mono
|
||||
2, // stereo
|
||||
3, // 2.1
|
||||
4, // 3
|
||||
5, // 3.1
|
||||
6, // 4
|
||||
7, // 4.1
|
||||
8, // 5
|
||||
9, // 5.1
|
||||
};
|
||||
static const int bitrateEnum[] = {
|
||||
1, // fixed rate
|
||||
2, // variable rate
|
||||
};
|
||||
|
||||
MtpProperty* result = NULL;
|
||||
switch (property) {
|
||||
case MTP_PROPERTY_OBJECT_FORMAT:
|
||||
@@ -1013,6 +1029,7 @@ MtpProperty* MyMtpDatabase::getObjectPropertyDesc(MtpObjectProperty property,
|
||||
case MTP_PROPERTY_STORAGE_ID:
|
||||
case MTP_PROPERTY_PARENT_OBJECT:
|
||||
case MTP_PROPERTY_DURATION:
|
||||
case MTP_PROPERTY_AUDIO_WAVE_CODEC:
|
||||
result = new MtpProperty(property, MTP_TYPE_UINT32);
|
||||
break;
|
||||
case MTP_PROPERTY_OBJECT_SIZE:
|
||||
@@ -1041,6 +1058,22 @@ MtpProperty* MyMtpDatabase::getObjectPropertyDesc(MtpObjectProperty property,
|
||||
// We allow renaming files and folders
|
||||
result = new MtpProperty(property, MTP_TYPE_STR, true);
|
||||
break;
|
||||
case MTP_PROPERTY_BITRATE_TYPE:
|
||||
result = new MtpProperty(property, MTP_TYPE_UINT16);
|
||||
result->setFormEnum(bitrateEnum, sizeof(bitrateEnum)/sizeof(bitrateEnum[0]));
|
||||
break;
|
||||
case MTP_PROPERTY_AUDIO_BITRATE:
|
||||
result = new MtpProperty(property, MTP_TYPE_UINT32);
|
||||
result->setFormRange(1, 1536000, 1);
|
||||
break;
|
||||
case MTP_PROPERTY_NUMBER_OF_CHANNELS:
|
||||
result = new MtpProperty(property, MTP_TYPE_UINT16);
|
||||
result->setFormEnum(channelEnum, sizeof(channelEnum)/sizeof(channelEnum[0]));
|
||||
break;
|
||||
case MTP_PROPERTY_SAMPLE_RATE:
|
||||
result = new MtpProperty(property, MTP_TYPE_UINT32);
|
||||
result->setFormRange(8000, 48000, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user