khronosfws/openmax_al/src/mediarecorder/xamediarecorder.c
author hgs
Fri, 11 Jun 2010 19:59:23 -0500
changeset 25 6f7ceef7b1d1
parent 21 2ed61feeead6
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: 21
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 21
diff changeset
     3
 * All rights reserved.
hgs
parents: 21
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents: 21
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents: 21
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents: 21
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 21
diff changeset
     8
 *
hgs
parents: 21
diff changeset
     9
 * Initial Contributors:
hgs
parents: 21
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents: 21
diff changeset
    11
 *
hgs
parents: 21
diff changeset
    12
 * Contributors:
hgs
parents: 21
diff changeset
    13
 *
hgs
parents: 21
diff changeset
    14
 * Description: MediaRecoder Object Impl
hgs
parents: 21
diff changeset
    15
 *
hgs
parents: 21
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 "xamediarecorder.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "xaaudioencoderitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "xaconfigextensionsitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "xadynintmgmtitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "xaequalizeritf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "xaimagecontrolsitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "xaimageeffectsitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "xaimageencoderitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include "xametadatainsertionitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include "xarecorditf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include "xasnapshotitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "xavideoencoderitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include "xavideopostprocessingitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "xavolumeitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "xametadataextractionitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "xametadatatraversalitf.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include "xathreadsafety.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include <string.h>
19
hgs
parents: 12
diff changeset
    39
#include "xacapabilitiesmgr.h"
hgs
parents: 12
diff changeset
    40
#include "xamediarecorderadaptctxmmf.h"
hgs
parents: 12
diff changeset
    41
#include "xamediarecorderadaptctx.h"
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
/* Static mapping of enumeration XAMediaRecorderInterfaces to interface iids */
25
hgs
parents: 21
diff changeset
    43
static const XAInterfaceID* xaMediaRecorderItfIIDs[MR_ITFCOUNT] =
hgs
parents: 21
diff changeset
    44
    {
hgs
parents: 21
diff changeset
    45
            &XA_IID_OBJECT,
hgs
parents: 21
diff changeset
    46
            &XA_IID_AUDIOENCODER,
hgs
parents: 21
diff changeset
    47
            &XA_IID_CONFIGEXTENSION,
hgs
parents: 21
diff changeset
    48
            &XA_IID_DYNAMICINTERFACEMANAGEMENT,
hgs
parents: 21
diff changeset
    49
            &XA_IID_EQUALIZER,
hgs
parents: 21
diff changeset
    50
            &XA_IID_IMAGECONTROLS,
hgs
parents: 21
diff changeset
    51
            &XA_IID_IMAGEEFFECTS,
hgs
parents: 21
diff changeset
    52
            &XA_IID_IMAGEENCODER,
hgs
parents: 21
diff changeset
    53
            &XA_IID_METADATAINSERTION,
hgs
parents: 21
diff changeset
    54
            &XA_IID_RECORD,
hgs
parents: 21
diff changeset
    55
            &XA_IID_SNAPSHOT,
hgs
parents: 21
diff changeset
    56
            &XA_IID_VIDEOENCODER,
hgs
parents: 21
diff changeset
    57
            &XA_IID_VIDEOPOSTPROCESSING,
hgs
parents: 21
diff changeset
    58
            &XA_IID_VOLUME,
hgs
parents: 21
diff changeset
    59
            &XA_IID_METADATAEXTRACTION,
hgs
parents: 21
diff changeset
    60
            &XA_IID_METADATATRAVERSAL
hgs
parents: 21
diff changeset
    61
    };
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
/* Global methods */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
/* XAResult XAMediaRecorderImpl_Create
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
 * Create object
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
 */
19
hgs
parents: 12
diff changeset
    68
XAresult XAMediaRecorderImpl_CreateMediaRecorder(FrameworkMap* mapper,
25
hgs
parents: 21
diff changeset
    69
        XACapabilities* capabilities, XAObjectItf* pRecorder,
hgs
parents: 21
diff changeset
    70
        XADataSource* pAudioSrc, XADataSource* pImageVideoSrc,
hgs
parents: 21
diff changeset
    71
        XADataSink* pDataSnk, XAuint32 numInterfaces,
hgs
parents: 21
diff changeset
    72
        const XAInterfaceID *pInterfaceIds,
hgs
parents: 21
diff changeset
    73
        const XAboolean *pInterfaceRequired)
hgs
parents: 21
diff changeset
    74
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
    XAMediaRecorderImpl* pImpl = NULL;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
    XAObjectItfImpl* pBaseObj = NULL;
19
hgs
parents: 12
diff changeset
    77
    FWMgrFwType fwType;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    XAuint8 itfIdx;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    XAMediaType mediaType = XA_MEDIATYPE_UNKNOWN;
25
hgs
parents: 21
diff changeset
    80
    XAresult ret = XA_RESULT_SUCCESS;
19
hgs
parents: 12
diff changeset
    81
    const char *uri = NULL;
