videocollection/videocollectionwrapper/src/videodatacontainer.cpp
changeset 52 e3cecb93e76a
parent 28 c48470be1ba7
equal deleted inserted replaced
47:45e72b57a2fd 52:e3cecb93e76a
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:   VideoDataContainer class declaration*
    14 * Description:   VideoDataContainer class declaration*
    15 */
    15 */
    16 
    16 
    17 // Version : %version: 14 %
    17 // Version : %version: 15 %
    18 
    18 
    19 // INCLUDE FILES
    19 // INCLUDE FILES
    20 #include <mpxmediageneraldefs.h>
    20 #include <mpxmediageneraldefs.h>
    21 #include <mpxmedia.h>
    21 #include <mpxmedia.h>
    22 #include <vcxmyvideosdefs.h>
    22 #include <vcxmyvideosdefs.h>
    23 
    23 
    24 #include "videodatacontainer.h"
    24 #include "videodatacontainer.h"
    25 #include "videocollectionutils.h"
    25 #include "videocollectionutils.h"
    26 #include "videocollectiontrace.h"
    26 #include "videocollectiontrace.h"
       
    27 
       
    28 const int INVALID_INDEX = -1;
       
    29 const TMPXItemId INVALID_ID = TMPXItemId::InvalidId();
       
    30 
    27 
    31 
    28 /**
    32 /**
    29  * global qHash function required fo creating hash values for TMPXItemId -keys
    33  * global qHash function required fo creating hash values for TMPXItemId -keys
    30  */
    34  */
    31 inline uint qHash(TMPXItemId key) 
    35 inline uint qHash(TMPXItemId key) 
   129 
   133 
   130 // -----------------------------------------------------------------------------
   134 // -----------------------------------------------------------------------------
   131 // fromIndex
   135 // fromIndex
   132 // -----------------------------------------------------------------------------
   136 // -----------------------------------------------------------------------------
   133 //
   137 //
   134 CMPXMedia* VideoDataContainer::fromIndex(int index) const
   138 CMPXMedia* VideoDataContainer::fromIndex(const int &index) const
   135 {   
   139 {   
   136     if(index >= 0 && index < mMediaIds.count() && mMediaData.contains(mMediaIds[index]))
   140     if(index >= 0 && index < mMediaIds.count() && mMediaData.contains(mMediaIds[index]))
   137     {   
   141     {   
   138         return (mMediaData.find(mMediaIds[index]))->second;
   142         return (mMediaData.find(mMediaIds[index]))->second;
   139     }
   143     }
   142  
   146  
   143 // -----------------------------------------------------------------------------
   147 // -----------------------------------------------------------------------------
   144 // indexOfId
   148 // indexOfId
   145 // -----------------------------------------------------------------------------
   149 // -----------------------------------------------------------------------------
   146 //
   150 //
   147 int VideoDataContainer::indexOfId(const TMPXItemId &id) const
   151 const int& VideoDataContainer::indexOfId(const TMPXItemId &id) const 
   148 {
   152 {
   149     QHash<TMPXItemId, QPair<int, CMPXMedia*> >::const_iterator iter = mMediaData.find(id);
   153     QHash<TMPXItemId, QPair<int, CMPXMedia*> >::const_iterator iter = mMediaData.find(id);
   150     if( iter != mMediaData.constEnd())
   154     if( iter != mMediaData.constEnd())
   151     {
   155     {
   152         return iter->first;
   156         return iter->first;
   153     }
   157     }
   154     return -1;
   158     return INVALID_INDEX;
   155 }
   159 }
   156 
   160 
   157 // -----------------------------------------------------------------------------
   161 // -----------------------------------------------------------------------------
   158 // idFromIndex
   162 // idFromIndex
   159 // -----------------------------------------------------------------------------
   163 // -----------------------------------------------------------------------------
   160 //
   164 //
   161 TMPXItemId VideoDataContainer::idFromIndex(int index) const
   165 const TMPXItemId& VideoDataContainer::idFromIndex(const int &index) const
   162 {
   166 {   
   163     if(index >= 0 && index < mMediaIds.count())
   167     if(index >= 0 && index < mMediaIds.count())
   164     {
   168     {
   165         return mMediaIds[index];
   169         return mMediaIds.at(index);
   166     }
   170     }
   167     return TMPXItemId::InvalidId();    
   171     return INVALID_ID;    
   168 }
   172 }
   169 
   173 
   170 // -----------------------------------------------------------------------------
   174 // -----------------------------------------------------------------------------
   171 // count
   175 // count
   172 // -----------------------------------------------------------------------------
   176 // -----------------------------------------------------------------------------
   178 
   182 
   179 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   180 // decIndexesAfter
   184 // decIndexesAfter
   181 // -----------------------------------------------------------------------------
   185 // -----------------------------------------------------------------------------
   182 //
   186 //
   183 void VideoDataContainer::decIndexesAfter(int fromIndex)
   187 void VideoDataContainer::decIndexesAfter(const int &fromIndex)
   184 {
   188 {
   185     int count = mMediaIds.count();
   189     int count = mMediaIds.count();
   186     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::iterator hashIter;   
   190     QMultiHash<TMPXItemId, QPair<int, CMPXMedia*> >::iterator hashIter;   
   187     for(int i = fromIndex; i < count; ++i)
   191     for(int i = fromIndex; i < count; ++i)
   188     {
   192     {
   196 
   200 
   197 // -----------------------------------------------------------------------------
   201 // -----------------------------------------------------------------------------
   198 // markItemsRemoved
   202 // markItemsRemoved
   199 // -----------------------------------------------------------------------------
   203 // -----------------------------------------------------------------------------
   200 //
   204 //
   201 TMPXItemId VideoDataContainer::markItemRemoved(const int &itemIndex)
   205 const TMPXItemId VideoDataContainer::markItemRemoved(const int &itemIndex)
   202 {
   206 {
   203     // for all provided indexes:
   207     // for all provided indexes:
   204     // - get item address from mMediaData
   208     // - get item address from mMediaData
   205     // - get item index from mMediaData
   209     // - get item index from mMediaData
   206     // - remove item from mMediaData, do not deallocate object
   210     // - remove item from mMediaData, do not deallocate object
   207     // - remove item's id from mMediaIds -list 
   211     // - remove item's id from mMediaIds -list 
   208     // - append item into mRemovedMedia
   212     // - append item into mRemovedMedia
   209     // - append item's id into returned id -list
   213     // - append item's id into returned id -list
   210     TMPXItemId id = TMPXItemId::InvalidId();
       
   211     CMPXMedia *media = 0;
   214     CMPXMedia *media = 0;
   212     id = idFromIndex(itemIndex);
   215     // get copy of id of item to be removed
       
   216     const TMPXItemId id = idFromIndex(itemIndex);
   213     media = fromIndex(itemIndex);    
   217     media = fromIndex(itemIndex);    
   214     if(id == TMPXItemId::InvalidId() || !media)
   218     if(id == TMPXItemId::InvalidId() || !media)
   215     {
   219     {
   216         return id;
   220         return id;
   217     }
   221     }
   301 
   305 
   302 // -----------------------------------------------------------------------------
   306 // -----------------------------------------------------------------------------
   303 // getRemovedMedia
   307 // getRemovedMedia
   304 // -----------------------------------------------------------------------------
   308 // -----------------------------------------------------------------------------
   305 //
   309 //
   306 CMPXMedia* VideoDataContainer::getRemovedMedia(TMPXItemId itemId)
   310 CMPXMedia* VideoDataContainer::getRemovedMedia(TMPXItemId &itemId)
   307 {
   311 {
   308     QHash<TMPXItemId, CMPXMedia*>::const_iterator itemIter = 
   312     QHash<TMPXItemId, CMPXMedia*>::const_iterator itemIter = 
   309                                             mRemovedMedia.constFind(itemId);
   313                                             mRemovedMedia.constFind(itemId);
   310     if(itemIter != mRemovedMedia.constEnd())
   314     if(itemIter != mRemovedMedia.constEnd())
   311     {
   315     {