Mercurial > hg > soniczoomios
diff presetManager.mm @ 3:43df75088d85
fixed sticking scroll
more file fiddling
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Mon, 03 Dec 2012 18:29:07 +0000 |
parents | 307e5fb699fb |
children | 7541aeaebcdc |
line wrap: on
line diff
--- a/presetManager.mm Tue Nov 27 15:34:51 2012 +0000 +++ b/presetManager.mm Mon Dec 03 18:29:07 2012 +0000 @@ -9,18 +9,24 @@ #include "presetManager.h" //--------------------------------------------------------------------------- - +extern Grid theGridView; PresetManager presetManager; //--------------------------------------------------------------------------- PresetManager::PresetManager(){ + timesOpened = 0; + startupLoadAll(); + + nextID = 0; } //--------------------------------------------------------------------------- -int PresetManager::addPreset(TwoVector coord, string name){ +int PresetManager::addPreset(const TwoVector coord, const string name){ + + // check for same name vector<Preset *>::iterator iter; for(iter = thePresets.begin(); iter < thePresets.end(); iter++){ @@ -36,6 +42,8 @@ return -2; } + + // check for same coords (!?!) thePresets.push_back(new Preset(coord, name,nextID)); @@ -43,18 +51,61 @@ return nextID++; } //--------------------------------------------------------------------------- -vector<TwoVector > getPresetsInRange(TwoVector min, TwoVector max){ +vector<TwoVector > PresetManager::getPresetsInRange(const TwoVector min, const TwoVector max){ //return all the coordinates. oh and names (displayed at certain scales?). -} -//--------------------------------------------------------------------------- -void startupLoadAll(){ - // get stuff from XML -} -//--------------------------------------------------------------------------- -void exitAndSaveAll(){ + + // TODO INEFFICIENT FOR LOTS OF PRESETS. CALLED EVERY GRAPHICS UPDATE! + // so: put burden on saving rather than retrieving, make into list and index using coordinates + + vector<TwoVector > results; + vector<Preset *>::iterator presetIter; + for(presetIter = thePresets.begin(); presetIter < thePresets.end(); presetIter++){ + if( ((*presetIter)->coordinates.x > min.x ) && ((*presetIter)->coordinates.y > min.y ) && ((*presetIter)->coordinates.x < max.x ) && ((*presetIter)->coordinates.y < max.y )){ + results.push_back((*presetIter)->coordinates); + } + + } + return results; } //--------------------------------------------------------------------------- +void PresetManager::startupLoadAll(){ + // get stuff from file + // load file + + string fname = ofxiPhoneGetDocumentsDirectory() + "presets.dat"; + char *fileName = (char*)fname.c_str(); + ifstream from(fileName); + string line; + + // simply prints file + while(from >> line){ + cout << line << "\n"; + + } + + + + timesOpened++; +} +//--------------------------------------------------------------------------- +void PresetManager::exitAndSaveAll(){ + ofFile presetFile(ofxiPhoneGetDocumentsDirectory() +"presets.dat",ofFile::WriteOnly); + + cout << "Exit and save presets\n"; + vector<Preset *>::iterator presetIter; + + for(presetIter = thePresets.begin(); presetIter < thePresets.end(); presetIter++){ + //vector<int> params; + //params = theGridView.calculateParamsFromCoord((*presetIter)->coordinates); + presetFile << **presetIter << "\n"; + cout << **presetIter << "\n"; + + } + presetFile.close(); + +} +//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //---------------------------------------------------------------------------