- commit
- 89da71bf8e91e72a77fc824f40958680ce947211
- parent
- 2fe28545f89bacd52a4c4db33b3a5c568fdc61eb
- Author
- xi <tobias.bengfort@gmx.net>
- Date
- 2010-11-01 16:54
clean
Diffstat
| A | src/curve.cpp | 54 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | src/curve.h | 47 | +++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 101 insertions, 0 deletions
diff --git a/src/curve.cpp b/src/curve.cpp
@@ -0,0 +1,54 @@
-1 1 #include "curve.h"
-1 2
-1 3 #include <cmath>
-1 4
-1 5 Curve::Curve() {
-1 6 marker=new Marker();
-1 7 sample=new Sample(marker);
-1 8 seeker=0;
-1 9 tempo=90;
-1 10 }
-1 11
-1 12 Curve::~Curve() {
-1 13 delete[] sample;
-1 14 delete[] marker;
-1 15 }
-1 16
-1 17 float Curve::get(float nn) {
-1 18 // TODO interpolation?
-1 19 return sample->get(nn);
-1 20 }
-1 21
-1 22 float Curve::getSeeker() {return seeker;}
-1 23 void Curve::setSeeker(float nn) {
-1 24 if (nn>=0 && nn<=1) seeker=nn;
-1 25 }
-1 26
-1 27 void Curve::setTempo(int bpm) {tempo=bpm;}
-1 28 int Curve::getTempo() {return tempo;}
-1 29
-1 30 // TODO select and move marker
-1 31 void Curve::addMarker() {
-1 32 float n=marker->nnew2new(seeker);
-1 33 marker->add(marker->new2old(n),n);
-1 34 }
-1 35
-1 36 void Curve::removeMarker() {
-1 37 int i=marker->getAreaNew(marker->nnew2new(seeker));
-1 38 marker->remove(i);
-1 39 }
-1 40
-1 41 int Curve::getMarkerLength() {return marker->getLength();}
-1 42 float Curve::getMarker(int i) {return marker->new2nnew(marker->getNew(i));}
-1 43
-1 44 void Curve::print() {
-1 45 for (int i=0; i<100; ++i) { // 100 or any number
-1 46 for (float j=-1; j<get(i); j+=0.1)
-1 47 std::cout << "+";
-1 48 if (std::abs(getSeeker()-i)<0.01)
-1 49 std::cout << " *";
-1 50 std::cout << std::endl;
-1 51 }
-1 52 }
-1 53
-1 54
diff --git a/src/curve.h b/src/curve.h
@@ -0,0 +1,47 @@
-1 1 #ifndef __XICURVE_H
-1 2 #define __XICURVE_H
-1 3
-1 4 #include <iostream>
-1 5 #include "sample.h"
-1 6
-1 7 // main part of the gui
-1 8 // layer between screen and backend. Converts everything to screen (0-1) values
-1 9 class Curve {
-1 10 public:
-1 11 Curve();
-1 12 ~Curve();
-1 13 float getSeeker();
-1 14 void setSeeker(float nn);
-1 15 void setTempo(int bpm);
-1 16 int getTempo();
-1 17 void print();
-1 18 // direct access to sample
-1 19 Sample* sample;
-1 20 // indirect access to sample
-1 21 float get(float nn);
-1 22 // indirect access to marker
-1 23 void addMarker();
-1 24 void removeMarker();
-1 25 int getMarkerLength();
-1 26 float getMarker(int i);
-1 27 private:
-1 28 float seeker; // 0-1
-1 29 Marker* marker;
-1 30 int tempo; // bpm
-1 31 };
-1 32
-1 33 /*
-1 34 int main() {
-1 35 Marker* m=new Marker();
-1 36 Sample* s=new Sample(m);
-1 37 m->add(0.5,0.3);
-1 38 int error;
-1 39 error=s->loadFile("../../test.wav");
-1 40
-1 41 Curve c(s);
-1 42 c.setScreenWidth(100);
-1 43 c.print();
-1 44 }
-1 45 */
-1 46
-1 47 #endif