-Add ability to erase loops.

git-svn-id: http://svn.fuzzle.org/mloop/mloop/trunk@5 ba049829-c6ef-42ef-81ac-908dd8d2e907
remotes/git-svn@10
petern 2009-07-21 21:52:18 +00:00
parent 46e2d9f0ad
commit 4d5822a332
3 changed files with 19 additions and 4 deletions

View File

@ -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;
}
}
}

View File

@ -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();
}
*/

View File

@ -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);