From 6d4cdb2ba62f062de3b5bd6f085cadf078140498 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Mon, 10 Oct 2022 14:54:54 -0400 Subject: [PATCH] yah --- justwindow | Bin 0 -> 2144 bytes justwindow.c | 17 +++++++++++++++++ justwindow.lnk | 4 ++++ main | Bin 9464 -> 13312 bytes main.c | 38 ++++++++++++++++++++++++++++++++------ 5 files changed, 53 insertions(+), 6 deletions(-) create mode 100755 justwindow create mode 100644 justwindow.c create mode 100644 justwindow.lnk diff --git a/justwindow b/justwindow new file mode 100755 index 0000000000000000000000000000000000000000..18ec2581620a3b1858e6c09ea894244f37aa0663 GIT binary patch literal 2144 zcmZuzeQZ-z6#u=hc4d~)&9Mw!;QCVLTAOwtL9!6@wn->uyg`RL5+iRg`bH>SDH|VV zVn+ycaU>gHLX0tsAxc6+rXdE&{+Nb8I-+KL#7wd{V{Mf~7y=id9y z*ZrMy&$$~=@H=LPEx#&&a*6w8K*29^ADY_tz!UOd)t^$szX$e}aRI#N|}rA$1JjOn_T7MiHWl51(hA?Ea-LajRINXpSetCY76nV}3s+j`-L zaHK4rhLh@YC{Xm%x!Q2bgss%8;l$t4%or_HxZ?1jY{ z3|l}WmO;|{be?w=&W!cEk+NybfQEEvO4A<2&^T$cg;P;y zqAUm#O0CeSb3oXdQ&)OQJ_Wej&)nTD8HSL1uBxz=d?Fx}br*7fxcMD)8sWNM@j9`l z@@pTxj0EA)gbyCG!XHDo(9~)$g4`fw!>Ziv7cpu%Low_T?eKWpVaFN$oYF!>F8!RX zF#*Fag0OpH7+MH#jL~M~{cgx$FrTp^nL#V7_CO4SysNXOU1)kg{VbNcdA-tb27RVW z-U6+UNsB<3+9yqy8p8>xNkjo^jhI5>Rs9$?CGVrWtebixjPamRDmk=Gn@;i$NIS0G zlx-3V8Ykc0r+2k=>NdtOUuy7w*GN?2v!hW2O+QWyUMLfS!tke4g zmV|k&4EINWnAgo(JueCa3-m61$A+dl*%!`0+H{M(+}ZVh*04QM=F$>qY0|s$8g6Ph zA8JUxzT<;?SR0zES=um-0|~3gWG(tM-jpLz)(RZsnP*sU)w!Hd8g8P(rIn61r`o3L zU#zHj_kw>-9eLgmYFOFmd}|T+;`krU$T|S>^?rhz> zO*HM=l8nYWb_<^mSkba-J+L+2*|oKEYe)Q1j{O+2Ys#H~rcdXnA*&{cR^0z`20wFN z?(2Y?y_I!ok;Cq}Nin3DcayU?-%1v7zV4oD>PdA-iB=oMl>4}IL=K1Nn#GnrC8j-$ z=uhN`$YG;Wa?Mi9kIVAokba^+Q|^fH9OFIKNS2+MjihA7TuUXDP@TL}cEDIZZ+BFp zV(!L>s@Gle7*r+naL~fl66vj4CEjUC8_TFE@dYBi3Ajsmi^a(m{XHge$k}k$KV_^f zzlUcGC+8xUR(>(k%lSLnJ&a>GTw>ZHz0^#L(V5d98%>GnsGnyb*CwNhI*4_IT}i~e z&97RaoNJtHhXMG4#a6uK;S9!1cO=D{9J^*kE<41(QPz>Xm(Y}A55O0LVK~KhS%tn= z#O&xDQP?;sQU)G`ta@7#np!05Eh}@EfG;E~u1cf#k!X>BHGQ5Bz$jx!x2aAKU(15u zEbfm1gb$hVx@mkCe3BJ*W#vt%(uXHR-a&e~TeXqZIA0Bg=SA-|_j;U1v;Ngpv(!TR z920B8738J|zOHhrg`U}xN4o^~&Rz1|ACm}}?|gq+Ruk%Kd4hZaj*fD^ntW4e&(`4> z>$#8hyyV|6LPKl(xlYlM*b)~k?wu@Tu`t#qI-&w7AJMyjBIrAU#f;v^oL-snZN2^S z{hx@sh{)ZF2Uin{>|L4L|M!G-9}{Mosy)Oukma3?lP07^&>4jOIba)H%O2-@fPx#G z`1e(g!k0KXNc=9)NiC$MBtLm&q#_bW!EMrYZsxz%v73wS7R|<`1b8A%KNT~3zU`PZ zn9K32m_Pp*7SAr_auj^a$@3qc#AS`m9r4;lH9`Kqu(&3;tR`r2E!+~T9K?y2NfM)* U +#include + +int main(void) { + struct Window *window; + + window = OpenWindowTags(NULL, + WA_Title, "Wow", + TAG_END + ); + + Delay(200); + + CloseWindow(window); + + return 0; +} diff --git a/justwindow.lnk b/justwindow.lnk new file mode 100644 index 0000000..1f7bbea --- /dev/null +++ b/justwindow.lnk @@ -0,0 +1,4 @@ +FROM LIB:c.o "justwindow.o" +TO "justwindow" +LIB LIB:sc.lib LIB:amiga.lib + diff --git a/main b/main index 5abd5200aecb9f65b9c2df28cb4da2f1be27c29c..6954eb3c22c163b74c97e46485a07c6bc8b1dea7 100755 GIT binary patch delta 7684 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 delta 4056 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 diff --git a/main.c b/main.c index 11c15cd..ec693e8 100644 --- a/main.c +++ b/main.c @@ -17,8 +17,9 @@ #include // handle images and sound -#include +#include #include +#include // timer stuff. using proto/timer.h did not work well, likely // because of how you have to open the device. @@ -107,6 +108,7 @@ struct MsgPort *timerPort; #define BELL_FILENAME "bell.8svx" APTR bellSound = NULL; +struct Library *DataTypesBase; // our business logic // for how long should I cook this pizza? @@ -177,6 +179,11 @@ int setup(void) { // to get the current time. TimerBase = TimerIO->tr_node.io_Device; + if (NULL == (DataTypesBase = OpenLibrary("datatypes.library", 40))) { + // this is ok, we just won't play sound + printf("no sound!"); + } + return 1; } @@ -185,6 +192,9 @@ int setup(void) { */ void teardown(void) { // http://amigadev.elowar.com/read/ADCD_2.1/Devices_Manual_guide/node0196.html + if (DataTypesBase) { + CloseLibrary(DataTypesBase); + } if (TimerIO) { CloseDevice((struct IORequest *)TimerIO); DeleteExtIO((struct IORequest *)TimerIO); @@ -508,7 +518,7 @@ int openAboutWindow(void) { WA_DepthGadget, TRUE, WA_CloseGadget, TRUE, WA_Activate, TRUE, - WA_Title, "Acout Pizza Timer", + WA_Title, "About Pizza Timer", TAG_END ); @@ -698,17 +708,29 @@ void handleIntuitionMessage(struct IntuiMessage *iMessage) { } } +BYTE waitForSoundSignalNumber; /** - * Start playing a bell sound, and start a timer to tear down - * the bell data once it's done. + * Start playing a bell sound, then wait for it to finish. */ void startBellSound(void) { struct dtTrigger myTrigger; struct MsgPort *TimerPort; ULONG soundPlayResult; - if (bellSound = NewDTObject(BELL_FILENAME, DTA_GroupID, GID_SOUND, TAG_END)) { + // https://amigaworld.net/modules/newbb/viewtopic.php?forum=15&topic_id=39094&post_id=735120&viewmode=thread&order=0#735120 + waitForSoundSignalNumber = AllocSignal(-1); + + if (bellSound = NewDTObject( + BELL_FILENAME, + DTA_GroupID, GID_SOUND, + // ourselves + SDTA_SignalTask, (ULONG)FindTask(NULL), + // ideally we should use this, but my headers aren't new enough? + // SDTA_SignalBitNumber, waitForSoundSignalNumber, + // so we'll do it this way + SDTA_SignalBit, 1 << waitForSoundSignalNumber, + TAG_END)) { myTrigger.MethodID = DTM_TRIGGER; myTrigger.dtt_GInfo = NULL; myTrigger.dtt_Function = STM_PLAY; @@ -717,6 +739,7 @@ void startBellSound(void) { // https://github.com/khval/AmosKittens/blob/79f00ba3b81805b54fd4e437f667ea2eecab740d/OS/AmigaOS/animation.cpp#L128 soundPlayResult = DoDTMethodA(bellSound, NULL, NULL, (Msg) &myTrigger); + /** TimerPort = TimerIO->tr_node.io_Message.mn_ReplyPort; // eventually wait for the sound to stop playing @@ -724,6 +747,7 @@ void startBellSound(void) { TimerIO->tr_time.tv_secs = 2; TimerIO->tr_time.tv_micro = 0; SendIO((struct IORequest *)TimerIO); + */ } } @@ -735,6 +759,7 @@ void waitForBellToFinish(void) { ULONG timerSignal; if (bellSound) { + /** TimerPort = TimerIO->tr_node.io_Message.mn_ReplyPort; // TODO: move this into the main event loop, so that @@ -743,7 +768,8 @@ void waitForBellToFinish(void) { // 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); + */ + Wait(1 << waitForSoundSignalNumber); DisposeDTObject(bellSound); }