summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Lillvik <andreas.lillvik@sonyericsson.com>2010-11-23 13:33:35 +0100
committerKenneth Andersson <kenneth.andersson@sonymobile.com>2012-09-06 11:02:18 +0200
commit9a86c64066a908e8ec2863c047b10532c3197397 (patch)
tree3168e80d058e8a4572c123584a4e5af6f49fbacf
parent09a0c67023c010aec72faa71f116199da4b0f39e (diff)
downloadandroid_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
-rw-r--r--arm-wt-22k/lib_src/eas_xmf.c45
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;
}