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 { |