messagingapp/msgutils/unidatamodel/unimmsdataplugin/src/UniSmilUtils.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
child 79 2981cb3aa489
--- a/messagingapp/msgutils/unidatamodel/unimmsdataplugin/src/UniSmilUtils.cpp	Fri Apr 16 14:56:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-/*
-* Copyright (c) 2005 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: 
-*       Static utility class for manipulating SMIL DOM
-*
-*
-*/
-
-
-#include <e32std.h>
-#include <gdi.h>
-
-#include <gmxmldocument.h>
-#include <gmxmlnode.h>
-#include <gmxmlelement.h>
-
-#include <ConformanceChecker.h>
-#include "UniSmilUtils.h"
-
-
-// ---------------------------------------------------------
-// UniSmilUtils::StringToIntValue
-// Convert a descriptor to TInt
-// ---------------------------------------------------------
-//
-TInt UniSmilUtils::StringToIntValue( const TDesC& aString,
-                                                    TInt aDefault )
-    {
-    TInt value = aDefault;
-    if( aString.Length() != 0 )
-        {
-        TChar c = aString[0];
-        if( c.IsDigit() )
-            {
-            TLex luthor( aString );
-            luthor.Val( value );
-            }
-        else
-            {
-            value = aDefault;
-            }
-        }
-    return value;
-    }
-
-
-// ---------------------------------------------------------
-// UniSmilUtils::IsMediaElem
-// ---------------------------------------------------------
-
-TBool UniSmilUtils::IsMediaElem( CMDXMLNode* aNodePtr )
-{
-    TBool ret = EFalse;
-
-    if ( aNodePtr->NodeType() == CMDXMLNode::EElementNode &&
-         UniSmilUtils::MediaElemType( aNodePtr) != EMsgMediaUnknown )
-        {
-        ret = ETrue;
-        }
-
-    return ret;
-}
-
-// ---------------------------------------------------------
-// UniSmilUtils::NextNode
-// ---------------------------------------------------------
-
-CMDXMLNode* UniSmilUtils::NextNode(CMDXMLNode* aRefNode)
-{
-    if( aRefNode->FirstChild() )
-        {
-        aRefNode = aRefNode->FirstChild();
-        }
-    else
-        {
-        if( aRefNode->NextSibling() )
-            {
-            // move to the next sibling if exists
-            aRefNode = aRefNode->NextSibling();
-            }
-        else
-            {
-            // No siblings at this level. Go up to parent.
-            // might need to go up several layers so WHILE rather than IF
-            while ( aRefNode && !aRefNode->NextSibling() )
-                {
-                // no siblings, move back to parent.
-                aRefNode = aRefNode->ParentNode();
-                }
-
-            // Check if we stopped because node has siblings.
-            if ( aRefNode && aRefNode->NextSibling() )
-                {
-                aRefNode = aRefNode->NextSibling();
-                }
-            }
-        }
-
-    return aRefNode;
-}
-
-// ---------------------------------------------------------
-// UniSmilUtils::RemoveChilds
-// ---------------------------------------------------------
-
-void UniSmilUtils::RemoveChilds(
-    CMDXMLNode* aParent )
-    {
-    CMDXMLNode* child = NULL;
-
-    if ( aParent )
-        {
-        child = aParent->FirstChild();
-        }
-
-    while ( child )
-        {
-        if ( child->HasChildNodes() )
-            {
-            UniSmilUtils::RemoveChilds( child );
-            }
-        else
-            {
-            CMDXMLNode* n = child;
-            child = child->NextSibling();
-            aParent->RemoveChild( n );
-            delete n;
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------
-// UniSmilUtils::ElemType
-// ---------------------------------------------------------
-
-TMsgMediaType UniSmilUtils::MediaElemType(CMDXMLNode* aNodePtr)
-{
-    TMsgMediaType type(EMsgMediaUnknown);
-
-    if ( aNodePtr )
-        {
-        TPtrC nName;
-        nName.Set(aNodePtr->NodeName());
-
-        if ( nName.Compare(KSMILWREleAnimation) == 0 )
-            {
-            type = EMsgMediaAnimation;
-            }
-        else if (nName.Compare(KSMILWREleAudio) == 0 )
-            {
-            type = EMsgMediaAudio;
-            }
-        // SVG included. No special SVG element tag exist.
-        else if (nName.Compare(KSMILWREleImg) == 0 )
-            {
-            type = EMsgMediaImage;
-            }
-        else if (nName.Compare(KSMILWREleRef) == 0 )
-            {
-            type = EMsgMediaRef;
-            }
-        else if ( nName.Compare(KSMILWREleText) == 0 )
-            {
-            type = EMsgMediaText;
-            }
-        else if ( nName.Compare(KSMILWREleTextstream) == 0 )
-            {
-            type = EMsgMediaTextStream;
-            }
-        else if ( nName.Compare(KSMILWREleVideo) == 0 )
-            {
-            type = EMsgMediaVideo;
-            }
-        }
-
-    return type;
-}
-
-// ---------------------------------------------------------
-// UniSmilUtils::GetId
-// ---------------------------------------------------------
-
-TInt UniSmilUtils::GetId( CMDXMLNode* aNodePtr, TPtrC& aId )
-    {
-    TInt ret = KErrNotSupported;
-
-    if( aNodePtr && aNodePtr->NodeType() == CMDXMLNode::EElementNode )
-        {
-        CMDXMLElement* e =(CMDXMLElement*) aNodePtr;
-        if ( e->IsAttributeSpecified( KSMILWRParaId ))
-            {
-            e->GetAttribute(KSMILWRParaId, aId);
-            ret = KErrNone;
-            }
-        else
-            {
-            ret = KErrNotFound;
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// UniSmilUtils::GetMetaTag
-// ---------------------------------------------------------
-
-TInt UniSmilUtils::GetMetaTag( CMDXMLNode* aNodePtr,
-                                   TPtrC& aName,
-                                   TPtrC& aContent )
-    {
-    TInt ret = KErrNotFound;
-
-    if( aNodePtr &&
-        aNodePtr->NodeType() == CMDXMLNode::EElementNode &&
-        aNodePtr->NodeName().Compare(KSMILWREleMeta) == 0)
-        {
-        CMDXMLElement* e = (CMDXMLElement*) aNodePtr;
-
-        if ( e->IsAttributeSpecified( KSMILWRParaName ) &&
-             e->IsAttributeSpecified( KSMILWRParaContent ))
-            {
-            if (!e->GetAttribute(KSMILWRParaName, aName) &&
-                !e->GetAttribute(KSMILWRParaContent, aContent))
-                {
-                ret = KErrNone;
-                }
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// UniSmilUtils::RegionId
-// ---------------------------------------------------------
-
-TInt UniSmilUtils::GetRegionId( CMDXMLNode* aNodePtr, TPtrC& aId )
-    {
-    TInt ret = KErrNotSupported;
-
-    if ( aNodePtr )
-        {
-        if ( UniSmilUtils::IsMediaElem( aNodePtr ) )
-            {
-            ret = ((CMDXMLElement*)aNodePtr)->GetAttribute(KSMILWRParaRegion, aId);
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// UniSmilUtils::GetSrc
-// ---------------------------------------------------------
-
-TPtrC UniSmilUtils::GetSrcL( CMDXMLNode* aNodePtr )
-{
-    TPtrC src = TPtrC();
-    if ( aNodePtr )
-            {
-        CMDXMLElement* e = (CMDXMLElement*) aNodePtr;
-
-        if ( e && e->IsAttributeSpecified(KSMILWRParaSrc) )
-            {
-            User::LeaveIfError( e->GetAttribute(KSMILWRParaSrc, src) );
-            }
-        else
-            {
-            // Ok not to have src i.e. no default content.
-            }
-        }
-
-    return src;
-}
-
-
-// ---------------------------------------------------------
-// UniSmilUtils::GetSmilTypeL
-//
-// ---------------------------------------------------------
-TUniSmilType UniSmilUtils::GetSmilTypeL( CMDXMLDocument* aDom )
-    {
-
-    if ( UniSmilUtils::IsTemplateSmil( aDom ) )
-        {
-        return ETemplateSmil;
-        }
-    else if ( !aDom ||
-              !aDom->DocumentElement() ||
-              !aDom->DocumentElement()->FirstChild() )
-        {
-        return ENoSmil;
-        }
-    else
-        {
-        CConformanceChecker* checker = CConformanceChecker::NewL();
-        CleanupStack::PushL( checker );
-        TBool isConf( EFalse );
-
-        isConf = checker->Check( aDom, EMmsSmil_v2_0,
-            EAllowVideoTag |
-            EAllowNonMilliseconds |
-            EAllowAllAttributes |
-            EAllowMixedRegionDimensions |
-            EAllowAnyRegionNames );
-
-        CleanupStack::PopAndDestroy( checker );
-
-        if( isConf )
-            {
-            return EMmsSmil;
-            }
-
-        }
-    return E3GPPSmil;
-    }
-
-
-// ---------------------------------------------------------
-// UniSmilUtils::IsTemplateSmil
-//
-// ---------------------------------------------------------
-
-TBool UniSmilUtils::IsTemplateSmil( CMDXMLDocument* aDom )
-    {
-    TBool ret( EFalse );
-
-    CMDXMLNode* n = aDom->DocumentElement()->FirstChild();
-
-    while ( n )
-        {
-        if ( n->NodeName().Compare( KSMILWREleMeta ) == 0)
-            {
-            TPtrC v1, v2;
-            if ( !UniSmilUtils::GetMetaTag( n, v1, v2 ) )
-                {
-                if ( v1.Compare( KSMILMetaSmilProfile ) == 0 &&
-                     v2.Compare( KSMILMetaSmilProfileValue ) == 0)
-                    {
-                    ret = ETrue;
-                    break;
-                    }
-                }
-            }
-        else if ( n->NodeName().Compare( KSMILWREleBody ) == 0 )
-            {
-            // Cannot anymore have metatags
-            break;
-            }
-        n = UniSmilUtils::NextNode( n );
-        }
-    return ret;
-    }
-
-
-// EOF