khronosfws/openmax_al/src/metadataextractor/xametadataextractor.c
author hgs
Fri, 11 Jun 2010 19:59:23 -0500
changeset 25 6f7ceef7b1d1
parent 19 4a629bc82c5e
child 33 5e8b14bae8c3
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
25
hgs
parents: 19
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 19
diff changeset
     3
 * All rights reserved.
hgs
parents: 19
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents: 19
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents: 19
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents: 19
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 19
diff changeset
     8
 *
hgs
parents: 19
diff changeset
     9
 * Initial Contributors:
hgs
parents: 19
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents: 19
diff changeset
    11
 *
hgs
parents: 19
diff changeset
    12
 * Contributors:
hgs
parents: 19
diff changeset
    13
 *
hgs
parents: 19
diff changeset
    14
 * Description: Metadata Extractor Object Impl
hgs
parents: 19
diff changeset
    15
 *
hgs
parents: 19
diff changeset
    16
 */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <stdio.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <stdlib.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <assert.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "xametadataextractor.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "xadynamicsourceitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "xadynintmgmtitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "xametadataextractionitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "xametadatatraversalitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "xaconfigextensionsitf.h"
19
hgs
parents: 12
diff changeset
    27
hgs
parents: 12
diff changeset
    28
#include "xametadataadaptctx.h"
hgs
parents: 12
diff changeset
    29
#include "xacapabilitiesmgr.h"
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include "xathreadsafety.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
19
hgs
parents: 12
diff changeset
    32
#include "xaadaptationmmf.h"
hgs
parents: 12
diff changeset
    33
#include "xametadataadaptctxmmf.h"
hgs
parents: 12
diff changeset
    34
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
/* Static mapping of enumeration XAMetadataInterfaces to interface iids */
25
hgs
parents: 19
diff changeset
    36
static const XAInterfaceID* xaMetadataExtractorItfIIDs[MDE_ITFCOUNT] =
hgs
parents: 19
diff changeset
    37
    {
hgs
parents: 19
diff changeset
    38
            &XA_IID_OBJECT,
hgs
parents: 19
diff changeset
    39
            &XA_IID_DYNAMICINTERFACEMANAGEMENT,
hgs
parents: 19
diff changeset
    40
            &XA_IID_METADATAEXTRACTION,
hgs
parents: 19
diff changeset
    41
            &XA_IID_METADATATRAVERSAL,
hgs
parents: 19
diff changeset
    42
            &XA_IID_CONFIGEXTENSION,
hgs
parents: 19
diff changeset
    43
            &XA_IID_DYNAMICSOURCE
hgs
parents: 19
diff changeset
    44
    };
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
 * Global methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
/* XAResult XAMetadataExtractorImpl_Create
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
 * Description: Create object
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
 * Add this method to XAGlobals.h
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
 */
19
hgs
parents: 12
diff changeset
    54
XAresult XAMetadataExtractorImpl_Create(FrameworkMap* mapper,
25
hgs
parents: 19
diff changeset
    55
        XACapabilities* capabilities, XAObjectItf *pMetadataExtractor,
hgs
parents: 19
diff changeset
    56
        XADataSource *pDataSource, XAuint32 numInterfaces,
hgs
parents: 19
diff changeset
    57
        const XAInterfaceID * pInterfaceIds,
hgs
parents: 19
diff changeset
    58
        const XAboolean * pInterfaceRequired)
hgs
parents: 19
diff changeset
    59
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    XAMetadataExtractorImpl* pImpl = NULL;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
    XAObjectItfImpl* pBaseObj = NULL;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    XAuint8 itfIndex = 0;
19
hgs
parents: 12
diff changeset
    63
    FWMgrFwType fwType;