25
hgs
parents: 21
diff changeset
    82
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
    DEBUG_API("->XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
    XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
25
hgs
parents: 21
diff changeset
    86
    if (!pRecorder)
hgs
parents: 21
diff changeset
    87
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
        /* invalid parameter */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
    93
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    /* check sink&source parameters */
25
hgs
parents: 21
diff changeset
    96
    ret
hgs
parents: 21
diff changeset
    97
            = XACommon_ValidateDataLocator(3, pAudioSrc, pImageVideoSrc,
hgs
parents: 21
diff changeset
    98
                    pDataSnk);
hgs
parents: 21
diff changeset
    99
    if (ret != XA_RESULT_SUCCESS)
hgs
parents: 21
diff changeset
   100
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
        return ret;
25
hgs
parents: 21
diff changeset
   104
        }
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
    /* instantiate object implementation */
25
hgs
parents: 21
diff changeset
   107
    pImpl = (XAMediaRecorderImpl*) calloc(1, sizeof(XAMediaRecorderImpl));
hgs
parents: 21
diff changeset
   108
    if (!pImpl)
hgs
parents: 21
diff changeset
   109
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
        /* memory allocation failed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
        DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
        return XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 21
diff changeset
   116
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    pBaseObj = &pImpl->baseObj;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    /* Initialize base object default implementation */
25
hgs
parents: 21
diff changeset
   120
    XAObjectItfImpl_Init(pBaseObj, MR_ITFCOUNT, xaMediaRecorderItfIIDs,
hgs
parents: 21
diff changeset
   121
            XAMediaRecorderImpl_DoRealize, XAMediaRecorderImpl_DoResume,
hgs
parents: 21
diff changeset
   122
            XAMediaRecorderImpl_FreeResources);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    /* Mark interfaces that need to be exposed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    /* Implicit and mandated interfaces */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    pBaseObj->interfaceMap[MR_RECORDITF].required = XA_BOOLEAN_TRUE;
25
hgs
parents: 21
diff changeset
   127
    if (pAudioSrc && mediaType != XA_MEDIATYPE_IMAGE)
hgs
parents: 21
diff changeset
   128
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
        pBaseObj->interfaceMap[MR_AUDIOENCODERITF].required = XA_BOOLEAN_TRUE;
25
hgs
parents: 21
diff changeset
   130
        }
hgs
parents: 21
diff changeset
   131
    if (pImageVideoSrc && mediaType != XA_MEDIATYPE_AUDIO)
hgs
parents: 21
diff changeset
   132
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
        pBaseObj->interfaceMap[MR_VIDEOENCODER].required = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
        pBaseObj->interfaceMap[MR_IMAGEENCODERITF].required = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
        pBaseObj->interfaceMap[MR_SNAPSHOTITF].required = XA_BOOLEAN_TRUE;
