Mercurial > hg > multitrack-audio-matcher
annotate src/MatchMarkers.cpp @ 50:93d21c20cfbc
Added Markers and the ability to switch to these points in the file when playing
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Thu, 14 Jun 2012 20:04:49 +0100 |
parents | |
children | 6f6461b0d07f |
rev | line source |
---|---|
andrew@50 | 1 /* |
andrew@50 | 2 * MatchMarkers.cpp |
andrew@50 | 3 * MultipleAudioMathcher |
andrew@50 | 4 * |
andrew@50 | 5 * Created by Andrew on 14/06/2012. |
andrew@50 | 6 * Copyright 2012 QMUL. All rights reserved. |
andrew@50 | 7 * |
andrew@50 | 8 */ |
andrew@50 | 9 |
andrew@50 | 10 #include "MatchMarkers.h" |
andrew@50 | 11 |
andrew@50 | 12 MatchMarkers::MatchMarkers(){ |
andrew@50 | 13 |
andrew@50 | 14 } |
andrew@50 | 15 |
andrew@50 | 16 |
andrew@50 | 17 void MatchMarkers::addMarker(const double& markerTime){ |
andrew@50 | 18 int i = 0; |
andrew@50 | 19 while (i < markers.size() && markers[i] < markerTime){ |
andrew@50 | 20 i++; |
andrew@50 | 21 } |
andrew@50 | 22 vector<double>::iterator it; |
andrew@50 | 23 it = markers.begin(); |
andrew@50 | 24 markers.insert(it + i, markerTime); |
andrew@50 | 25 |
andrew@50 | 26 printf("\n"); |
andrew@50 | 27 for (i = 0;i< markers.size();i++) |
andrew@50 | 28 printf("marker[%i] %f\n", i, markers[i]); |
andrew@50 | 29 |
andrew@50 | 30 } |
andrew@50 | 31 |
andrew@50 | 32 |
andrew@50 | 33 void MatchMarkers::deleteMarker(const int& markerIndex){ |
andrew@50 | 34 if (markerIndex >= 0 && markerIndex < markers.size()){ |
andrew@50 | 35 vector<double>::iterator it; |
andrew@50 | 36 it = markers.begin(); |
andrew@50 | 37 markers.erase(it+markerIndex); |
andrew@50 | 38 } |
andrew@50 | 39 } |
andrew@50 | 40 |
andrew@50 | 41 void MatchMarkers::saveMarkers(){ |
andrew@50 | 42 std::string filePath = "../../../data/markers.txt"; |
andrew@50 | 43 saveMarkers(filePath); |
andrew@50 | 44 |
andrew@50 | 45 } |
andrew@50 | 46 |
andrew@50 | 47 void MatchMarkers::saveMarkers(const std::string& filePath){ |
andrew@50 | 48 if (!markerOutputFile.is_open()){ |
andrew@50 | 49 markerOutputFile.open(filePath.c_str()); |
andrew@50 | 50 for (int i = 0;i < markers.size();i++){ |
andrew@50 | 51 markerOutputFile << markers[i] << endl; |
andrew@50 | 52 } |
andrew@50 | 53 markerOutputFile.close(); |
andrew@50 | 54 } |
andrew@50 | 55 |
andrew@50 | 56 } |
andrew@50 | 57 |