@Database "ObnoxAlarm.guide" @Master "ObnoxAlarm:" @Remark "Typed by hand..." @TOC "main" @Index "main" @Help "main" @$VER: ObnoxAlarm v1.1 (5/20/00) 2000 Dave Arnett @Node "main" "ObnoxAlarm v1.1 AmigaGuide Manual Contents..." @Prev "MiscInfo" @Next "Intro" @{bg Background}@{APEN 1} Welcome to... @{bg Background} @{" ObnoxAlarm v1.1 " BEEP} @{bg Highlight} @{APEN 1} 2000 Dave Arnett @{bg Background} @{" Introduction (what it is and why it is) " link "Intro"} @{" Installation (couldn't be easier) " link "Install"} @{" The Main ObnoxAlarm Window " link "MainWindow"} 1 @{" Adjusting the Alarm Time " link "AdjAlarm"} 2 @{" Setting the Alarm " link "SetAlarm"} 3 @{" Shutting Off the Alarm " link "KillAlarm"} 4 @{" Using the SnoozeAlarm (Zzz) " link "Zzz"} @{" The Configure Window (Setting Preferences) " link "Config"} @{" Adjusting the Snooze Time " link "SetZzz"} @{" Setting the Alarm Action (2 choices) " link "SetAction"} 1 @{" Default Obnoxious Samples " link "DefAlarm"} 2 @{" Executing a Script File First " link "ScrAlarm"} @{" Testing the Alarm " link "TestAlarm"} @{" Snapshotting the Main Window " link "Snapshot"} @{" Saving the Alarm Time " link "Snapshot"} @{" The Presets Button " link "Presets"} @{" The Guide Button " link "GuideButton"} @{" The [?] Button (copyright and author info) " link "?Button"} --------------------------------------------- @{" Miscellaneous ObnoxAlarm Information " link "MiscInfo"} --------------------------------------------- @EndNode @Node "Intro" " Introduction to ObnoxAlarm..." @Prev "main" @Next "Install" @{B}Introduction to ObnoxAlarm...@{UB} Have you ever stayed up most of the night when you have an urgent appointment early the next morning? I have, and believe me there's nothing worse than sleeping right through your alarm because you've only been sleeping for an hour and a half, too tired to respond to your normal alarm. The last time I did that it cost me plenty. I vowed to never let it happen again. Part of the problem was that my alarm clock is just too damn whimpy for such occassions. Sometimes I need a truely irritating alarm, something I couldn't possibly sleep through. So I wrote @{B}ObnoxAlarm@{UB}, the most obnoxious alarm ever. The real trick was to find the most obnoxious sample possible. I think I've succeeded with flying colors. I discovered a sample of that famous phrase... @{B}"I've fallen and I can't get up!"@{UB} It's from one of the world's worst TV commercials from the early 80's. If you don't remember it or never saw it, consider yourself very fortunate. Anyway, I edited out the first part, leaving @{B}"get up!"@{UB} which when looped continuously is so incredibly obnoxious it must be experienced to be believed. To add fuel to the fire, I combined that sample with the original Sar Trek "red alert" siren and a weird "warp" sound. Believe me, it's so irritating you'll jump up no matter how little sleep you've had, even if you have to travel across the house to do so. It really does the job. Of course, it won't do much good if you shut it off and go back to bed, so I gave it an adjustable @{B}snooze alarm@{UB} (5 to 60 minutes in 5 minute increments). To top it off, you can even specify an AmigaDOS script file to be executed at alarm time, either before the "get up" starts or instead of playing it at all. This isn't the world's most complex program, so I'm sharing it with the Amiga community as @{B}100% freeware@{UB}. Use it if you like it and toss it if you think it sucks. I really only find two or three occasions a year when I @{I}really@{UI} need to use it, but at those times it's been a true lifesaver. @{B}Disclaimer...@{UB} The usual software disclaimers apply here. If using ObnoxAlarm somehow ruins your life, I'm very sorry, but in no way responsible or liable. Got it? Good. That's pretty much it. I even think you'll find it intuitive enough to operate without any help, so don't expect the other nodes in this AmigaGuide document to be as wordy as this one. ------------------------------------------------------------------------------- Dave Arnett Third Planet Burbank, California, USA www.3pfts.com @EndNode @Node "Install" " Installing ObnoxAlarm..." @Prev "Intro" @Next "MainWindow" @{B}Installing ObnoxAlarm...@{UB} Here's how the ObnoxAlarm directory structure comes... @{B}ObnoxAlarm@{UB}-----------------------------(directory) ObnoxAlarm-------------------------(the program) ObnoxAlarm.info---------(program's default icon) ObnoxAlarm.guide-------------(you're readin' it) @{fg shine}*@{fg text} ObnoxAlarm.config----(where the prefs are saved) ObnoxAlarm.info-------------------(directory icon) ObnoxAlarm.ReadMe---------(disposable readme file) ObnoxAlarm.ReadMe.info-----------(also disposable) No real need for an installer script here. Just copy the ObnoxAlarm directory and its contents to where you want it (or do it by dragging the ObnoxAlarm drawer icon to where you want it. The @{B}ObnoxAlarm.ReadMe@{UB} file (and icon) can be discarded. @{fg shine}*@{fg text} The @{B}ObnoxAlarm.config@{UB} file isn't included with the ObnoxAlarm.lha archive file. A default one will be generated and saved there upon running ObnoxAlarm for the first time (or any time it isn't found there). ObnoxAlarm assigns itself upon running it (@{B}ObnoxAlarm:@{UB}) and removes the assign upon quitting. ------------------------------------------------------------------------------- @EndNode @Node "MainWindow" " The Main ObnoxAlarm window..." @Prev "Install" @Next "AdjAlarm" @{B}The main ObnoxAlarm window...@{UB} Really only four things to do here... 1 @{" Adjusting the Alarm Time " link "AdjAlarm"} 2 @{" Setting the Alarm " link "SetAlarm"} 3 @{" Shutting Off the Alarm " link "KillAlarm"} 4 @{" Using the SnoozeAlarm (Zzz) " link "Zzz"} There are a few other buttons along the bottom, but they're covered later. ------------------------------------------------------------------------------- @EndNode @Node "AdjAlarm" " Adjusting the Alarm Time..." @Prev "MainWindow" @Next "SetAlarm" @{B}Adjusting The Alarm Time...@{UB} Either manually move the slider gadgets or click the arrow buttons. Holding an arrow button down will advance the alarm time until you release the button. ------------------------------------------------------------------------------- @EndNode @Node "SetAlarm" " Setting The Alarm..." @Prev "AdjAlarm" @Next "KillAlarm" @{B}Setting The Alarm...@{UB} See where it says "Set Alarm"? Click that button below it so that a checkmark appears. "Set Alarm" will turn to "Alarm Set". ------------------------------------------------------------------------------- @EndNode @Node "KillAlarm" " Shutting Off The Alarm..." @Prev "SetAlarm" @Next "Zzz" @{B}Shutting Off The Alarm...@{UB} When the Alarm goes off, the words "Alarm Set" change to "Kill Alarm" with the checkmark still in place. Click that checkmark button to turn off the alarm. The samples that are playing will finish and "Kill Alarm" will change back to "Set Alarm" once again. ------------------------------------------------------------------------------- @EndNode @Node "Zzz" " Using the Snooze Alarm..." @Prev "SetAlarm" @Next "Config" @{B}Using the Snooze Alarm...@{UB} When the "Current Time" reaches the "Alarm Time", the obnoxious alarm starts doing its thing and the "Zzz" button becomes unghosted. Instead of turning the alarm off you may elect to click this button. The alarm will stop, the Alarm Time will advance (according to your prefs setting) and the button will once again be ghosted. The words "Kill Alarm" will change back to read "Alarm Set" once again. ------------------------------------------------------------------------------- @EndNode @Node "Config" " The ObnoxAlarm Configure Window..." @Prev "MainWindow" @Next "SetZzz" @{B}The ObnoxAlarm Configure Window...@{UB} The ObnoxAlarm Configure (Preferences) window allows you to set the following... @{" Adjusting the Snooze Time " link "SetZzz"} @{fg shine}*@{fg text} @{" Setting the Alarm Action (2 choices) " link "SetAction"} 1 @{" Default Obnoxious Samples " link "DefAlarm"} 2 @{" Executing a Script File first " link "ScrAlarm"} @{" Testing the Alarm " link "TestAlarm"} @{" Snapshotting the Main Window " link "Snapshot"} @{" Saving the Alarm Time " link "SaveTime"} @{fg shine}*@{fg text} Your two choices are actually three... 1) Only have the obnoxious "get up!" samples play 2) Only have an AmigaDOS script file executed 3) Or have both the script file executed, followed by the obnoxious samples You can also test the alarm here to see how it will sound so you can crank up the volume on your audio output to your desired obnoxious level. The samples will be played as loud as possible from the Amiga. Saving will close the window as will the R B (Right Mouse Button), Cancel button or Close gadget. ------------------------------------------------------------------------------- @EndNode @Node "SetZzz" " Adjusting The Snooze Time..." @Prev "Config" @Next "SetAction" @{B}Adjusting the Snooze Time (Zzz)...@{UB} The snooze time can be set for a minimum of 5 minutes to a maximum of 60 minutes, in 5 minute intervals. Just slide the gadget to where you want it (and then hit the Save button). ------------------------------------------------------------------------------- @EndNode @Node "SetAction" " Setting The Alarm Action..." @Prev "SetZzz" @Next "DefAlarm" @{B}Setting the Alarm action...@{UB} 1 @{" Default Obnoxious Samples " link "DefAlarm"} 2 @{" Executing a Script File first " link "ScrAlarm"} @{" Testing the Alarm " link "TestAlarm"} Your two choices are actually three... 1) Only have the obnoxious "get up!" samples play 2) Only have an AmigaDOS script file executed 3) Or have both the script file executed, followed by the obnoxious samples Just checkmark the one(s) you want to run at alarm time. You cannot leave both unchecked. Trying to do so will default to the built-in obnoxious samples. ------------------------------------------------------------------------------- @EndNode @Node "DefAlarm" " Default Obnoxious Samples..." @Prev "SetAction" @Next "ScrAlarm" @{B}Default obnoxious samples...@{UB} With this checkmarked, the default obnoxious samples will be played at alarm time. Also, this must be set for the "Test Alarm" button to play the obnoxious samples for you. ------------------------------------------------------------------------------- @EndNode @Node "ScrAlarm" " Executing A Script File First..." @Prev "DefAlarm" @Next "TestAlarm" @{B}Executing a script file first...@{UB} I added this feature simply because I often run a module player, shuffling through a list of music modules, but want the alarm to go off as well (you don't have to use ObnoxAlarm only to wake you up). If another program is using the Amiga audio ports, then ObnoxAlarm's alarm will be silent. With this feature I can have an AmigaDOS script file run first to stop the other program and, if neccessary, cause it to quit, thus freeing up the audio ports for ObnoxAlarm to do its thing. Just set the checkmark to unghost the field and load/clear buttons. The "Load" button will open an ASL requester that you can use to specify an AmigaDOS script file to be inserted into the field. The script file's "S" protection bit will be checked to verify that it is indeed an executable script file. If not, it won't be loaded. If you type something in manually, it will be inspected at alarm time to verify the "S" bit again. Just make sure that the script file you want to run has that protection bit set and you'll be okay. Your script file could, of course, be used to run ARexx scripts, launch other programs or anything your creative mind can conjure up. I personally have used it only to run a script file called "KillEd" to stop EdPlayer (my favorite music module player) and quit it, so that the obnoxious samples can then be played. ------------------------------------------------------------------------------- @EndNode @Node "TestAlarm" " Testing the Alarm..." @Prev "ScrAlarm" @Next "Snapshot" @{B}Testing the Alarm...@{UB} You can also test the alarm here to see how it will sound so you can crank up the volume on your audio output to your desired obnoxious level. The samples will be played as loud as possible from the Amiga. Just click the "Stop Test" button when you're tired of hearing it. If both buttons are checkmarked, the script file (if any) will be executed first. ------------------------------------------------------------------------------- @EndNode @Node "Snapshot" " Snapshotting The Main Window..." @Prev "ScrAlarm" @Next "SaveTime" @{B}Snapshotting the Main window...@{UB} When the config window opens, the X,Y coordinates of the main window are displayed. If those coordinates are currently saved, the button will be checkmarked. Position the main window where you want it to always appear and open the config window. Checkmark the button and hit the Save button. If the button is not checkmarked when you hit the Save button, any previously saved coordinates will not be overwritten. ------------------------------------------------------------------------------- @EndNode @Node "SaveTime" " Saving the Alarm Time..." @Prev "Snapshot" @Next "Presets" @{B}Saving the Alarm Time...@{UB} When the config window opens, the current Alarm Time setting will be displayed. If that setting is currently saved, the button will be checkmarked. Set the Alarm Time where you want it to be set upon running ObnoxAlarm and open the config window. Checkmark the button and hit the Save button. If the button is not checkmarked when you hit the Save button, any previously saved Alarm Time will not be overwritten. ------------------------------------------------------------------------------- @EndNode @Node "Presets" " The ObnoxAlarm Presets Button..." @Prev "SaveTime" @Next "GuideButton" @{B}The ObnoxAlarm Presets Button (Preset Alarm Times)...@{UB} When the Presets window opens, the current Alarm Time setting will be displayed on the "Add" button so that it can be added to the list of preset Alarm Times. If the current Alarm Time is already in the list, the "Add" button will be ghosted. When an Alarm Time is added, it will appear at the currently highlighted position in the list. Use the "Sort" buttons to reposition any Alarm Time. The up and down keyboard arrow keys will move the line cursor up or down, or you can single-click on an AlarmTime and it will be displayed on the "Del" button so that it can be deleted. The "Del" button will be ghosted if a blank line is highlighted. The "Save" button will save the list without closing the window. To insert an Alarm Time into the main window, double-click on one. The Presets window will close and the selected Alarm Time will be inserted. The R B (Right Mouse Button) or Close gadget will Cancel the Presets window. ------------------------------------------------------------------------------- @EndNode @Node "GuideButton" " The ObnoxAlarm Guide Button..." @Prev "Presets" @Next "?Button" @{B}The ObnoxAlarm Guide Button...@{UB} There are three Guide buttons that will open this AmigaGuide document... 1) on the main window.....(opens on the Contents node) 2) on the Config window.....(opens on the Config node) 3) on the Presets window...(opens on the Presets node) ------------------------------------------------------------------------------- @EndNode @Node "?Button" " The ObnoxAlarm [?] Button..." @Prev "GuideButton" @Next "MiscInfo" @{B}The ObnoxAlarm [?] Button...@{UB} This button will enlarge the main window to reveal three buttons... 1) Notice 2) E-Mail 3) WebSite All three do a funky scrolling message in the main window's title bar, ghosting all buttons until done. They merely proclaim that I, Dave Arnett, am the author and copyright holder of ObnoxAlarm and give my e-mail address and URL of the Third Planet Sun website. I wrote ObnoxAlarm back in 1995 and at that time experimented with implementing a scrolling text feature there. It serves no practical purpose whatsoever. I was going to remove it when preparing ObnoxAlarm for public consumption, but figured what the hell and left it in anyway. ------------------------------------------------------------------------------- @EndNode @Node "MiscInfo" " Miscellaneous ObnoxAlarm Information..." @Prev "?Button" @Next "main" @{B}Miscellaneous ObnoxAlarm Information...@{UB} @{" The Future of ObnoxAlarm " link "ObnoxFuture"} @{" Programming ObnoxAlarm " link "ProgInfo"} @{" Contacting Me " link "MeInfo"} ------------------------------------------------------------------------------- @EndNode @Node "ObnoxFuture" " The Future of ObnoxAlarm..." @Prev "ObnoxFuture" @Next "ObnoxFuture" @{B}The Future of ObnoxAlarm...@{UB} Version 1.0 had a slight bug in it. It seems that when ObnoxAlarm assigns itself upon loading, some Amigas would pop up one of those annoying windows with "Please insert volume ObnoxAlarm" in it. Either their Amigas were running ObnoxAlarm faster than mine or the assign was being made too slowly. Version 1.1 merely adds a loop routine after the assign is made that searches for volume "ObnoxAlarm:" until it is found. This may cause a delay of up to half a second, but at least the annoying requester won't pop up anymore. Other than that, I doubt that ObnoxAlarm will be upgraded again, unless it turns out that I've overlooked somethings else. I think I've squashed all bugs, but only time will tell. I thought about allowing ObnoxAlarm to load and use custom user-definable sound samples instead of the built-in ones, but let's get real. It just wouldn't be worth the effort. ------------------------------------------------------------------------------- @EndNode @Node "ProgInfo" " Programming ObnoxAlarm..." @Prev "ProgInfo" @Next "ProgInfo" @{B}Programming ObnoxAlarm...@{UB} Believe it or not, ObnoxAlarm was written with CanDo (v3.008). That's the only reason ObnoxAlarm is as large as it is. To bind a CanDo deck, the entire CanDo library is bound with it instead of including only the parts needed for the particular project. If you have CanDo and the cando.library v3.008 in your LIBS: directory, I can provide you with a much smaller version of ObnoxAlarm. Perhaps you're thinking that anything written in CanDo sucks. No, no. You're confusing CanDo with AMOS. CanDo is an absolutely fabulous tool for many, many programming tasks. There are some things that CanDo Can'tDo well, but very few. Although ObnoxAlarm is simple and somewhat primitive, I think you'll find many of its features to be rather slick. If you're familiar with CanDo, you might be wondering how I pulled off things such as positioning windows. Let's just say that I'm a true CanDo wizard. Time, trial and error have allowed me to get CanDo to do many things that I once thought it just couldn't do. It's tragic that Inovatronics went tits up years ago. If CanDo development had continued, it would be an incomparable ass-kicker today (sigh). I suppose I should include the CanDo copyright notice here (and within ObnoxAlarm), but I'm leaving it out. If anyone from the former Inovatronics wants to chastise me for my sin of omission, at least I'll finally have found out who and where they are so I can discuss buying the CanDo rights from them. ------------------------------------------------------------------------------- @EndNode @Node "MeInfo" " Contacting Me..." @Prev "MeInfo" @Next "MeInfo" @{B}Contacting Me...@{UB} Dave Arnett Third Planet Burbank, California, USA http://www.3pfts.com 3pfts@3pfts.com ------------------------------------------------------------------------------- @EndNode