More WIP on #96

This commit is contained in:
Daniel Collin 2014-09-15 21:25:05 +02:00
parent ed306d3c48
commit bfeca1221d
7 changed files with 46 additions and 1 deletions

View File

@ -289,6 +289,7 @@ void Editor_create()
s_editorData.trackData.endRow = 10000; s_editorData.trackData.endRow = 10000;
s_editorData.trackData.highlightRowStep = 8; s_editorData.trackData.highlightRowStep = 8;
s_editorData.trackData.isPlaying = false; s_editorData.trackData.isPlaying = false;
s_editorData.trackData.isLooping = false;
Emgui_setDefaultFont(); Emgui_setDefaultFont();
} }
@ -518,6 +519,7 @@ static bool internalUpdate()
void Editor_update() void Editor_update()
{ {
TrackData* trackData = getTrackData();
bool need_update = internalUpdate(); bool need_update = internalUpdate();
if (need_update) if (need_update)
@ -525,6 +527,13 @@ void Editor_update()
Editor_updateTrackScroll(); Editor_updateTrackScroll();
internalUpdate(); internalUpdate();
} }
if (trackData->isPlaying || trackData->isLooping)
{
printf("loop between %d %d\n", trackData->startLoop, trackData->endLoop);
}
//
} }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -854,7 +863,7 @@ static int processCommands()
{ {
viewInfo->rowPos = htonl(newRow); viewInfo->rowPos = htonl(newRow);
viewInfo->selectStartRow = viewInfo->selectStopRow = viewInfo->rowPos; viewInfo->selectStartRow = viewInfo->selectStopRow = viewInfo->rowPos;
rlog(R_INFO, "row from demo %d\n", s_editorData.trackViewInfo.rowPos); //rlog(R_INFO, "row from demo %d\n", s_editorData.trackViewInfo.rowPos);
} }
ret = 1; ret = 1;
@ -1246,6 +1255,30 @@ static void onPlay()
{ {
RemoteConnection_sendPauseCommand(!RemoteConnection_isPaused()); RemoteConnection_sendPauseCommand(!RemoteConnection_isPaused());
getTrackData()->isPlaying = !RemoteConnection_isPaused(); getTrackData()->isPlaying = !RemoteConnection_isPaused();
getTrackData()->isLooping = false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void onPlayLoop()
{
TrackData* trackData = getTrackData();
const int rowPos = getRowPos();
const int startLoop = TrackData_getNextLoopmark(trackData, rowPos);
const int endLoop = TrackData_getPrevLoopmark(trackData, rowPos);
// Make sure we have a range to loop within
if (startLoop == -1 || endLoop == -1)
return;
trackData->startLoop = startLoop;
trackData->endLoop = endLoop;
RemoteConnection_sendPauseCommand(!RemoteConnection_isPaused());
trackData->isPlaying = !RemoteConnection_isPaused();
trackData->isLooping = true;
} }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1488,6 +1521,7 @@ void Editor_menuEvent(int menuItem)
case EDITOR_MENU_PREV_KEY : case EDITOR_MENU_PREV_KEY :
case EDITOR_MENU_NEXT_KEY : case EDITOR_MENU_NEXT_KEY :
case EDITOR_MENU_PLAY : case EDITOR_MENU_PLAY :
case EDITOR_MENU_PLAY_LOOP :
{ {
endEditing(); endEditing();
} }
@ -1567,6 +1601,7 @@ void Editor_menuEvent(int menuItem)
// View // View
case EDITOR_MENU_PLAY : onPlay(); break; case EDITOR_MENU_PLAY : onPlay(); break;
case EDITOR_MENU_PLAY_LOOP : onPlayLoop(); break;
case EDITOR_MENU_ROWS_UP : onRowStep(-highlightRowStep , NO_SELECTION); break; case EDITOR_MENU_ROWS_UP : onRowStep(-highlightRowStep , NO_SELECTION); break;
case EDITOR_MENU_ROWS_DOWN : onRowStep(highlightRowStep , NO_SELECTION); break; case EDITOR_MENU_ROWS_DOWN : onRowStep(highlightRowStep , NO_SELECTION); break;
case EDITOR_MENU_ROWS_2X_UP : onRowStep(-highlightRowStep * 2 , NO_SELECTION); break; case EDITOR_MENU_ROWS_2X_UP : onRowStep(-highlightRowStep * 2 , NO_SELECTION); break;

View File

@ -65,6 +65,7 @@ MenuDescriptor g_editMenu[] =
MenuDescriptor g_viewMenu[] = MenuDescriptor g_viewMenu[] =
{ {
{ _T("Start/Stop Playback"), EDITOR_MENU_PLAY, EMGUI_KEY_SPACE, 0, 0 }, { _T("Start/Stop Playback"), EDITOR_MENU_PLAY, EMGUI_KEY_SPACE, 0, 0 },
{ _T("Start Loop Playback"), EDITOR_MENU_PLAY_LOOP, EMGUI_KEY_SPACE, 0, EMGUI_KEY_CTRL },
{ _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 }, { _T(""), EDITOR_MENU_SEPARATOR, 0, 0, 0 },
{ _T("Jump 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, EMGUI_KEY_ALT }, { _T("Jump 8 rows up"), EDITOR_MENU_ROWS_UP, EMGUI_KEY_ARROW_UP, EMGUI_KEY_ALT, EMGUI_KEY_ALT },
{ _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, EMGUI_KEY_ALT }, { _T("Jump 8 rows down"), EDITOR_MENU_ROWS_DOWN, EMGUI_KEY_ARROW_DOWN, EMGUI_KEY_ALT, EMGUI_KEY_ALT },

View File

@ -69,6 +69,7 @@ enum
// View // View
EDITOR_MENU_PLAY, EDITOR_MENU_PLAY,
EDITOR_MENU_PLAY_LOOP,
EDITOR_MENU_ROW_UP, EDITOR_MENU_ROW_UP,
EDITOR_MENU_ROW_DOWN, EDITOR_MENU_ROW_DOWN,
EDITOR_MENU_TRACK_LEFT, EDITOR_MENU_TRACK_LEFT,

View File

@ -365,6 +365,8 @@ void RemoteConnection_sendSetRowCommand(int row)
if (!RemoteConnection_connected()) if (!RemoteConnection_connected())
return; return;
printf("rom %d\n", row);
row = htonl(row); row = htonl(row);
RemoteConnection_send((char *)&cmd, 1, 0); RemoteConnection_send((char *)&cmd, 1, 0);
RemoteConnection_send((char *)&row, sizeof(int), 0); RemoteConnection_send((char *)&row, sizeof(int), 0);

View File

@ -76,6 +76,9 @@ typedef struct TrackData
int highlightRowStep; int highlightRowStep;
char* editText; char* editText;
bool isPlaying; bool isPlaying;
bool isLooping;
int startLoop;
int endLoop;
} TrackData; } TrackData;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -21,6 +21,8 @@ typedef struct TrackViewInfo
int selectStopTrack; int selectStopTrack;
int selectStartRow; int selectStartRow;
int selectStopRow; int selectStopRow;
int loopStart;
int loopEnd;
} TrackViewInfo; } TrackViewInfo;

View File

@ -545,6 +545,7 @@ LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam
case EDITOR_MENU_ENTER_CURRENT_V: case EDITOR_MENU_ENTER_CURRENT_V:
case EDITOR_MENU_TAB: case EDITOR_MENU_TAB:
case EDITOR_MENU_PLAY: case EDITOR_MENU_PLAY:
case EDITOR_MENU_PLAY_LOOP:
case EDITOR_MENU_ROWS_UP: case EDITOR_MENU_ROWS_UP:
case EDITOR_MENU_ROWS_DOWN: case EDITOR_MENU_ROWS_DOWN:
case EDITOR_MENU_ROWS_2X_UP: case EDITOR_MENU_ROWS_2X_UP: