-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;
|
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();
|
return m_loops[loop].Tempo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Save() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* JACK_H */
|
#endif /* JACK_H */
|
||||||
|
|
17
src/loop.cpp
17
src/loop.cpp
|
@ -1,5 +1,6 @@
|
||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
#include "loop.h"
|
#include "loop.h"
|
||||||
|
|
||||||
Loop::Loop()
|
Loop::Loop()
|
||||||
|
@ -147,3 +148,19 @@ void Loop::Empty()
|
||||||
|
|
||||||
m_events.clear();
|
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
|
#ifndef LOOP_H
|
||||||
#define LOOP_H
|
#define LOOP_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <jack/jack.h>
|
#include <jack/jack.h>
|
||||||
|
@ -79,6 +80,8 @@ public:
|
||||||
{
|
{
|
||||||
return m_loop;
|
return m_loop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Save(FILE *f) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* LOOP_H */
|
#endif /* LOOP_H */
|
||||||
|
|
|
@ -314,6 +314,10 @@ bool UI::Run(Jack &j)
|
||||||
m_edit_timer = EDIT_TIMER_RESET;
|
m_edit_timer = EDIT_TIMER_RESET;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'S':
|
||||||
|
j.Save();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue