HCE project C++ developers source code library  1.1.1
HCE project developer library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
MultiMediaCounters.h
Go to the documentation of this file.
1 #ifndef MULTI_MEDIA_COUNTERS_H
2 #define MULTI_MEDIA_COUNTERS_H
3 
4 #include <AVLTree.h>
5 
7 
8 template <class idType>
10 {
11  public:
14 
15  void addMultimedia(idType resId, u_int16_t multiMediaMask);
16  void delMultimedia(idType resId);
17  u_int32_t getImgCount();
18  u_int32_t getVideoCount();
19  u_int32_t getSoundCount();
20 
21  private:
22  AVLTree<idType, bool> resourcesImg;
23  AVLTree<idType, bool> resourcesVideo;
24  AVLTree<idType, bool> resourcesSound;
25 
26  void updateMultiMedia(MultiMediaTypes multiMediaType, idType resId);
27 };
28 
29 template <class idType>
31 
32 template <class idType>
34 
35 template <class idType>
36 void MultiMediaCounters<idType>::addMultimedia(idType resId, u_int16_t multiMediaMask)
37 {
38  if (multiMediaMask & 0xFF){
39  updateMultiMedia(IMG_TYPE, resId);
40  }
41  if (multiMediaMask & 0x0100){
42  updateMultiMedia(VIDEO_TYPE, resId);
43  }
44  if (multiMediaMask & 0x0200){
45  updateMultiMedia(SOUND_TYPE, resId);
46  }
47 }
48 
49 template <class idType>
50 void MultiMediaCounters<idType>::updateMultiMedia(MultiMediaTypes multiMediaType, idType resId)
51 {
52  switch (multiMediaType){
53  case IMG_TYPE:
54  if (!resourcesImg.find(resId)){
55  resourcesImg.add(resId, true);
56  }
57  break;
58 
59  case VIDEO_TYPE:
60  if (!resourcesVideo.find(resId)){
61  resourcesVideo.add(resId, true);
62  }
63  break;
64 
65  case SOUND_TYPE:
66  if (!resourcesSound.find(resId)){
67  resourcesSound.add(resId, true);
68  }
69  break;
70  }
71 }
72 
73 template <class idType>
75 {
76  resourcesImg.del(resId);
77  resourcesVideo.del(resId);
78  resourcesSound.del(resId);
79 }
80 
81 template <class idType>
83 {
84  return resourcesImg.getNodesCount();
85 }
86 
87 template <class idType>
89 {
90  return resourcesVideo.getNodesCount();
91 }
92 
93 template <class idType>
95 {
96  return resourcesSound.getNodesCount();
97 }
98 #endif
99