view ExplorePresetManager.h @ 44:d810aa9ca03a

times. cosmetic stuff
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Mon, 15 Dec 2014 17:33:41 +0000
parents 27cdf475aa4b
children
line wrap: on
line source
//
//  ExplorePresetManager.h
//  riftathon
//
//  Created by Robert Tubb on 16/10/2014.
//
// when people explore and find presets save them
// record audio
// can display images and text

// 

#ifndef __riftathon__ExplorePresetManager__
#define __riftathon__ExplorePresetManager__

#include <iostream>
#include "presetManager.h"
#include "eventLogger.h"
#define MAX_PRESETS 8

extern EventLogger eventLogger;


template <typename T>
vector<T> makeVector8(T a1, T a2,T a3,T a4,T a5,T a6, T a7, T a8){
    
    vector<T> vec;
    vec.push_back(a1);
    vec.push_back(a2);
    vec.push_back(a3);
    vec.push_back(a4);
    vec.push_back(a5);
    vec.push_back(a6);
    vec.push_back(a7);
    vec.push_back(a8);
    return vec;
}
// preset slot is a preset with no values, waiting to become a real preset

class PresetSlot : public Preset{
public:
    bool isFilled;
    
    
    PresetSlot(vector<int> defaults,
               string aname,
               int aID,
               string un,
               unsigned int uid,
               string imageFile = "")
    : Preset(defaults, aname, aID, un, uid, imageFile)
    
    {
        isFilled = false;
        
        name = aname;
        creatorUserName = un;
        creatorDeviceID = uid;
        double timemsd = [NSDate timeIntervalSinceReferenceDate];
        creationTime = (unsigned long long)(timemsd*1000);
        
        //TODO color / texture?
        imageFileName = imageFile;
        if (imageFileName != ""){
            iconView = new PresetIconView(name, imageFileName);
        }
        
    };
    
    void setValues(vector<int> v){
        CCValues = v;
        double timemsd = [NSDate timeIntervalSinceReferenceDate];
        creationTime = (unsigned long long)(timemsd*1000);
        if (CCValues.size()){
            isFilled = true;
            
        }else{
            isFilled = false;
        }
    }

};
//=====================================================================================
//=====================================================================================

class ExplorePresetManager : public PresetManager {

public:
    void onAppLoad();
    void goToFirstEmptySlot();
    bool writeValuesToSlot(vector<int> values);
    PresetSlot* getCurrentPresetSlot();
    PresetSlot* getPresetSlotAtIndex(int index);
    void nextSlot();
protected:
    
    void initPresetSlots();
    
    void fillSlotsWithLoadedPresets();
    void fillSlotFromLoadedPreset(vector<PresetSlot *>::iterator psi, vector<Preset *>::iterator pi);
    void generatePresetSlot(const string name, const string imagefn);
 
    int filledSlots;
    int currentPresetSlotIndex;
    string presetSlotFilename;
    vector<PresetSlot *> thePresetSlots;
    
    vector<string> categories;
    vector<string> names;
    
    
};

#endif /* defined(__riftathon__ExplorePresetManager__) */