25
hgs
parents: 19
diff changeset
    64
    const char *uri = NULL;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
    XAresult res = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
    DEBUG_API("->XAMetadataExtractorImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
    XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
25
hgs
parents: 19
diff changeset
    70
    if (!pMetadataExtractor)
hgs
parents: 19
diff changeset
    71
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
        XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
        /* invalid parameter */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
        DEBUG_API("<-XAMetadataExtractorImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
    77
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
25
hgs
parents: 19
diff changeset
    79
    res = XACommon_CheckDataSource(pDataSource, NULL);
hgs
parents: 19
diff changeset
    80
    if (res != XA_RESULT_SUCCESS)
hgs
parents: 19
diff changeset
    81
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
        XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
        DEBUG_API("<-XAMetadataExtractorImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
        return res;
25
hgs
parents: 19
diff changeset
    85
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    /* instantiate object implementation */
25
hgs
parents: 19
diff changeset
    88
    pImpl = (XAMetadataExtractorImpl*) calloc(1,
hgs
parents: 19
diff changeset
    89
            sizeof(XAMetadataExtractorImpl));
hgs
parents: 19
diff changeset
    90
    if (!pImpl)
hgs
parents: 19
diff changeset
    91
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
        XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
        DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
        /* memory allocation failed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
        DEBUG_API("<-XAMetadataExtractorImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
        return XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 19
diff changeset
    97
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    pBaseObj = &pImpl->baseObj;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    /* Initialize base object default implementation */
25
hgs
parents: 19
diff changeset
   101
    XAObjectItfImpl_Init(pBaseObj, MDE_ITFCOUNT, xaMetadataExtractorItfIIDs,
hgs
parents: 19
diff changeset
   102
            XAMetadataExtractorImpl_DoRealize,
hgs
parents: 19
diff changeset
   103
            XAMetadataExtractorImpl_DoResume,
hgs
parents: 19
diff changeset
   104
            XAMetadataExtractorImpl_FreeResources);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    /* Mark interfaces that need to be exposed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    /* Implicit and mandated interfaces */
25
hgs
parents: 19
diff changeset
   108
    pBaseObj->interfaceMap[MDE_METADATAEXTRACTIONITF].required
hgs
parents: 19
diff changeset
   109
            = XA_BOOLEAN_TRUE;
hgs
parents: 19
diff changeset
   110
    pBaseObj->interfaceMap[MDE_METADATATRAVERSALITF].required
hgs
parents: 19
diff changeset
   111
            = XA_BOOLEAN_TRUE;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    pBaseObj->interfaceMap[MDE_DYNAMICSOURCEITF].required = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
    pBaseObj->interfaceMap[MDE_DIMITF].required = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    /* Explicit interfaces */
25
hgs
parents: 19
diff changeset
   116
    if ((numInterfaces != 0) && pInterfaceIds && pInterfaceRequired)
hgs
parents: 19
diff changeset
   117
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
        /* Check required interfaces */
25
hgs
parents: 19
diff changeset
   119
        for (itfIndex = 0; itfIndex < numInterfaces; itfIndex++)
hgs
parents: 19
diff changeset
   120
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
            /* If mapEntry is null then required interface is not supported.*/
25
hgs
parents: 19
diff changeset
   122
            XAObjItfMapEntry *entry = XAObjectItfImpl_GetItfEntry(
hgs
parents: 19
diff changeset
   123
                    (XAObjectItf) &(pBaseObj), pInterfaceIds[itfIndex]);
hgs
parents: 19
diff changeset
   124
            if (!entry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
                {
25
hgs
parents: 19
diff changeset
   126
                if (pInterfaceRequired[itfIndex])
hgs
parents: 19
diff changeset
   127
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
                    /* required interface cannot be accommodated - fail creation */
25
hgs
parents: 19
diff changeset
   129
                    XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
                    XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
                    DEBUG_ERR("Required interface not found - abort creation!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
                    DEBUG_API("<-XAMetadataExtractorImpl_Create");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
                    return XA_RESULT_FEATURE_UNSUPPORTED;
25
hgs
parents: 19
diff changeset
   134
                    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
                else
25
hgs
parents: 19
diff changeset
   136
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
                    DEBUG_INFO("Requested (not required) interface not found - continue creation");
25
hgs
parents: 19
diff changeset
   138
                    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
                }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
            else
25
hgs
parents: 19
diff changeset
   141
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
                entry->required = XA_BOOLEAN_TRUE;
25
hgs
parents: 19
diff changeset
   143
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
19
hgs
parents: 12
diff changeset
   147
    // Mark interfaces that can be handled dynamically 
25
hgs
parents: 19
diff changeset
   148
    pBaseObj->interfaceMap[MDE_CONFIGEXTENSIONITF].isDynamic
hgs
parents: 19
diff changeset
   149
            = XA_BOOLEAN_TRUE;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
25
hgs
parents: 19
diff changeset
   151
    //Set ObjectItf to point to newly created object 
hgs
parents: 19
diff changeset
   152
    *pMetadataExtractor = (XAObjectItf) &(pBaseObj->self);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
25
hgs
parents: 19
diff changeset
   154
    //store member variables
hgs
parents: 19
diff changeset
   155
    pImpl->dataSrc = pDataSource;
19
hgs
parents: 12
diff changeset
   156
25
hgs
parents: 19
diff changeset
   157
    /* Determine framework type that can handle recording */
hgs
parents: 19
diff changeset
   158
    fwType = (FWMgrFwType) FWMgrMOUnknown;
19
hgs
parents: 12
diff changeset
   159
    /**/
hgs
parents: 12
diff changeset
   160
    if (pDataSource->pLocator)
25
hgs
parents: 19
diff changeset
   161
        {
hgs
parents: 19
diff changeset
   162
        XADataLocator_URI* dataLoc =
hgs
parents: 19
diff changeset
   163
                (XADataLocator_URI*) pDataSource->pLocator;
19
hgs
parents: 12
diff changeset
   164
        if (dataLoc->locatorType == XA_DATALOCATOR_URI)
25
hgs
parents: 19
diff changeset
   165
            {
hgs
parents: 19
diff changeset
   166
            uri = (char*) dataLoc->URI;
hgs
parents: 19
diff changeset
   167
            }
19
hgs
parents: 12
diff changeset
   168
        }
25
hgs
parents: 19
diff changeset
   169
19
hgs
parents: 12
diff changeset
   170
    fwType = XAFrameworkMgr_GetFramework(mapper, uri, FWMgrMOPlayer);
hgs
parents: 12
diff changeset
   171
hgs
parents: 12
diff changeset
   172
    if (fwType == FWMgrMOUnknown)
25
hgs
parents: 19
diff changeset
   173
        {
hgs
parents: 19
diff changeset
   174
        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
19
hgs
parents: 12
diff changeset
   175
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer );
hgs
parents: 12
diff changeset
   176
        DEBUG_API("<-XAMetadataExtractorImpl_Create");
hgs
parents: 12
diff changeset
   177
        return XA_RESULT_CONTENT_UNSUPPORTED;
25
hgs
parents: 19
diff changeset
   178
        }
hgs
parents: 19
diff changeset
   179
hgs
parents: 19
diff changeset
   180
    if (fwType == FWMgrFWMMF)
hgs
parents: 19
diff changeset
   181
        {
19
hgs
parents: 12
diff changeset
   182
        pImpl->adaptationCtxMMF = XAMetadataAdaptCtxMMF_Create(pDataSource);
25
hgs
parents: 19
diff changeset
   183
hgs
parents: 19
diff changeset
   184
        pImpl->curAdaptCtx = pImpl->adaptationCtxMMF;
hgs
parents: 19
diff changeset
   185
        }
19
hgs
parents: 12
diff changeset
   186
    else
25
hgs
parents: 19
diff changeset
   187
        {
hgs
parents: 19
diff changeset
   188
        // Create metadata adaptation context 
hgs
parents: 19
diff changeset
   189
        pImpl->adaptationCtxGst = XAMetadataAdaptCtx_Create(pDataSource);
hgs
parents: 19
diff changeset
   190
hgs
parents: 19
diff changeset
   191
        pImpl->curAdaptCtx = pImpl->adaptationCtxGst;
hgs
parents: 19
diff changeset
   192
        }
19
hgs
parents: 12
diff changeset
   193
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
    XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
    DEBUG_API("<-XAMetadataExtractorImpl_Create");
19
hgs
parents: 12
diff changeset
   196
    return XA_RESULT_SUCCESS;
25
hgs
parents: 19
diff changeset
   197
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
/* XAResult XAMetadataExtractorImpl_QueryNumSupportedInterfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
 * Description: Statically query number of supported interfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
XAresult XAMetadataExtractorImpl_QueryNumSupportedInterfaces(
25
hgs
parents: 19
diff changeset
   203
        XAuint32 *pNumSupportedInterfaces)
hgs
parents: 19
diff changeset
   204
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    XAresult res = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    DEBUG_API("->XAMetadataExtractorImpl_QueryNumSupportedInterfaces");
25
hgs
parents: 19
diff changeset
   207
    if (pNumSupportedInterfaces)
hgs
parents: 19
diff changeset
   208
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
        *pNumSupportedInterfaces = MDE_ITFCOUNT;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
        res = XA_RESULT_SUCCESS;
25
hgs
parents: 19
diff changeset
   211
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    else
25
hgs
parents: 19
diff changeset
   213
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
        res = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   216
        }DEBUG_API_A1("<-XAMetadataExtractorImpl_QueryNumSupportedInterfaces (%d)", (int)res);
hgs
parents: 19
diff changeset
   217
    return res;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
/* XAResult XAMetadataExtractorImpl_QuerySupportedInterfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
 * Description: Statically query supported interfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
 */
25
hgs
parents: 19
diff changeset
   222
XAresult XAMetadataExtractorImpl_QuerySupportedInterfaces(XAuint32 index,
hgs
parents: 19
diff changeset
   223
        XAInterfaceID * pInterfaceId)
hgs
parents: 19
diff changeset
   224
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
    XAresult res = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
    DEBUG_API("->XAMetadataExtractorImpl_QuerySupportedInterfaces");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
25
hgs
parents: 19
diff changeset
   228
    if (index >= MDE_ITFCOUNT || !pInterfaceId)
hgs
parents: 19
diff changeset
   229
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
        res = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   232
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
    else
25
hgs
parents: 19
diff changeset
   234
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
        *pInterfaceId = *(xaMetadataExtractorItfIIDs[index]);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
        res = XA_RESULT_SUCCESS;
25
hgs
parents: 19
diff changeset
   237
        }DEBUG_API_A1("<-XAMetadataExtractorImpl_QuerySupportedInterfaces (%d)", (int)res);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    return res;
25
hgs
parents: 19
diff changeset
   239
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
 * base object XAObjectItfImpl methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
/* XAresult XAMetadataExtractorImpl_DoRealize( XAObjectItf self )
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
 * Description: Realize all implicit and explicitly wanted interfaces.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
 * Create and initialize implementation-specific variables.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
 * Called from base object XAObjectItfImpl
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
 */
25
hgs
parents: 19
diff changeset
   250
XAresult XAMetadataExtractorImpl_DoRealize(XAObjectItf self)
hgs
parents: 19
diff changeset
   251
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
    XAuint8 itfIdx = 0;
25
hgs
parents: 19
diff changeset
   253
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 19
diff changeset
   254
    XAMetadataExtractorImpl* pObjImpl = (XAMetadataExtractorImpl*) (pObj);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    void *pItf = NULL;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    DEBUG_API("->XAMetadataExtractorImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
    XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
    /* check casting from correct pointer type */
25
hgs
parents: 19
diff changeset
   262
    if (!pObjImpl || pObj != pObjImpl->baseObj.self)
hgs
parents: 19
diff changeset
   263
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
        XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
        /* invalid parameter */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
        DEBUG_API("<-XAMetadataExtractorImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   269
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
    /* Realize all implicit and explicitly wanted interfaces */
25
hgs
parents: 19
diff changeset
   272
    for (itfIdx = 0; itfIdx < MDE_ITFCOUNT; itfIdx++)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
        {
25
hgs
parents: 19
diff changeset
   274
        if (!(pObj->interfaceMap[itfIdx].pItf)
hgs
parents: 19
diff changeset
   275
                && pObj->interfaceMap[itfIdx].required)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
            {
25
hgs
parents: 19
diff changeset
   277
            switch (itfIdx)
hgs
parents: 19
diff changeset
   278
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
                case MDE_DIMITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
                    pItf = XADIMItfImpl_Create();
25
hgs
parents: 19
diff changeset
   281
                    if (pItf)
hgs
parents: 19
diff changeset
   282
                        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
                        XADIMItfImpl_Init(pItf, self,
25
hgs
parents: 19
diff changeset
   284
                                XAMetadataExtractorImpl_DoAddItf,
hgs
parents: 19
diff changeset
   285
                                XAMetadataExtractorImpl_DoResumeItf,
hgs
parents: 19
diff changeset
   286
                                XAMetadataExtractorImpl_DoRemoveItf);
hgs
parents: 19
diff changeset
   287
                        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
                    break;
19
hgs
parents: 12
diff changeset
   289
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
                case MDE_METADATAEXTRACTIONITF:
25
hgs
parents: 19
diff changeset
   291
                    pItf = XAMetadataExtractionItfImpl_Create(
hgs
parents: 19
diff changeset
   292
                            pObjImpl->curAdaptCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
                case MDE_METADATATRAVERSALITF:
25
hgs
parents: 19
diff changeset
   295
                    pItf = XAMetadataTraversalItfImpl_Create(
hgs
parents: 19
diff changeset
   296
                            pObjImpl->curAdaptCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
                case MDE_CONFIGEXTENSIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
                    pItf = XAConfigExtensionsItfImpl_Create();
25
hgs
parents: 19
diff changeset
   300
                    XAConfigExtensionsItfImpl_SetContext(pItf,
hgs
parents: 19
diff changeset
   301
                            pObjImpl->curAdaptCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
                case MDE_DYNAMICSOURCEITF:
25
hgs
parents: 19
diff changeset
   304
                    pItf = XADynamicSourceItfImpl_Create(
hgs
parents: 19
diff changeset
   305
                            pObjImpl->curAdaptCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
                    break;
19
hgs
parents: 12
diff changeset
   307
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
                default:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
                    break;
25
hgs
parents: 19
diff changeset
   310
                }
hgs
parents: 19
diff changeset
   311
            if (!pItf)
hgs
parents: 19
diff changeset
   312
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
                XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
                DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
                /* memory allocation failed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
                DEBUG_API("<-XAMetadataExtractorImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
                return XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 19
diff changeset
   318
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
            else
25
hgs
parents: 19
diff changeset
   320
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
                pObj->interfaceMap[itfIdx].pItf = pItf;
25
hgs
parents: 19
diff changeset
   322
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
    /*Initialize adaptation context*/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    /* init adaptation */
19
hgs
parents: 12
diff changeset
   327
25
hgs
parents: 19
diff changeset
   328
    if (pObjImpl->curAdaptCtx->fwtype == FWMgrFWMMF)
hgs
parents: 19
diff changeset
   329
        {
hgs
parents: 19
diff changeset
   330
        ret = XAMetadataAdaptCtxMMF_PostInit(
hgs
parents: 19
diff changeset
   331
                (XAAdaptationMMFCtx*) pObjImpl->adaptationCtxMMF);
hgs
parents: 19
diff changeset
   332
        }
19
hgs
parents: 12
diff changeset
   333
    else
25
hgs
parents: 19
diff changeset
   334
        {
hgs
parents: 19
diff changeset
   335
        ret = XAMetadataAdaptCtx_PostInit(
hgs
parents: 19
diff changeset
   336
                (XAAdaptationGstCtx*) pObjImpl->adaptationCtxGst);
hgs
parents: 19
diff changeset
   337
        }
19
hgs
parents: 12
diff changeset
   338
25
hgs
parents: 19
diff changeset
   339
    if (ret != XA_RESULT_SUCCESS)
hgs
parents: 19
diff changeset
   340
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
        XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
        DEBUG_ERR("Adaptation init failed!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
        DEBUG_API("<-XAMetadataExtractorImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
        return ret;
25
hgs
parents: 19
diff changeset
   345
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
    pObj->state = XA_OBJECT_STATE_REALIZED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
    XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
    DEBUG_API("<-XAMetadataExtractorImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
    return XA_RESULT_SUCCESS;
25
hgs
parents: 19
diff changeset
   350
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
/* XAresult XAMetadataExtractorImpl_DoResume
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
 * Description: Resume object from suspended state
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
XAresult XAMetadataExtractorImpl_DoResume(XAObjectItf self)
25
hgs
parents: 19
diff changeset
   356
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
    DEBUG_API("->XAMetadataExtractorImpl_DoResume");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
    DEBUG_API("<-XAMetadataExtractorImpl_DoResume");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
    /* "suspended" state not supported by this implementation */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
    return XA_RESULT_PRECONDITIONS_VIOLATED;
25
hgs
parents: 19
diff changeset
   361
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
/* void XAMetadataExtractorImpl_FreeResources
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
 * Description: Free all resources reserved at XAMetadataExtractorImpl_DoRealize()
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
void XAMetadataExtractorImpl_FreeResources(XAObjectItf self)
25
hgs
parents: 19
diff changeset
   367
    {
hgs
parents: 19
diff changeset
   368
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 19
diff changeset
   369
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
    XAuint8 itfIdx = 0;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
    void *pItf = NULL;
25
hgs
parents: 19
diff changeset
   372
    XAMetadataExtractorImpl* pImpl = (XAMetadataExtractorImpl*) (*self);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
    DEBUG_API("->XAMetadataExtractorImpl_FreeResources");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
    XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS(XATSMediaPlayer);
19
hgs
parents: 12
diff changeset
   375
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
    assert( pObj && pImpl && pObj == pObj->self );
19
hgs
parents: 12
diff changeset
   377
25
hgs
parents: 19
diff changeset
   378
    for (itfIdx = 0; itfIdx < MDE_ITFCOUNT; itfIdx++)
hgs
parents: 19
diff changeset
   379
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
        pItf = pObj->interfaceMap[itfIdx].pItf;
25
hgs
parents: 19
diff changeset
   381
        if (pItf)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
            {
25
hgs
parents: 19
diff changeset
   383
            switch (itfIdx)
hgs
parents: 19
diff changeset
   384
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
                case MDE_METADATAEXTRACTIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
                    XAMetadataExtractionItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
                case MDE_METADATATRAVERSALITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
                    XAMetadataTraversalItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
                case MDE_DYNAMICSOURCEITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
                    XADynamicSourceItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
                case MDE_DIMITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   395
                    XADIMItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
                case MDE_CONFIGEXTENSIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
                    XAConfigExtensionsItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
                    break;
25
hgs
parents: 19
diff changeset
   400
                }
hgs
parents: 19
diff changeset
   401
            pObj->interfaceMap[itfIdx].pItf = NULL;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
        }
25
hgs
parents: 19
diff changeset
   404
hgs
parents: 19
diff changeset
   405
    if (pImpl->curAdaptCtx)
hgs
parents: 19
diff changeset
   406
        {
hgs
parents: 19
diff changeset
   407
        if (pImpl->curAdaptCtx->fwtype == FWMgrFWMMF)
hgs
parents: 19
diff changeset
   408
            {
hgs
parents: 19
diff changeset
   409
            XAMetadataAdaptCtxMMF_Destroy(
hgs
parents: 19
diff changeset
   410
                    (XAAdaptationMMFCtx*) pImpl->adaptationCtxMMF);
hgs
parents: 19
diff changeset
   411
            pImpl->adaptationCtxMMF = NULL;
hgs
parents: 19
diff changeset
   412
            }
hgs
parents: 19
diff changeset
   413
        else
hgs
parents: 19
diff changeset
   414
            {
hgs
parents: 19
diff changeset
   415
            XAMetadataAdaptCtx_Destroy(
hgs
parents: 19
diff changeset
   416
                    (XAAdaptationGstCtx*) pImpl->adaptationCtxGst);
hgs
parents: 19
diff changeset
   417
            pImpl->adaptationCtxGst = NULL;
hgs
parents: 19
diff changeset
   418
            }
hgs
parents: 19
diff changeset
   419
        }
hgs
parents: 19
diff changeset
   420
hgs
parents: 19
diff changeset
   421
    pImpl->curAdaptCtx = NULL;
19
hgs
parents: 12
diff changeset
   422
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
    XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS(XATSMediaPlayer);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
    DEBUG_API("<-XAMetadataExtractorImpl_FreeResources");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
    return;
25
hgs
parents: 19
diff changeset
   426
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
 * MetadataExtractorImpl -specific methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
/* XAMetadataExtractorImpl_DoAddItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
 * Dynamically add an interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
 */
25
hgs
parents: 19
diff changeset
   435
XAresult XAMetadataExtractorImpl_DoAddItf(XAObjectItf self,
hgs
parents: 19
diff changeset
   436
        XAObjItfMapEntry *mapEntry)
hgs
parents: 19
diff changeset
   437
    {
19
hgs
parents: 12
diff changeset
   438
25
hgs
parents: 19
diff changeset
   439
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 19
diff changeset
   440
    XAMetadataExtractorImpl* pImpl = (XAMetadataExtractorImpl*) (pObj);
19
hgs
parents: 12
diff changeset
   441
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
    DEBUG_API("->XAMetadataExtractorImpl_DoAddItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
25
hgs
parents: 19
diff changeset
   445
    if (mapEntry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
        {
25
hgs
parents: 19
diff changeset
   447
        switch (mapEntry->mapIdx)
hgs
parents: 19
diff changeset
   448
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
            case MDE_CONFIGEXTENSIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
                mapEntry->pItf = XAConfigExtensionsItfImpl_Create();
19
hgs
parents: 12
diff changeset
   451
25
hgs
parents: 19
diff changeset
   452
                XAConfigExtensionsItfImpl_SetContext(mapEntry->pItf,
hgs
parents: 19
diff changeset
   453
                        pImpl->adaptationCtxGst);
19
hgs
parents: 12
diff changeset
   454
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
                break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
            default:
25
hgs
parents: 19
diff changeset
   457
                DEBUG_ERR("XAMetadataExtractorImpl_DoAddItf unknown id")
hgs
parents: 19
diff changeset
   458
                ;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
                ret = XA_RESULT_FEATURE_UNSUPPORTED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
                break;
25
hgs
parents: 19
diff changeset
   461
            }
hgs
parents: 19
diff changeset
   462
        if (!mapEntry->pItf && ret == XA_RESULT_SUCCESS)
hgs
parents: 19
diff changeset
   463
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
            DEBUG_ERR("XAMetadataExtractorImpl_DoAddItf itf creation failed");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
            ret = XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 19
diff changeset
   466
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
    else
25
hgs
parents: 19
diff changeset
   469
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
        ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   471
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
    DEBUG_API("<-XAMetadataExtractorImpl_DoAddItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
    return ret;
25
hgs
parents: 19
diff changeset
   475
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
/* XAMetadataExtractorImpl_DoResumeItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
 * Try to resume lost interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
 */
25
hgs
parents: 19
diff changeset
   480
XAresult XAMetadataExtractorImpl_DoResumeItf(XAObjectItf self,
hgs
parents: 19
diff changeset
   481
        XAObjItfMapEntry *mapEntry)
hgs
parents: 19
diff changeset
   482
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    DEBUG_API("->XAMetadataExtractorImpl_DoResumeItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
    /* For now, no difference between suspended and unrealised itfs */
25
hgs
parents: 19
diff changeset
   486
    ret = XAMetadataExtractorImpl_DoAddItf(self, mapEntry);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
    DEBUG_API("<-XAMetadataExtractorImpl_DoResumeItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
    return ret;
25
hgs
parents: 19
diff changeset
   489
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
/* XAMetadataExtractorImpl_DoRemoveItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
 * Dynamically remove an interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
 */
25
hgs
parents: 19
diff changeset
   494
XAresult XAMetadataExtractorImpl_DoRemoveItf(XAObjectItf self,
hgs
parents: 19
diff changeset
   495
        XAObjItfMapEntry *mapEntry)
hgs
parents: 19
diff changeset
   496
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
    DEBUG_API("->XAMetadataExtractorImpl_DoRemoveItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
    ret = XA_RESULT_SUCCESS;
25
hgs
parents: 19
diff changeset
   500
    if (mapEntry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
        {
25
hgs
parents: 19
diff changeset
   502
        switch (mapEntry->mapIdx)
hgs
parents: 19
diff changeset
   503
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
            case MDE_CONFIGEXTENSIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
                XAConfigExtensionsItfImpl_Free(mapEntry->pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
                break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
            default:
25
hgs
parents: 19
diff changeset
   508
                DEBUG_ERR("XAMetadataExtractorImpl_DoRemoveItf unknown id")
hgs
parents: 19
diff changeset
   509
                ;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
                ret = XA_RESULT_FEATURE_UNSUPPORTED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
                break;
25
hgs
parents: 19
diff changeset
   512
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
        mapEntry->pItf = NULL;
25
hgs
parents: 19
diff changeset
   514
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
    else
25
hgs
parents: 19
diff changeset
   516
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
        ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 19
diff changeset
   518
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
    DEBUG_API("<-XAMetadataExtractorImpl_DoRemoveItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
    return ret;
25
hgs
parents: 19
diff changeset
   521
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
/* END OF FILE */