-Add: Initial incomplete support for saving state.
git-svn-id: http://svn.fuzzle.org/mloop/trunk@24 ba049829-c6ef-42ef-81ac-908dd8d2e907master
parent
b33dd1a800
commit
7e385cb58e
|
@ -184,3 +184,12 @@ bool Jack::Run()
|
|||
return false;
|
||||
}
|
||||
|
||||
void Jack::Save() const
|
||||
{
|
||||
FILE *f = fopen("test.txt", "w");
|
||||
for (int i = 0; i < NUM_LOOPS; i++) {
|
||||
fprintf(f, "LOOP %d\n", i);
|
||||
m_loops[i].Save(f);
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
|
|
|
@ -89,6 +89,8 @@ public:
|
|||
{
|
||||
return m_loops[loop].Tempo();
|
||||
}
|
||||
|
||||
void Save() const;
|
||||
};
|
||||
|
||||
#endif /* JACK_H */
|
||||
|
|
17
src/loop.cpp
17
src/loop.cpp
|
@ -1,5 +1,6 @@
|
|||
/* $Id$ */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "loop.h"
|
||||
|
||||
Loop::Loop()
|
||||
|
@ -147,3 +148,19 @@ void Loop::Empty()
|
|||
|
||||
m_events.clear();
|
||||
}
|
||||
|
||||
void Loop::Save(FILE *f) const
|
||||
{
|
||||
fprintf(f, "%u %f %f\n", m_length, m_position, m_tempo);
|
||||
fprintf(f, "%lu\n", m_events.size());
|
||||
|
||||
EventList::const_iterator it;
|
||||
for (it = m_events.begin(); it != m_events.end(); ++it) {
|
||||
const jack_midi_event_t &ev = *it;
|
||||
fprintf(f, "%u %lu", ev.time, ev.size);
|
||||
for (uint i = 0; i < ev.size; i++) {
|
||||
fprintf(f, " %02X", ev.buffer[i]);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#ifndef LOOP_H
|
||||
#define LOOP_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <list>
|
||||
#include <jack/jack.h>
|
||||
|
@ -79,6 +80,8 @@ public:
|
|||
{
|
||||
return m_loop;
|
||||
}
|
||||
|
||||
void Save(FILE *f) const;
|
||||
};
|
||||
|
||||
#endif /* LOOP_H */
|
||||
|
|
|
@ -314,6 +314,10 @@ bool UI::Run(Jack &j)
|
|||
m_edit_timer = EDIT_TIMER_RESET;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
j.Save();
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue