X-Git-Url: http://git.mutantstargoat.com?p=faros-demo;a=blobdiff_plain;f=src%2Fseq.cc;fp=src%2Fseq.cc;h=29036a59642bc439c76a10fe40ef3c387cb4c90b;hp=0000000000000000000000000000000000000000;hb=d60954c471d6f446523bad8c4c4860aa2138da1e;hpb=6917510e2aff5fa6599065c684a344a24e42123d diff --git a/src/seq.cc b/src/seq.cc new file mode 100644 index 0000000..29036a5 --- /dev/null +++ b/src/seq.cc @@ -0,0 +1,103 @@ +#include +#include +#include "seq.h" +#include "track.h" + +struct SeqTrack { + char *name; + Track *track; +}; + +static std::vector tracks; + +bool init_seq() +{ + return true; +} + +void destroy_seq() +{ + int ntrk = tracks.size(); + for(int i=0; i= 0) return idx; + + SeqTrack st; + st.name = new char[strlen(name) + 1]; + strcpy(st.name, name); + st.track = new Track; + st.track->defval = defval; + st.track->interp = inmode; + st.track->extrap = exmode; + tracks.push_back(st); + return tracks.size() - 1; +} + +int find_seq_track(const char *name) +{ + int ntrk = tracks.size(); + for(int i=0; iclear(); +} + +void clear_seq_track(const char *name) +{ + int idx = find_seq_track(name); + if(idx >= 0) { + tracks[idx].track->clear(); + } +} + +void set_seq_value(int idx, long tm, float val) +{ + tracks[idx].track->set_key(tm, val); +} + +void set_seq_value(const char *name, long tm, float val) +{ + int idx = find_seq_track(name); + if(idx >= 0) { + tracks[idx].track->set_key(tm, val); + } +} + +float get_seq_value(int idx, long tm) +{ + return (*tracks[idx].track)(tm); +} + +float get_seq_value(const char *name, long tm) +{ + int idx = find_seq_track(name); + if(idx < 0) { + return 0.0f; + } + return (*tracks[idx].track)(tm); +} + +bool load_seq(const char *fname) +{ + return false; /* TODO */ +}