From dfe5190d72232c6aeb9b395e80fbc6179c446f2b Mon Sep 17 00:00:00 2001 From: John Bintz Date: Sat, 8 Oct 2022 13:03:36 -0400 Subject: [PATCH] wow --- main | Bin 9312 -> 9464 bytes main.c | 72 +++++++++++++++++++++++++++------------------------------ 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/main b/main index 8859a16009a98efdccc9ac9f2b0e5d27bf3affab..5abd5200aecb9f65b9c2df28cb4da2f1be27c29c 100755 GIT binary patch delta 4307 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.io_Command = TR_ADDREQUEST; - TimerIO->tr_time.tv_secs = 3; + TimerIO->tr_time.tv_secs = 2; TimerIO->tr_time.tv_micro = 0; SendIO((struct IORequest *)TimerIO); } @@ -759,6 +737,11 @@ void waitForBellToFinish(void) { if (bellSound) { TimerPort = TimerIO->tr_node.io_Message.mn_ReplyPort; + // TODO: move this into the main event loop, so that + // we can update the UI while the sound is finishing up? + // I'm sure there is a way to add metadata to an IO request. + // or do we need two timer.devices with two separate IOs? + // https://amigadev.elowar.com/read/ADCD_2.1/Devices_Manual_guide/node00C4.html timerSignal = 1L << TimerPort->mp_SigBit; Wait(timerSignal); @@ -776,13 +759,13 @@ void endTimer(void) { uiHours = uiMinutes = uiSeconds = 0; setTimerText(); + waitForBellToFinish(); + timerIsRunning = FALSE; timerStarted = FALSE; clearUI(); renderUI(); - - waitForBellToFinish(); } void handleTimerMessage(void) { @@ -837,7 +820,20 @@ int main() { timerIsRunning = FALSE; // open the empty window - window = OpenWindow(&winlayout); + window = OpenWindowTags(NULL, + WA_Left, 20, WA_Top, 20, + WA_Width, WINDOW_WIDTH, WA_Height, WINDOW_HEIGHT, + WA_DetailPen, 0, WA_BlockPen, 1, + WA_IDCMP, IDCMP_REFRESHWINDOW | IDCMP_CLOSEWINDOW | BUTTONIDCMP | SLIDERIDCMP | IDCMP_MENUPICK, // IDCMP flags + WA_SmartRefresh, TRUE, + WA_DragBar, TRUE, + WA_DepthGadget, TRUE, + WA_CloseGadget, TRUE, + WA_Activate, TRUE, + WA_Title, WINDOW_TITLE, + TAG_END + ); + if (!window) { teardown(); return 1;