ClipTag.cpp

Go to the documentation of this file.
00001 /*
00002    Copyright (C) 2003, 2004 Zentaro Kavanagh
00003 
00004    Copyright (C) 2003, 2004 Commonwealth Scientific and Industrial Research
00005    Organisation (CSIRO) Australia
00006 
00007    Redistribution and use in source and binary forms, with or without
00008    modification, are permitted provided that the following conditions
00009    are met:
00010 
00011    - Redistributions of source code must retain the above copyright
00012    notice, this list of conditions and the following disclaimer.
00013 
00014    - Redistributions in binary form must reproduce the above copyright
00015    notice, this list of conditions and the following disclaimer in the
00016    documentation and/or other materials provided with the distribution.
00017 
00018    - Neither the name of CSIRO Australia nor the names of its
00019    contributors may be used to endorse or promote products derived from
00020    this software without specific prior written permission.
00021 
00022    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00025    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00026    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00027    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00028    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00029    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00030    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00031    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00032    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033 */
00034 
00035 #include "stdafx.h"
00036 #include ".\cliptag.h"
00037 
00038 namespace illiminable {
00039 namespace libCMMLTagsDotNET {
00040 
00041         ClipTag::ClipTag(void)
00042         {
00043                 mBaseClass = new C_ClipTag;
00044                 mDeleteBase = true;
00045         }
00046 
00047         ClipTag::ClipTag(C_ClipTag* inTag, bool inDeleteBase) {
00048                 mBaseClass = inTag;
00049                 mDeleteBase = inDeleteBase;
00050         }
00051 
00052         ClipTag* ClipTag::clone()
00053         {
00054                 return new ClipTag(getMe()->clone(), true);
00055         }
00056         ClipTag::~ClipTag(void)
00057         {
00058                 if (mDeleteBase) {
00059                         delete mBaseClass;
00060                 }
00061                 mBaseClass = NULL;
00062         }
00063         
00064         C_ClipTag* ClipTag::getMe() {
00065                 return (C_ClipTag*)mBaseClass;
00066         }
00067 
00068         //Accessors
00069         String* ClipTag::track() {
00070                 return Wrappers::WStrToNetStr( getMe()->track().c_str() );
00071         }
00072         MetaTagList* ClipTag::metaList() {
00073                 return new MetaTagList(getMe()->metaList(), false);
00074         }
00075         AnchorTag* ClipTag::anchor() {
00076                 C_AnchorTag* locAnchor = getMe()->anchor();
00077                 if (locAnchor != NULL) {
00078                         return new AnchorTag(locAnchor,false);
00079                 } else {
00080                         return NULL;
00081                 }
00082         }
00083         ImageTag* ClipTag::image() {
00084                 C_ImageTag* locImage = getMe()->image();
00085                 if (locImage != NULL) {
00086                         return new ImageTag(locImage, false);
00087                 } else {
00088                         return NULL;
00089                 }
00090         }
00091         DescTag* ClipTag::desc() {
00092                 C_DescTag* locDesc = getMe()->desc();
00093                 if (locDesc != NULL) {
00094                         return new DescTag(locDesc, false);
00095                 } else {
00096                         return NULL;
00097                 }
00098         }
00099 
00100         String* ClipTag::start() {
00101                 return Wrappers::WStrToNetStr( getMe()->start().c_str() );
00102 
00103         }
00104         String* ClipTag::end() {
00105                 return Wrappers::WStrToNetStr( getMe()->end().c_str() );
00106 
00107         }
00108 
00109 
00110         //Mutators
00111         void ClipTag::setTrack(String* inTrack) {
00112                 wchar_t* tc = Wrappers::netStrToWStr( inTrack );
00113                 wstring locStr = tc;
00114                 getMe()->setTrack( locStr );
00115                 Wrappers::releaseWStr( tc );
00116         }
00117         void ClipTag::setAnchor(AnchorTag* inAnchor) {
00118                 if (inAnchor != NULL) {
00119                         getMe()->setAnchor(inAnchor->getMe()->clone());
00120                 } else {
00121                         getMe()->setAnchor(NULL);
00122                 }
00123         }
00124         void ClipTag::setImage(ImageTag* inImage) {
00125                 if (inImage != NULL) {
00126                         getMe()->setImage(inImage->getMe()->clone());
00127                 } else {
00128                         getMe()->setImage(NULL);
00129                 }
00130         }
00131         void ClipTag::setDesc(DescTag* inDesc) {
00132                 if (inDesc != NULL) {
00133                         getMe()->setDesc(inDesc->getMe()->clone());
00134                 } else {
00135                         getMe()->setDesc(NULL);
00136                 }
00137         }
00138 
00139         void ClipTag::setStart(String* inStart) {
00140                 wchar_t* tc = Wrappers::netStrToWStr( inStart );
00141                 wstring locStr = tc;
00142                 getMe()->setStart( locStr );
00143                 Wrappers::releaseWStr( tc );
00144         }
00145         void ClipTag::setEnd(String* inEnd) {
00146                 wchar_t* tc = Wrappers::netStrToWStr( inEnd );
00147                 wstring locStr = tc;
00148                 getMe()->setEnd( locStr );
00149                 Wrappers::releaseWStr( tc );
00150         }
00151 
00152 
00153         //Others
00154         String* ClipTag::toString() {
00155                 return Wrappers::WStrToNetStr( getMe()->toString().c_str() );
00156 
00157         }
00158 
00159 }
00160 }

Generated on Tue Feb 15 14:54:14 2005 for oggdsf by  doxygen 1.3.9