-Add ability to erase loops.
git-svn-id: http://svn.fuzzle.org/mloop/mloop/trunk@5 ba049829-c6ef-42ef-81ac-908dd8d2e907remotes/git-svn@10
parent
46e2d9f0ad
commit
4d5822a332
|
@ -249,6 +249,11 @@ void Jack::Run()
|
|||
printf("Stopping loop %d\n", m_recording_loop);
|
||||
m_loops[m_recording_loop].Stop();
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
printf("Erasing loop %d\n", m_recording_loop);
|
||||
m_loops[m_recording_loop].Empty();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
17
src/loop.cpp
17
src/loop.cpp
|
@ -63,6 +63,8 @@ void Loop::Start(bool loop)
|
|||
{
|
||||
if (m_state != LS_IDLE) return;
|
||||
|
||||
if (m_length == 0) return;
|
||||
|
||||
m_position = 0;
|
||||
m_iterator = m_events.begin();
|
||||
m_state = loop ? LS_PLAY_LOOP : LS_PLAY_ONCE;
|
||||
|
@ -121,10 +123,17 @@ void Loop::EndFromNoteCache(NoteCache &cache)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void Loop::Reset()
|
||||
void Loop::Empty()
|
||||
{
|
||||
m_state = LS_IDLE;
|
||||
if (m_state != LS_IDLE) return;
|
||||
|
||||
m_length = 0;
|
||||
m_position = 0;
|
||||
|
||||
for (m_iterator = m_events.begin(); m_iterator != m_events.end(); ++m_iterator) {
|
||||
jack_midi_event_t &event = (*m_iterator).first;
|
||||
free(event.buffer);
|
||||
}
|
||||
|
||||
m_events.clear();
|
||||
}
|
||||
*/
|
||||
|
|
|
@ -35,6 +35,7 @@ public:
|
|||
void SetLength(jack_nframes_t length);
|
||||
void Start(bool loop);
|
||||
void Stop();
|
||||
void Empty();
|
||||
|
||||
void StartFromNoteCache(NoteCache &cache);
|
||||
void EndFromNoteCache(NoteCache &cache);
|
||||
|
|
Loading…
Reference in New Issue