-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);
|
printf("Stopping loop %d\n", m_recording_loop);
|
||||||
m_loops[m_recording_loop].Stop();
|
m_loops[m_recording_loop].Stop();
|
||||||
break;
|
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_state != LS_IDLE) return;
|
||||||
|
|
||||||
|
if (m_length == 0) return;
|
||||||
|
|
||||||
m_position = 0;
|
m_position = 0;
|
||||||
m_iterator = m_events.begin();
|
m_iterator = m_events.begin();
|
||||||
m_state = loop ? LS_PLAY_LOOP : LS_PLAY_ONCE;
|
m_state = loop ? LS_PLAY_LOOP : LS_PLAY_ONCE;
|
||||||
|
@ -121,10 +123,17 @@ void Loop::EndFromNoteCache(NoteCache &cache)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
void Loop::Empty()
|
||||||
void Loop::Reset()
|
|
||||||
{
|
{
|
||||||
m_state = LS_IDLE;
|
if (m_state != LS_IDLE) return;
|
||||||
|
|
||||||
|
m_length = 0;
|
||||||
m_position = 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 SetLength(jack_nframes_t length);
|
||||||
void Start(bool loop);
|
void Start(bool loop);
|
||||||
void Stop();
|
void Stop();
|
||||||
|
void Empty();
|
||||||
|
|
||||||
void StartFromNoteCache(NoteCache &cache);
|
void StartFromNoteCache(NoteCache &cache);
|
||||||
void EndFromNoteCache(NoteCache &cache);
|
void EndFromNoteCache(NoteCache &cache);
|
||||||
|
|
Loading…
Reference in New Issue