rt300@6
|
1 //
|
rt300@6
|
2 // ExplorePresetManager.h
|
rt300@6
|
3 // riftathon
|
rt300@6
|
4 //
|
rt300@6
|
5 // Created by Robert Tubb on 16/10/2014.
|
rt300@6
|
6 //
|
rt300@6
|
7 // when people explore and find presets save them
|
rt300@6
|
8 // record audio
|
rt300@6
|
9 // can display images and text
|
rt300@6
|
10
|
rt300@6
|
11 //
|
rt300@6
|
12
|
rt300@6
|
13 #ifndef __riftathon__ExplorePresetManager__
|
rt300@6
|
14 #define __riftathon__ExplorePresetManager__
|
rt300@6
|
15
|
rt300@6
|
16 #include <iostream>
|
rt300@6
|
17 #include "presetManager.h"
|
rt300@18
|
18 #include "eventLogger.h"
|
rt300@18
|
19 #define MAX_PRESETS 8
|
rt300@6
|
20
|
rt300@18
|
21 extern EventLogger eventLogger;
|
rt300@18
|
22
|
rt300@18
|
23
|
rt300@18
|
24 template <typename T>
|
rt300@18
|
25 vector<T> makeVector8(T a1, T a2,T a3,T a4,T a5,T a6, T a7, T a8){
|
rt300@18
|
26
|
rt300@18
|
27 vector<T> vec;
|
rt300@18
|
28 vec.push_back(a1);
|
rt300@18
|
29 vec.push_back(a2);
|
rt300@18
|
30 vec.push_back(a3);
|
rt300@18
|
31 vec.push_back(a4);
|
rt300@18
|
32 vec.push_back(a5);
|
rt300@18
|
33 vec.push_back(a6);
|
rt300@18
|
34 vec.push_back(a7);
|
rt300@18
|
35 vec.push_back(a8);
|
rt300@18
|
36 return vec;
|
rt300@18
|
37 }
|
rt300@18
|
38 // preset slot is a preset with no values, waiting to become a real preset
|
rt300@18
|
39
|
rt300@18
|
40 class PresetSlot : public Preset{
|
rt300@18
|
41 public:
|
rt300@18
|
42 bool isFilled;
|
rt300@18
|
43
|
rt300@18
|
44
|
rt300@18
|
45 PresetSlot(vector<int> defaults,
|
rt300@18
|
46 string aname,
|
rt300@18
|
47 int aID,
|
rt300@18
|
48 string un,
|
rt300@18
|
49 unsigned int uid,
|
rt300@18
|
50 string imageFile = "")
|
rt300@18
|
51 : Preset(defaults, aname, aID, un, uid, imageFile)
|
rt300@18
|
52
|
rt300@18
|
53 {
|
rt300@18
|
54 isFilled = false;
|
rt300@18
|
55
|
rt300@18
|
56 name = aname;
|
rt300@18
|
57 creatorUserName = un;
|
rt300@18
|
58 creatorDeviceID = uid;
|
rt300@18
|
59 double timemsd = [NSDate timeIntervalSinceReferenceDate];
|
rt300@18
|
60 creationTime = (unsigned long long)(timemsd*1000);
|
rt300@18
|
61
|
rt300@18
|
62 //TODO color / texture?
|
rt300@18
|
63 imageFileName = imageFile;
|
rt300@18
|
64 if (imageFileName != ""){
|
rt300@18
|
65 iconView = new PresetIconView(name, imageFileName);
|
rt300@18
|
66 }
|
rt300@18
|
67
|
rt300@18
|
68 };
|
rt300@18
|
69
|
rt300@18
|
70 void setValues(vector<int> v){
|
rt300@18
|
71 CCValues = v;
|
rt300@18
|
72 double timemsd = [NSDate timeIntervalSinceReferenceDate];
|
rt300@18
|
73 creationTime = (unsigned long long)(timemsd*1000);
|
rt300@18
|
74 if (CCValues.size()){
|
rt300@18
|
75 isFilled = true;
|
rt300@18
|
76
|
rt300@18
|
77 }else{
|
rt300@18
|
78 isFilled = false;
|
rt300@18
|
79 }
|
rt300@18
|
80 }
|
rt300@18
|
81
|
rt300@18
|
82 };
|
rt300@18
|
83 //=====================================================================================
|
rt300@18
|
84 //=====================================================================================
|
rt300@6
|
85
|
rt300@6
|
86 class ExplorePresetManager : public PresetManager {
|
rt300@6
|
87
|
rt300@6
|
88 public:
|
rt300@18
|
89 void onAppLoad();
|
rt300@18
|
90 void goToFirstEmptySlot();
|
rt300@18
|
91 bool writeValuesToSlot(vector<int> values);
|
rt300@19
|
92 PresetSlot* getCurrentPresetSlot();
|
rt300@18
|
93 PresetSlot* getPresetSlotAtIndex(int index);
|
rt300@44
|
94 void nextSlot();
|
rt300@6
|
95 protected:
|
rt300@18
|
96
|
rt300@18
|
97 void initPresetSlots();
|
rt300@18
|
98
|
rt300@18
|
99 void fillSlotsWithLoadedPresets();
|
rt300@18
|
100 void fillSlotFromLoadedPreset(vector<PresetSlot *>::iterator psi, vector<Preset *>::iterator pi);
|
rt300@18
|
101 void generatePresetSlot(const string name, const string imagefn);
|
rt300@18
|
102
|
rt300@6
|
103 int filledSlots;
|
rt300@18
|
104 int currentPresetSlotIndex;
|
rt300@6
|
105 string presetSlotFilename;
|
rt300@18
|
106 vector<PresetSlot *> thePresetSlots;
|
rt300@6
|
107
|
rt300@6
|
108 vector<string> categories;
|
rt300@6
|
109 vector<string> names;
|
rt300@27
|
110
|
rt300@27
|
111
|
rt300@6
|
112 };
|
rt300@6
|
113
|
rt300@6
|
114 #endif /* defined(__riftathon__ExplorePresetManager__) */
|