25
hgs
parents: 21
diff changeset
   136
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    pBaseObj->interfaceMap[MR_DIMITF].required = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    /* Explicit interfaces */
25
hgs
parents: 21
diff changeset
   140
    if ((numInterfaces != 0) && pInterfaceIds && pInterfaceRequired)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
        {
25
hgs
parents: 21
diff changeset
   142
        /* check only sink media type, do not care about return value (availability) */
hgs
parents: 21
diff changeset
   143
        XACommon_CheckDataSource((XADataSource*) pDataSnk, &mediaType);
hgs
parents: 21
diff changeset
   144
        /* Check required interfaces */
hgs
parents: 21
diff changeset
   145
        for (itfIdx = 0; itfIdx < numInterfaces; itfIdx++)
hgs
parents: 21
diff changeset
   146
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
            /* If mapEntry is null then required interface is not supported.*/
25
hgs
parents: 21
diff changeset
   148
            XAObjItfMapEntry *entry = XAObjectItfImpl_GetItfEntry(
hgs
parents: 21
diff changeset
   149
                    (XAObjectItf) &(pBaseObj), pInterfaceIds[itfIdx]);
hgs
parents: 21
diff changeset
   150
            if (!entry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
                {
25
hgs
parents: 21
diff changeset
   152
                if (pInterfaceRequired[itfIdx])
hgs
parents: 21
diff changeset
   153
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
                    /* required interface cannot be accommodated - fail creation */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
                    DEBUG_ERR("Required interface not found - abort creation!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
                    ret = XA_RESULT_FEATURE_UNSUPPORTED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
                    break;
25
hgs
parents: 21
diff changeset
   158
                    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
                else
25
hgs
parents: 21
diff changeset
   160
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
                    DEBUG_INFO("Requested (not required) interface not found - continue creation");
25
hgs
parents: 21
diff changeset
   162
                    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
                }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
            else
25
hgs
parents: 21
diff changeset
   165
                { /* weed out unsupported content-aware itf's */
hgs
parents: 21
diff changeset
   166
                if (((mediaType == XA_MEDIATYPE_IMAGE || !pAudioSrc)
hgs
parents: 21
diff changeset
   167
                        && (entry->mapIdx == MR_EQUALIZERITF || entry->mapIdx
hgs
parents: 21
diff changeset
   168
                                == MR_VOLUMEITF || entry->mapIdx
hgs
parents: 21
diff changeset
   169
                                == MR_AUDIOENCODERITF)) || ((mediaType
hgs
parents: 21
diff changeset
   170
                        == XA_MEDIATYPE_AUDIO || !pImageVideoSrc)
hgs
parents: 21
diff changeset
   171
                        && (entry->mapIdx == MR_IMAGECONTROLSITF
hgs
parents: 21
diff changeset
   172
                                || entry->mapIdx == MR_IMAGEEFFECTSITF
hgs
parents: 21
diff changeset
   173
                                || entry->mapIdx == MR_VIDEOPOSTPROCESSINGITF
hgs
parents: 21
diff changeset
   174
                                || entry->mapIdx == MR_VIDEOENCODER
hgs
parents: 21
diff changeset
   175
                                || entry->mapIdx == MR_IMAGEENCODERITF
hgs
parents: 21
diff changeset
   176
                                || entry->mapIdx == MR_SNAPSHOTITF)))
hgs
parents: 21
diff changeset
   177
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
                    entry->required = XA_BOOLEAN_FALSE;
25
hgs
parents: 21
diff changeset
   179
                    if (pInterfaceRequired[itfIdx])
hgs
parents: 21
diff changeset
   180
                        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
                        DEBUG_ERR("Required interface not supported for given media - abort creation!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
                        ret = XA_RESULT_FEATURE_UNSUPPORTED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
                        break;
25
hgs
parents: 21
diff changeset
   184
                        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
                    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
                else
25
hgs
parents: 21
diff changeset
   187
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
                    entry->required = XA_BOOLEAN_TRUE;
25
hgs
parents: 21
diff changeset
   189
                    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
25
hgs
parents: 21
diff changeset
   191
                if (entry->mapIdx == MR_SNAPSHOTITF)
hgs
parents: 21
diff changeset
   192
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
                    DEBUG_ERR("SnapshotItf requested - support still mode");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
                    pImpl->recModes |= XA_RECMODE_STILL;
25
hgs
parents: 21
diff changeset
   195
                    }
hgs
parents: 21
diff changeset
   196
                if (entry->mapIdx == MR_RECORDITF)
hgs
parents: 21
diff changeset
   197
                    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
                    DEBUG_ERR("RecordItf requested - support stream mode");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
                    pImpl->recModes |= XA_RECMODE_STREAM;
25
hgs
parents: 21
diff changeset
   200
                    }
12
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
            }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
        }
25
hgs
parents: 21
diff changeset
   204
    if (pImpl->recModes == 0)
hgs
parents: 21
diff changeset
   205
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
        DEBUG_ERR("Warning!!! No recording interfaces requested - unable to record!!");
25
hgs
parents: 21
diff changeset
   207
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    /*check sink and src parameters*/
25
hgs
parents: 21
diff changeset
   209
    if (ret == XA_RESULT_SUCCESS)
hgs
parents: 21
diff changeset
   210
        {
hgs
parents: 21
diff changeset
   211
        ret = XACommon_ValidateDataLocator(3, pDataSnk, pAudioSrc,
hgs
parents: 21
diff changeset
   212
                pImageVideoSrc);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
        /*datasink ignored if only snapshotitf is used*/
25
hgs
parents: 21
diff changeset
   214
        if (!pDataSnk && (pImpl->recModes & XA_RECMODE_STREAM))
hgs
parents: 21
diff changeset
   215
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
            DEBUG_ERR("No datasink to record to!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
            ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   218
            }
hgs
parents: 21
diff changeset
   219
        if (!pAudioSrc && !pImageVideoSrc)
hgs
parents: 21
diff changeset
   220
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
            DEBUG_ERR("No data sources set!");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
            ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   223
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
25
hgs
parents: 21
diff changeset
   226
    if (ret != XA_RESULT_SUCCESS)
hgs
parents: 21
diff changeset
   227
        { /* creation fails */
hgs
parents: 21
diff changeset
   228
        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
        return ret;
25
hgs
parents: 21
diff changeset
   232
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
    /* Mark interfaces that can be handled dynamically */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    /* Mandated dynamic itfs */
25
hgs
parents: 21
diff changeset
   236
    pBaseObj->interfaceMap[MR_METADATAINSERTIONITF].isDynamic
hgs
parents: 21
diff changeset
   237
            = XA_BOOLEAN_TRUE;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    pBaseObj->interfaceMap[MR_EQUALIZERITF].isDynamic = XA_BOOLEAN_TRUE;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    pBaseObj->interfaceMap[MR_IMAGEEFFECTSITF].isDynamic = XA_BOOLEAN_TRUE;
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
    /* Initialize XAMediaRecorderImpl variables */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
    pImpl->audioSrc = pAudioSrc;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
    pImpl->dataSnk = pDataSnk;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
    pImpl->imageVideoSrc = pImageVideoSrc;
19
hgs
parents: 12
diff changeset
   245
    /* Determine framework type that can handle recording */
25
hgs
parents: 21
diff changeset
   246
    fwType = (FWMgrFwType) FWMgrMOUnknown;
19
hgs
parents: 12
diff changeset
   247
    /**/
hgs
parents: 12
diff changeset
   248
    if (pDataSnk->pLocator)
25
hgs
parents: 21
diff changeset
   249
        {
hgs
parents: 21
diff changeset
   250
        XADataLocator_URI* dataLoc = (XADataLocator_URI*) pDataSnk->pLocator;
19
hgs
parents: 12
diff changeset
   251
        if (dataLoc->locatorType == XA_DATALOCATOR_URI)
hgs
parents: 12
diff changeset
   252
            {
25
hgs
parents: 21
diff changeset
   253
            uri = (char*) dataLoc->URI;
19
hgs
parents: 12
diff changeset
   254
            }
25
hgs
parents: 21
diff changeset
   255
        }
hgs
parents: 21
diff changeset
   256
    fwType = XAFrameworkMgr_GetFramework(mapper, uri, FWMgrMORecorder);
19
hgs
parents: 12
diff changeset
   257
hgs
parents: 12
diff changeset
   258
    if (fwType == FWMgrMOUnknown)
hgs
parents: 12
diff changeset
   259
        {
hgs
parents: 12
diff changeset
   260
        ret = XA_RESULT_CONTENT_UNSUPPORTED;
25
hgs
parents: 21
diff changeset
   261
        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
19
hgs
parents: 12
diff changeset
   262
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
hgs
parents: 12
diff changeset
   263
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
hgs
parents: 12
diff changeset
   264
        return ret;
hgs
parents: 12
diff changeset
   265
        }
25
hgs
parents: 21
diff changeset
   266
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
    /* Set ObjectItf to point to newly created object */
25
hgs
parents: 21
diff changeset
   268
    *pRecorder = (XAObjectItf) &(pBaseObj->self);
hgs
parents: 21
diff changeset
   269
hgs
parents: 21
diff changeset
   270
    if (fwType == FWMgrFWMMF)
hgs
parents: 21
diff changeset
   271
        {
hgs
parents: 21
diff changeset
   272
hgs
parents: 21
diff changeset
   273
        pImpl->adaptationCtx = XAMediaRecorderAdaptMMF_Create(
hgs
parents: 21
diff changeset
   274
                pImpl->audioSrc, pImpl->imageVideoSrc, pImpl->dataSnk,
hgs
parents: 21
diff changeset
   275
                pImpl->recModes);
hgs
parents: 21
diff changeset
   276
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
    else
25
hgs
parents: 21
diff changeset
   278
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
        pImpl->adaptationCtx = XAMediaRecorderAdapt_Create(pImpl->audioSrc,
25
hgs
parents: 21
diff changeset
   281
                pImpl->imageVideoSrc, pImpl->dataSnk, pImpl->recModes);
hgs
parents: 21
diff changeset
   282
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
25
hgs
parents: 21
diff changeset
   284
    if (pImpl->adaptationCtx)
19
hgs
parents: 12
diff changeset
   285
        {
hgs
parents: 12
diff changeset
   286
        pImpl->adaptationCtx->capslist = capabilities;
hgs
parents: 12
diff changeset
   287
        pImpl->adaptationCtx->fwtype = fwType;
hgs
parents: 12
diff changeset
   288
        }
hgs
parents: 12
diff changeset
   289
    else
hgs
parents: 12
diff changeset
   290
        {
hgs
parents: 12
diff changeset
   291
        ret = XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 21
diff changeset
   292
        XAObjectItfImpl_Destroy((XAObjectItf) &(pBaseObj));
19
hgs
parents: 12
diff changeset
   293
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
hgs
parents: 12
diff changeset
   294
        DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
hgs
parents: 12
diff changeset
   295
        return ret;
hgs
parents: 12
diff changeset
   296
        }
25
hgs
parents: 21
diff changeset
   297
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
    XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
    DEBUG_API("<-XAMediaRecorderImpl_CreateMediaRecorder");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
    return XA_RESULT_SUCCESS;
25
hgs
parents: 21
diff changeset
   301
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
/* XAResult XAMediaRecorderImpl_QueryNumSupportedInterfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
 * Statically query supported interfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
 */
25
hgs
parents: 21
diff changeset
   306
XAresult XAMediaRecorderImpl_QueryNumSupportedInterfaces(
hgs
parents: 21
diff changeset
   307
        XAuint32 *pNumSupportedInterfaces)
hgs
parents: 21
diff changeset
   308
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    DEBUG_API("->XAMediaRecorderImpl_QueryNumSupportedInterfaces");
25
hgs
parents: 21
diff changeset
   310
    if (pNumSupportedInterfaces)
hgs
parents: 21
diff changeset
   311
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
        *pNumSupportedInterfaces = MR_ITFCOUNT;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
        DEBUG_API("<-XAMediaRecorderImpl_QueryNumSupportedInterfaces");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
        return XA_RESULT_SUCCESS;
25
hgs
parents: 21
diff changeset
   316
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    else
25
hgs
parents: 21
diff changeset
   318
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   321
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
/* XAResult XAMediaRecorderImpl_QuerySupportedInterfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
 * Statically query supported interfaces
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
XAresult XAMediaRecorderImpl_QuerySupportedInterfaces(XAuint32 index,
25
hgs
parents: 21
diff changeset
   327
        XAInterfaceID *pInterfaceId)
hgs
parents: 21
diff changeset
   328
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
    DEBUG_API("->XAMediaRecorderImpl_QuerySupportedInterfaces");
25
hgs
parents: 21
diff changeset
   330
    if (index >= MR_ITFCOUNT || !pInterfaceId)
hgs
parents: 21
diff changeset
   331
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   334
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
    else
25
hgs
parents: 21
diff changeset
   336
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
        *pInterfaceId = *(xaMediaRecorderItfIIDs[index]);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
        DEBUG_API("<-XAMediaRecorderImpl_QuerySupportedInterfaces");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
        return XA_RESULT_SUCCESS;
25
hgs
parents: 21
diff changeset
   341
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
    }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
 * base object XAObjectItfImpl methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
/* XAresult XAMediaRecorderImpl_DoRealize( XAObjectItf self )
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
 * Description: Realize all implicit and explicitly wanted interfaces.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
 * Create and initialize implementation-specific variables.
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
 * Called from base object XAObjectItfImpl
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
 */
25
hgs
parents: 21
diff changeset
   353
XAresult XAMediaRecorderImpl_DoRealize(XAObjectItf self)
hgs
parents: 21
diff changeset
   354
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
    XAuint8 itfIdx;
25
hgs
parents: 21
diff changeset
   356
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 21
diff changeset
   357
    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*) (pObj);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   360
    DEBUG_API("->XAMediaRecorderImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
    XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
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
    /* check casting from correct pointer type */
25
hgs
parents: 21
diff changeset
   364
    if (!pObjImpl || pObj != pObjImpl->baseObj.self)
hgs
parents: 21
diff changeset
   365
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
        /* invalid parameter */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
        return XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   370
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
    /* init adaptation */
25
hgs
parents: 21
diff changeset
   373
    if (pObjImpl->adaptationCtx->fwtype == FWMgrFWMMF)
hgs
parents: 21
diff changeset
   374
        {
hgs
parents: 21
diff changeset
   375
        ret = XAMediaRecorderAdaptMMF_PostInit(
hgs
parents: 21
diff changeset
   376
                (XAAdaptationMMFCtx*) pObjImpl->adaptationCtx);
hgs
parents: 21
diff changeset
   377
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
    else
25
hgs
parents: 21
diff changeset
   379
        {
hgs
parents: 21
diff changeset
   380
        ret = XAMediaRecorderAdapt_PostInit(
hgs
parents: 21
diff changeset
   381
                (XAAdaptationGstCtx*) pObjImpl->adaptationCtx);
hgs
parents: 21
diff changeset
   382
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
25
hgs
parents: 21
diff changeset
   384
    if (ret != XA_RESULT_SUCCESS)
hgs
parents: 21
diff changeset
   385
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
        XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
        return ret;
25
hgs
parents: 21
diff changeset
   388
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
    /* Realize all implicit and explicitly wanted interfaces */
25
hgs
parents: 21
diff changeset
   391
    for (itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
        {
25
hgs
parents: 21
diff changeset
   393
        if (!(pObj->interfaceMap[itfIdx].pItf)
hgs
parents: 21
diff changeset
   394
                && pObj->interfaceMap[itfIdx].required)
hgs
parents: 21
diff changeset
   395
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   396
            void *pItf = NULL;
25
hgs
parents: 21
diff changeset
   397
            switch (itfIdx)
hgs
parents: 21
diff changeset
   398
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
                case MR_DIMITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
                    pItf = XADIMItfImpl_Create();
25
hgs
parents: 21
diff changeset
   401
                    if (pItf)
hgs
parents: 21
diff changeset
   402
                        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
                        XADIMItfImpl_Init(pItf, self,
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
                                XAMediaRecorderImpl_DoAddItf,
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
                                XAMediaRecorderImpl_DoResumeItf,
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
                                XAMediaRecorderImpl_DoRemoveItf);
25
hgs
parents: 21
diff changeset
   407
                        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
                case MR_RECORDITF:
25
hgs
parents: 21
diff changeset
   410
                    pItf = XARecordItfImpl_Create(pObjImpl);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
                case MR_AUDIOENCODERITF:
19
hgs
parents: 12
diff changeset
   413
                    pItf = XAAudioEncoderItfImpl_Create(pObjImpl);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
                    break;
21
hgs
parents: 19
diff changeset
   415
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   416
                    case MR_SNAPSHOTITF:
19
hgs
parents: 12
diff changeset
   417
                    pItf = XASnapshotItfImpl_Create(pObjImpl);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
                    break;
25
hgs
parents: 21
diff changeset
   419
                    case MR_VIDEOENCODER:
19
hgs
parents: 12
diff changeset
   420
                    pItf = XAVideoEncoderItfImpl_Create(pObjImpl);
25
hgs
parents: 21
diff changeset
   421
                    break;
hgs
parents: 21
diff changeset
   422
                    case MR_IMAGEENCODERITF:
19
hgs
parents: 12
diff changeset
   423
                    pItf = XAImageEncoderItfImpl_Create(pObjImpl);
25
hgs
parents: 21
diff changeset
   424
                    break;
21
hgs
parents: 19
diff changeset
   425
#endif
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   426
                case MR_METADATAINSERTIONITF:
19
hgs
parents: 12
diff changeset
   427
                    pItf = XAMetadataInsertionItfImpl_Create(pObjImpl);
25
hgs
parents: 21
diff changeset
   428
                    break;
19
hgs
parents: 12
diff changeset
   429
25
hgs
parents: 21
diff changeset
   430
                case MR_CONFIGEXTENSIONITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
                    pItf = XAConfigExtensionsItfImpl_Create();
25
hgs
parents: 21
diff changeset
   432
                    XAConfigExtensionsItfImpl_SetContext(pItf,
hgs
parents: 21
diff changeset
   433
                            pObjImpl->adaptationCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
                case MR_EQUALIZERITF:
25
hgs
parents: 21
diff changeset
   436
                    pItf = XAEqualizerItfImpl_Create(pObjImpl->adaptationCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   437
                    break;
21
hgs
parents: 19
diff changeset
   438
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   439
                    case MR_IMAGECONTROLSITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
                    pItf = XAImageControlsItfImpl_Create( pObjImpl->adaptationCtx );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
                    break;
25
hgs
parents: 21
diff changeset
   442
                    case MR_IMAGEEFFECTSITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
                    pItf = XAImageEffectsItfImpl_Create( pObjImpl->adaptationCtx );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
                    break;
25
hgs
parents: 21
diff changeset
   445
                    case MR_VIDEOPOSTPROCESSINGITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
                    pItf = XAVideoPostProcessingItfImpl_Create( pObjImpl->adaptationCtx );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
                    break;
21
hgs
parents: 19
diff changeset
   448
#endif
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
                case MR_VOLUMEITF:
25
hgs
parents: 21
diff changeset
   450
                    pItf = XAVolumeItfImpl_Create(pObjImpl->adaptationCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
                case MR_METADATAEXTRACTIONITF:
25
hgs
parents: 21
diff changeset
   453
                    pItf = XAMetadataExtractionItfImpl_Create(
hgs
parents: 21
diff changeset
   454
                            pObjImpl->adaptationCtx);
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
                case MR_METADATATRAVERSALITF:
25
hgs
parents: 21
diff changeset
   457
                    pItf = XAMetadataTraversalItfImpl_Create(
hgs
parents: 21
diff changeset
   458
                            pObjImpl->adaptationCtx);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
                    break;
25
hgs
parents: 21
diff changeset
   460
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
                default:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
                    break;
25
hgs
parents: 21
diff changeset
   463
                }
hgs
parents: 21
diff changeset
   464
            if (!pItf)
hgs
parents: 21
diff changeset
   465
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
                DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
                /* memory allocation failed */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
                XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
                return XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 21
diff changeset
   470
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
            else
25
hgs
parents: 21
diff changeset
   472
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
                pObj->interfaceMap[itfIdx].pItf = pItf;
25
hgs
parents: 21
diff changeset
   474
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
            }
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
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
    pObj->state = XA_OBJECT_STATE_REALIZED;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
    DEBUG_API("<-XAMediaRecorderImpl_DoRealize");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
    XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
    return XA_RESULT_SUCCESS;
25
hgs
parents: 21
diff changeset
   482
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
/* XAresult XAMediaRecorderImpl_DoResume
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
 * Description: Resume object from suspended state
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
XAresult XAMediaRecorderImpl_DoResume(XAObjectItf self)
25
hgs
parents: 21
diff changeset
   488
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
    DEBUG_API("->XAMediaRecorderImpl_DoResume");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
    DEBUG_API("<-XAMediaRecorderImpl_DoResume");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
    /* This implementation does not support suspended state */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
    return XA_RESULT_PRECONDITIONS_VIOLATED;
25
hgs
parents: 21
diff changeset
   493
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
/* void XAMediaRecorderImpl_FreeResources
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
 * Description: Free all resources reserved at XAMediaRecorderImpl_DoRealize()
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
 */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
void XAMediaRecorderImpl_FreeResources(XAObjectItf self)
25
hgs
parents: 21
diff changeset
   499
    {
hgs
parents: 21
diff changeset
   500
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 21
diff changeset
   501
    XAMediaRecorderImpl* pObjImpl = (XAMediaRecorderImpl*) (pObj);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
    XAuint8 itfIdx;
25
hgs
parents: 21
diff changeset
   503
    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*) (*self);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    DEBUG_API("->XAMediaRecorderImpl_FreeResources");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
    XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
    assert( pObj && pImpl && pObj == pObj->self );
19
hgs
parents: 12
diff changeset
   507
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
    /* free all allocated interfaces */
25
hgs
parents: 21
diff changeset
   509
    for (itfIdx = 0; itfIdx < MR_ITFCOUNT; itfIdx++)
hgs
parents: 21
diff changeset
   510
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
        void *pItf = pObj->interfaceMap[itfIdx].pItf;
25
hgs
parents: 21
diff changeset
   512
        if (pItf)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
            {
25
hgs
parents: 21
diff changeset
   514
            switch (itfIdx)
hgs
parents: 21
diff changeset
   515
                {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
                case MR_AUDIOENCODERITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
                    XAAudioEncoderItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
                case MR_CONFIGEXTENSIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
                    XAConfigExtensionsItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
                case MR_DIMITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
                    XADIMItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
                case MR_EQUALIZERITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
                    XAEqualizerItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
                    break;
21
hgs
parents: 19
diff changeset
   528
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   529
                    case MR_IMAGECONTROLSITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
                    XAImageControlsItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
                    break;
25
hgs
parents: 21
diff changeset
   532
                    case MR_IMAGEEFFECTSITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
                    XAImageEffectsItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
                    break;
25
hgs
parents: 21
diff changeset
   535
                    case MR_IMAGEENCODERITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
                    XAImageEncoderItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
                    break;
21
hgs
parents: 19
diff changeset
   538
#endif
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
                case MR_METADATAINSERTIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
                    XAMetadataInsertionItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
                case MR_RECORDITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
                    XARecordItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
                    break;
21
hgs
parents: 19
diff changeset
   545
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   546
                    case MR_SNAPSHOTITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
                    XASnapshotItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
                    break;
25
hgs
parents: 21
diff changeset
   549
                    case MR_VIDEOENCODER:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
                    XAVideoEncoderItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
                    break;
25
hgs
parents: 21
diff changeset
   552
                    case MR_VIDEOPOSTPROCESSINGITF:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
                    XAVideoPostProcessingItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
                    break;
21
hgs
parents: 19
diff changeset
   555
#endif
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
                case MR_VOLUMEITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
                    XAVolumeItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
                case MR_METADATAEXTRACTIONITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
                    XAMetadataExtractionItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
                case MR_METADATATRAVERSALITF:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
                    XAMetadataTraversalItfImpl_Free(pItf);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
                    break;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
                default:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
                    break;
25
hgs
parents: 21
diff changeset
   567
                }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
            pObj->interfaceMap[itfIdx].pItf = NULL;
25
hgs
parents: 21
diff changeset
   569
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
25
hgs
parents: 21
diff changeset
   572
    if (pImpl->adaptationCtx != NULL)
hgs
parents: 21
diff changeset
   573
        {
hgs
parents: 21
diff changeset
   574
        if (pImpl->adaptationCtx->fwtype == FWMgrFWMMF)
19
hgs
parents: 12
diff changeset
   575
            {
25
hgs
parents: 21
diff changeset
   576
            XAMediaRecorderAdaptMMF_Destroy(
hgs
parents: 21
diff changeset
   577
                    (XAAdaptationMMFCtx*) pObjImpl->adaptationCtx);
19
hgs
parents: 12
diff changeset
   578
            }
hgs
parents: 12
diff changeset
   579
        else
hgs
parents: 12
diff changeset
   580
            {
25
hgs
parents: 21
diff changeset
   581
            XAMediaRecorderAdapt_Destroy(
hgs
parents: 21
diff changeset
   582
                    (XAAdaptationGstCtx*) pImpl->adaptationCtx);
19
hgs
parents: 12
diff changeset
   583
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
        pImpl->adaptationCtx = NULL;
25
hgs
parents: 21
diff changeset
   585
        }
19
hgs
parents: 12
diff changeset
   586
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
    /* free all other allocated resources*/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
    DEBUG_API("<-XAMediaRecorderImpl_FreeResources");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
    XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
    return;
25
hgs
parents: 21
diff changeset
   592
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
/*****************************************************************************
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
 * MediaRecorderImpl -specific methods
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
 *****************************************************************************/
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
/* XAMediaRecorderImpl_DoAddItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
 * Dynamically add an interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
 */
25
hgs
parents: 21
diff changeset
   601
XAresult XAMediaRecorderImpl_DoAddItf(XAObjectItf self,
hgs
parents: 21
diff changeset
   602
        XAObjItfMapEntry *mapEntry)
hgs
parents: 21
diff changeset
   603
    {
19
hgs
parents: 12
diff changeset
   604
25
hgs
parents: 21
diff changeset
   605
    XAObjectItfImpl* pObj = (XAObjectItfImpl*) (*self);
hgs
parents: 21
diff changeset
   606
    XAMediaRecorderImpl* pImpl = (XAMediaRecorderImpl*) (pObj);
19
hgs
parents: 12
diff changeset
   607
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
    DEBUG_API("->XAMediaRecorderImpl_DoAddItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
    XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
25
hgs
parents: 21
diff changeset
   613
    if (mapEntry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
        {
25
hgs
parents: 21
diff changeset
   615
        switch (mapEntry->mapIdx)
hgs
parents: 21
diff changeset
   616
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
25
hgs
parents: 21
diff changeset
   618
            case MR_METADATAINSERTIONITF:
hgs
parents: 21
diff changeset
   619
                mapEntry->pItf = XAMetadataInsertionItfImpl_Create(pImpl);
hgs
parents: 21
diff changeset
   620
                break;
hgs
parents: 21
diff changeset
   621
            case MR_EQUALIZERITF:
hgs
parents: 21
diff changeset
   622
                mapEntry->pItf = XAEqualizerItfImpl_Create(
hgs
parents: 21
diff changeset
   623
                        pImpl->adaptationCtx);
hgs
parents: 21
diff changeset
   624
                break;
21
hgs
parents: 19
diff changeset
   625
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   626
                case MR_IMAGEEFFECTSITF:
hgs
parents: 21
diff changeset
   627
                mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->adaptationCtx );
hgs
parents: 21
diff changeset
   628
                break;
21
hgs
parents: 19
diff changeset
   629
#endif
25
hgs
parents: 21
diff changeset
   630
            default:
hgs
parents: 21
diff changeset
   631
                DEBUG_ERR("XAMediaRecorderImpl_DoAddItf unknown id")
hgs
parents: 21
diff changeset
   632
                ;
hgs
parents: 21
diff changeset
   633
                ret = XA_RESULT_FEATURE_UNSUPPORTED;
hgs
parents: 21
diff changeset
   634
                break;
hgs
parents: 21
diff changeset
   635
            }
hgs
parents: 21
diff changeset
   636
hgs
parents: 21
diff changeset
   637
        if (!mapEntry->pItf && ret == XA_RESULT_SUCCESS)
hgs
parents: 21
diff changeset
   638
            {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
            DEBUG_ERR("XAMediaRecorderImpl_DoAddItf itf creation failed");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
            ret = XA_RESULT_MEMORY_FAILURE;
25
hgs
parents: 21
diff changeset
   641
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
        }
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
    else
25
hgs
parents: 21
diff changeset
   644
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
        ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   646
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
    XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
    DEBUG_API("<-XAMediaRecorderImpl_DoAddItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
    return ret;
25
hgs
parents: 21
diff changeset
   651
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
/* XAMediaRecorderImpl_DoResumeItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
 * Try to resume lost interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
 */
25
hgs
parents: 21
diff changeset
   656
XAresult XAMediaRecorderImpl_DoResumeItf(XAObjectItf self,
hgs
parents: 21
diff changeset
   657
        XAObjItfMapEntry *mapEntry)
hgs
parents: 21
diff changeset
   658
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
    XAresult ret;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
    /* For now, no difference between suspended and unrealised itfs */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
    DEBUG_API("->XAMediaRecorderImpl_DoResumeItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
    XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
25
hgs
parents: 21
diff changeset
   663
    ret = XAMediaRecorderImpl_DoAddItf(self, mapEntry);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
    XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
    DEBUG_API("<-XAMediaRecorderImpl_DoResumeItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
    return ret;
25
hgs
parents: 21
diff changeset
   667
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
/* XAMediaRecorderImpl_DoRemoveItf
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
 * Dynamically remove an interface, object specific parts
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
 */
25
hgs
parents: 21
diff changeset
   672
XAresult XAMediaRecorderImpl_DoRemoveItf(XAObjectItf self,
hgs
parents: 21
diff changeset
   673
        XAObjItfMapEntry *mapEntry)
hgs
parents: 21
diff changeset
   674
    {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
    XAresult ret = XA_RESULT_SUCCESS;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
    DEBUG_API("->XAMediaRecorderImpl_DoRemoveItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
    XA_IMPL_THREAD_SAFETY_ENTRY( XATSMediaRecorder );
25
hgs
parents: 21
diff changeset
   678
    if (mapEntry)
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
        {
25
hgs
parents: 21
diff changeset
   680
        switch (mapEntry->mapIdx)
hgs
parents: 21
diff changeset
   681
            {
hgs
parents: 21
diff changeset
   682
            case MR_METADATAINSERTIONITF:
hgs
parents: 21
diff changeset
   683
                XAMetadataInsertionItfImpl_Free(mapEntry->pItf);
hgs
parents: 21
diff changeset
   684
                break;
hgs
parents: 21
diff changeset
   685
            case MR_EQUALIZERITF:
hgs
parents: 21
diff changeset
   686
                XAEqualizerItfImpl_Free(mapEntry->pItf);
hgs
parents: 21
diff changeset
   687
                break;
21
hgs
parents: 19
diff changeset
   688
#ifdef OMAX_CAMERABIN
25
hgs
parents: 21
diff changeset
   689
                case MR_IMAGEEFFECTSITF:
hgs
parents: 21
diff changeset
   690
                XAImageEffectsItfImpl_Free( mapEntry->pItf );
hgs
parents: 21
diff changeset
   691
                break;
21
hgs
parents: 19
diff changeset
   692
#endif
25
hgs
parents: 21
diff changeset
   693
            default:
hgs
parents: 21
diff changeset
   694
                DEBUG_ERR("XAMediaRecorderImpl_DoRemoveItf unknown id")
hgs
parents: 21
diff changeset
   695
                ;
hgs
parents: 21
diff changeset
   696
                ret = XA_RESULT_FEATURE_UNSUPPORTED;
hgs
parents: 21
diff changeset
   697
                break;
hgs
parents: 21
diff changeset
   698
            }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
        mapEntry->pItf = NULL;
25
hgs
parents: 21
diff changeset
   700
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
    else
25
hgs
parents: 21
diff changeset
   702
        {
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
        ret = XA_RESULT_PARAMETER_INVALID;
25
hgs
parents: 21
diff changeset
   704
        }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
    XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaRecorder );
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
    DEBUG_API("<-XAMediaRecorderImpl_DoRemoveItf");
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
    return ret;
25
hgs
parents: 21
diff changeset
   709
    }
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
/* END OF FILE */