From 8a9a0c0b2469539d378a7688c2a302e75f9cd7f8 Mon Sep 17 00:00:00 2001 From: Daniel Collin Date: Mon, 15 Sep 2014 21:38:35 +0200 Subject: [PATCH] First version of looping support implemented Part of work for #96 --- ogl_editor/src/Editor.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index db73192..0a51013 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -528,12 +528,15 @@ void Editor_update() internalUpdate(); } - if (trackData->isPlaying || trackData->isLooping) - { - printf("loop between %d %d\n", trackData->startLoop, trackData->endLoop); - } + // Update if we are playing with loop enabled - // + if (trackData->isPlaying && trackData->isLooping) + { + const int row = getRowPos(); + + if (row >= trackData->endLoop) + setRowPos(trackData->startLoop); + } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1264,8 +1267,8 @@ static void onPlayLoop() { TrackData* trackData = getTrackData(); const int rowPos = getRowPos(); - const int startLoop = TrackData_getNextLoopmark(trackData, rowPos); - const int endLoop = TrackData_getPrevLoopmark(trackData, rowPos); + const int endLoop = TrackData_getNextLoopmark(trackData, rowPos); + const int startLoop = TrackData_getPrevLoopmark(trackData, rowPos); // Make sure we have a range to loop within