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();
+
+}
+//---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------