videditor/ManualVideoEditor/src/StoryboardItems.cpp
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* Copyright (c) 2010 Ixonos Plc.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "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:
* Ixonos Plc
*
* Description: 
*
*/


// INCLUDE FILES

// System includes
#include <fbs.h>

// User includes
#include "StoryboardItems.h"

// local constants
const TInt KNoThumbnailFrameWidth = 8;


// ================= MEMBER FUNCTIONS =======================

/* **********************************************************************
 * CStoryboardVideoItem
 * **********************************************************************/
CStoryboardVideoItem* CStoryboardVideoItem::NewL( const CFbsBitmap& aStartIcon, 
                                                  const CFbsBitmap& aStartIconMask, 
                                                  const TDesC& aFilename,
                                                  TBool aIsFile,
                                                  const TDesC& aAlbum )
    {
    CStoryboardVideoItem* self = CStoryboardVideoItem::NewLC( aStartIcon,
        aStartIconMask, aFilename, aIsFile, aAlbum );
    CleanupStack::Pop( self );
    return self;
    }

CStoryboardVideoItem* CStoryboardVideoItem::NewLC( const CFbsBitmap& aStartIcon, 
                                                   const CFbsBitmap& aStartIconMask, 
                                                   const TDesC& aFilename, 
                                                   TBool aIsFile,
                                                   const TDesC& aAlbum )
    {
    CStoryboardVideoItem* self = new( ELeave )CStoryboardVideoItem();
    CleanupStack::PushL( self );
    self->ConstructL( aStartIcon, aStartIconMask, aFilename, aIsFile, aAlbum );
    return self;
    }

CStoryboardVideoItem::~CStoryboardVideoItem()
    {
    if ( iFilename )
        {
        delete iFilename;
        }

    if ( iAlbumName )
        {
        delete iAlbumName;
        }

    delete iIconBitmap;
    delete iIconMask;

    delete iLastFrameBitmap;
    delete iLastFrameMask;

    delete iTimelineBitmap;
    delete iTimelineMask;
    }

CStoryboardVideoItem::CStoryboardVideoItem()
    {
    }

void CStoryboardVideoItem::InsertLastFrameL( const CFbsBitmap& aBitmap, const CFbsBitmap& aMask )
    {
    delete iLastFrameBitmap;
    iLastFrameBitmap = NULL;
    delete iLastFrameMask;
    iLastFrameMask = NULL;

    CFbsBitmap* icon = new( ELeave )CFbsBitmap;
    icon->Duplicate( aBitmap.Handle());
    CFbsBitmap* mask = new( ELeave )CFbsBitmap;
    mask->Duplicate( aMask.Handle());

    iLastFrameBitmap = icon;
    iLastFrameMask = mask;
    }

void CStoryboardVideoItem::InsertFirstFrameL( const CFbsBitmap& aBitmap, const CFbsBitmap& aMask )
    {
    delete iIconBitmap;
    iIconBitmap = NULL;
    delete iIconMask;
    iIconMask = NULL;

    CFbsBitmap* icon = new( ELeave )CFbsBitmap;
    icon->Duplicate( aBitmap.Handle());
    CFbsBitmap* mask = new( ELeave )CFbsBitmap;
    mask->Duplicate( aMask.Handle());

    iIconBitmap = icon;
    iIconMask = mask;
    }

void CStoryboardVideoItem::InsertTimelineFrameL( const CFbsBitmap& aBitmap, const CFbsBitmap& aMask )
    {
    delete iTimelineBitmap;
    iTimelineBitmap = NULL;
    delete iTimelineMask;
    iTimelineMask = NULL;

    CFbsBitmap* icon = new( ELeave )CFbsBitmap;
    icon->Duplicate( aBitmap.Handle());
    CFbsBitmap* mask = new( ELeave )CFbsBitmap;
    mask->Duplicate( aMask.Handle());

    iTimelineBitmap = icon;
    iTimelineMask = mask;
    }

void CStoryboardVideoItem::ConstructL( const CFbsBitmap& aStartIcon, 
                                       const CFbsBitmap& aStartIconMask, 
                                       const TDesC& aFilename,
                                       TBool aIsFile,
                                       const TDesC& aAlbum )
    {
    CFbsBitmap* icon = new( ELeave )CFbsBitmap;
    icon->Duplicate( aStartIcon.Handle());
    CFbsBitmap* mask = new( ELeave )CFbsBitmap;
    mask->Duplicate( aStartIconMask.Handle());

    TSize thumbResolution;
	thumbResolution.iWidth = ( aStartIcon.SizeInPixels() ).iWidth-KNoThumbnailFrameWidth;
	thumbResolution.iHeight = ( aStartIcon.SizeInPixels() ).iHeight-KNoThumbnailFrameWidth;

    iIconSize = thumbResolution;
    iIconBitmap = icon;
    iIconMask = mask;

    iFilename = HBufC::NewL( aFilename.Length());
    *iFilename = aFilename;

    iAlbumName = HBufC::NewL( aAlbum.Length());
    *iAlbumName = aAlbum;

    iDateModified.HomeTime();
    iIsFile = aIsFile;
    }

/* **********************************************************************
 * CStoryboardAudioItem
 * **********************************************************************/

CStoryboardAudioItem* CStoryboardAudioItem::NewLC( TBool aRecordedAudio, 
                                                   const TDesC& aFilename )
    {
    CStoryboardAudioItem* self = new( ELeave )CStoryboardAudioItem(
                                     aRecordedAudio );
    CleanupStack::PushL( self );
    self->ConstructL( aFilename );
    return self;
    }


CStoryboardAudioItem::~CStoryboardAudioItem()
    {
    delete iFilename;
    }


CStoryboardAudioItem::CStoryboardAudioItem(TBool aRecordedAudio)
                                            : iRecordedAudio(aRecordedAudio)
    {
    }

void CStoryboardAudioItem::ConstructL( const TDesC& aFilename )
    {
    iFilename = HBufC::NewL( aFilename.Length());
    *iFilename = aFilename;
    }

// End of File