javauis/mmapi_akn/baseline/src/cmmacameraplayerfactory.cpp
branchRCL_3
changeset 60 6c158198356e
parent 59 e5618cc85d74
child 63 d1278d87b01e
child 65 ae942d28ec0e
--- a/javauis/mmapi_akn/baseline/src/cmmacameraplayerfactory.cpp	Thu Jul 15 18:31:06 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
-* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  This class is used for creating camera players.
-*
-*/
-
-
-//  INCLUDE FILES
-#include <e32std.h>
-#include <jdebug.h>
-
-#include "cmmacameraplayerfactory.h"
-#include "cmmacameraplayer.h"
-#include "cmmavideocontrol.h"
-#include "cmmavideorecordcontrol.h"
-#include "cmmastoptimecontrol.h"
-#include "cmmaplayerproperties.h"
-#include "cmmammfresolver.h"
-
-_LIT(KDefaultVideo, "video");
-//is the main camera
-_LIT(KDevcamZero,  "devcam0");
-// the secondary camera
-_LIT(KDevcamOne,  "devcam1");
-
-_LIT(KEncodingProperty, "encoding");
-
-_LIT(KVideoMp4MimeType, "video/mp4");
-_LIT(KVideoH264MimeType, "video/H264");
-
-CMMACameraPlayerFactory* CMMACameraPlayerFactory::NewLC()
-{
-    CMMACameraPlayerFactory* pFactory =
-        new(ELeave) CMMACameraPlayerFactory();
-    CleanupStack::PushL(pFactory);
-    return pFactory;
-}
-
-
-CMMACameraPlayerFactory::CMMACameraPlayerFactory()
-{
-}
-
-
-CMMACameraPlayerFactory::~CMMACameraPlayerFactory()
-{
-    delete iAudioSettings;
-}
-
-CMMAPlayer* CMMACameraPlayerFactory::CreatePlayerL(
-    CMMAMMFResolver* aResolver)
-{
-    DEBUG("MMA::CMMACameraPlayerFactory::CreatePlayerL( aResolver )+");
-    CMMACameraPlayer* player = CMMACameraPlayer::NewLC(iCameraIndex);
-
-    /* Add VideoControl */
-    CMMAVideoControl* videoControl = new(ELeave)CMMAVideoControl(player);
-
-    CleanupStack::PushL(videoControl);
-    player->AddControlL(videoControl);
-    CleanupStack::Pop(videoControl);
-
-    /* Add RecordControl */
-    CMMAVideoRecordControl* videoRecordControl =
-        CMMAVideoRecordControl::NewL(player,
-                                     aResolver,
-                                     iVideoSettings,
-                                     iAudioSettings,
-                                     player->CameraHandle());
-    CleanupStack::PushL(videoRecordControl);
-    player->AddControlL(videoRecordControl);
-    // ownership transfered to player
-    CleanupStack::Pop(videoRecordControl);
-
-    // With record control view finder can't be stopped,
-    // because it can not be restarted.
-    player->SetViewFinderMode(EFalse);
-
-    CleanupStack::Pop(player);
-    return player;
-}
-
-
-void CMMACameraPlayerFactory::MediaIdsL(RArray<TUid>& aMediaIds)
-{
-    CleanupClosePushL(aMediaIds);
-    User::LeaveIfError(aMediaIds.Append(KUidMediaTypeVideo));
-    CleanupStack::Pop();
-}
-
-void CMMACameraPlayerFactory::PreparePluginSelectionParametersL(
-    CMMAMMFResolver* aResolver,
-    CMMFFormatSelectionParameters* aFormatSelection)
-{
-    // We are creating record type player
-    aResolver->SetRequiredRecordFormatSupportL(*aFormatSelection);
-}
-
-CMMAPlayer* CMMACameraPlayerFactory::CreatePlayerL(const TDesC&)
-{
-    // record player cannot be created from conten-type, since this is used only
-    // when we have also data
-    return NULL;
-}
-
-
-CMMAPlayer* CMMACameraPlayerFactory::CreatePlayerL(const TDesC8&)
-{
-    // record player cannot be created with header data
-    return NULL;
-}
-
-CMMAPlayer* CMMACameraPlayerFactory::CreatePlayerL(
-    const TDesC& aProtocol,
-    const TDesC& aMiddlePart,
-    const TDesC& aParameters)
-{
-    DEBUG_STR("MMA::CMMACameraPlayerFactory::CreatePlayerL aParameters = %S", aParameters);
-    // check that locator is capture:://audio
-    if (aProtocol != KMMACaptureProtocol)
-    {
-        return NULL;
-    }
-
-    iCameraIndex = KErrNotFound;
-
-    // If the device supports multiple cameras then "capture://devcam0" is the
-    // main camera pointing outwards from the user. "capture://devcam1" is the
-    // secondary camera pointing e.g. towards the user. "capture://video" is
-    // the default camera locator pointing to the same camera as "devcam0"
-    if ((aMiddlePart == KDefaultVideo) ||
-            (aMiddlePart == KDevcamZero))
-    {
-        // First camera
-        iCameraIndex = 0;
-    }
-    else if (aMiddlePart == KDevcamOne)
-    {
-        // Second camera.
-        iCameraIndex = 1;
-    }
-    else
-    {
-        // not supported type
-        return NULL;
-    }
-
-    CMMAAudioSettings* audioSettings = new(ELeave) CMMAAudioSettings;
-    audioSettings->iDataType = KMMFFourCCCodeNULL;
-    delete iAudioSettings;
-    iAudioSettings = audioSettings;
-
-    if (aParameters.Length() == 0)
-    {
-        // getting defaults from validator
-        iVideoSettings = TMMAParameterValidator::ValidateVideoPropertiesL(aParameters);
-    }
-    else
-    {
-        // we accept either video or mixed parameters, so properties must contain encoding 2 times for mixed and
-        // 1 time for video.
-        // making tmp des without first "encoding"
-        TInt lengthWithoutEncoding = aParameters.Length() - KEncodingProperty().Length();
-        if (lengthWithoutEncoding < 0)
-        {
-            User::Leave(KErrArgument);
-        }
-        TPtrC tmp = aParameters.Right(lengthWithoutEncoding);
-        // finding second "encoding"
-        TInt videoPropertiesStartPos = tmp.Find(KEncodingProperty);
-        if (videoPropertiesStartPos == KErrNotFound)
-        {
-            // there is not another encoding, so assuming that there is only video parameters
-            iVideoSettings = TMMAParameterValidator::ValidateVideoPropertiesL(aParameters);
-        }
-        else
-        {
-            // there is mixed parameters
-            videoPropertiesStartPos += KEncodingProperty().Length();
-
-            // skipping '&' char
-            TPtrC audioProperties = aParameters.Left(videoPropertiesStartPos - 1);
-            TPtrC videoProperties = aParameters.Mid(videoPropertiesStartPos);
-            iVideoSettings = TMMAParameterValidator::ValidateVideoPropertiesL(videoProperties);
-
-            CMMAAudioSettings* audioSettings = TMMAParameterValidator::ValidateAudioPropertiesL(audioProperties);
-            delete iAudioSettings;
-            iAudioSettings = audioSettings;
-        }
-    }
-
-    // if wanted video capture encoding is H264, we must create player with video/mp4
-    // because mmf doesn't have controller for H264
-    if (iVideoSettings.iEncoding.Compare(KVideoH264MimeType) == 0)
-    {
-        return CMMAMMFPlayerFactory::CreatePlayerL(KVideoMp4MimeType);
-    }
-
-    // Find controller with content-type
-    return CMMAMMFPlayerFactory::CreatePlayerL(iVideoSettings.iEncoding);
-}
-
-void CMMACameraPlayerFactory::GetSupportedProtocolsL(
-    const TDesC& aContentType,
-    CDesC16Array& aProtocolArray)
-{
-    if (IsSupportedContentTypeL(aContentType))
-    {
-        aProtocolArray.AppendL(KMMACaptureProtocol);
-    }
-}
-
-//  END OF FILE