diff options
author | Andreas Lillvik <andreas.lillvik@sonyericsson.com> | 2010-11-23 13:33:35 +0100 |
---|---|---|
committer | Kenneth Andersson <kenneth.andersson@sonymobile.com> | 2012-09-06 11:02:18 +0200 |
commit | 9a86c64066a908e8ec2863c047b10532c3197397 (patch) | |
tree | 3168e80d058e8a4572c123584a4e5af6f49fbacf /arm-wt-22k/lib_src | |
parent | 09a0c67023c010aec72faa71f116199da4b0f39e (diff) | |
download | android_external_sonivox-9a86c64066a908e8ec2863c047b10532c3197397.tar.gz android_external_sonivox-9a86c64066a908e8ec2863c047b10532c3197397.tar.bz2 android_external_sonivox-9a86c64066a908e8ec2863c047b10532c3197397.zip |
Added support for parsing XMF versions 1.00 and 1.01 headers
The parser will parse only parse file type and revision level when
parsing XMF version 2.00 headers.
XMF versions 1.00 and 1.01 doesn't support file type and revision
level in the headers.
Change-Id: I883c9e78179fac45db4ab3c4e3d0cbbb2df4899b
Diffstat (limited to 'arm-wt-22k/lib_src')
-rw-r--r-- | arm-wt-22k/lib_src/eas_xmf.c | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/arm-wt-22k/lib_src/eas_xmf.c b/arm-wt-22k/lib_src/eas_xmf.c index 0a92425..05b329e 100644 --- a/arm-wt-22k/lib_src/eas_xmf.c +++ b/arm-wt-22k/lib_src/eas_xmf.c @@ -43,6 +43,8 @@ /* XMF header file type */ #define XMF_IDENTIFIER 0x584d465f +#define XMF_VERSION_1_00 0x312e3030 +#define XMF_VERSION_1_01 0x312e3031 #define XMF_VERSION_2_00 0x322e3030 #define XMF_FILE_TYPE 0x00000002 #define XMF_SPEC_LEVEL 0x00000001 @@ -126,27 +128,36 @@ static EAS_RESULT XMF_CheckFileType (S_EAS_DATA *pEASData, EAS_FILE_HANDLE fileH /* read the version */ if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) return result; - if (temp != XMF_VERSION_2_00) - { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file version was 0x%08x, expected 0x%08x\n", temp, XMF_VERSION_2_00); */ } - return EAS_SUCCESS; - } - /* read the file type */ - if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) - return result; - if (temp != XMF_FILE_TYPE) + if (temp == XMF_VERSION_2_00) { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file type was 0x%08x, expected 0x%08x\n", temp, XMF_FILE_TYPE); */ } - return EAS_SUCCESS; - } + /* read the file type */ + result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE); + if (result != EAS_SUCCESS) + return result; - /* read the spec level */ - if ((result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE)) != EAS_SUCCESS) - return result; - if (temp != XMF_SPEC_LEVEL) + if (temp != XMF_FILE_TYPE) + { + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, + "XMF file type was 0x%08x, expected 0x%08x\n", temp, XMF_FILE_TYPE); */ } + return EAS_SUCCESS; + } + + /* read the spec level */ + result = EAS_HWGetDWord(pEASData->hwInstData, fileHandle, &temp, EAS_TRUE); + if (result != EAS_SUCCESS) + return result; + + if (temp != XMF_SPEC_LEVEL) + { + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, + "XMF file spec was 0x%08x, expected 0x%08x\n", temp, XMF_SPEC_LEVEL); */ } + return EAS_SUCCESS; + } + } + else if (temp != XMF_VERSION_1_00 && temp != XMF_VERSION_1_01) { - { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file spec was 0x%08x, expected 0x%08x\n", temp, XMF_SPEC_LEVEL); */ } + { /* dpp: EAS_ReportEx(_EAS_SEVERITY_ERROR, "XMF file version was 0x%08x\n", temp); */ } return EAS_SUCCESS; } |