Phew!
There’s almost 200 builds between the last version of AttnGrab and the new version. Considering how much on-desktop debugging I had to do that’s a lot.
The app has had a massive overhaul of its prefs/profiles system. It now supports “unlimited” profiles and stores them in a database (instead of the system prefs). The ringer switch no longer changes profile but it can change prefs within a profile. Hard to describe but it works much more sensibly.
AttnGrab still imports your old prefs but you’ll probably want to change what it’s done to take advantage of the new functionality.
So the new prefs code gave me a heap of grief. I spent quite a bit of time trying to figure out why it was crashing but you don’t get anything useful on the device and POSE just says to connect a debugger. At least I managed to find one. It’s part of EzAsm and I heartily recommend it to anyone testing crashes under POSE. Build with PRC-TOOLS and use -g and -mdebug-labels then you’ll be able to print a stack trace.
Turns out I had some assumptions about memory that don’t work (eg. you MUST use DmWrite to write to memory in the data heap. You cannot just write to a pointer).
Since AttnGrab is ostensibly an “OnBoardC app” the .zip only contains the files you need to build under OnBoardC but it also builds and runs just fine with PRC-TOOLS (that’s how I do my on-desktop testing). I haven’t included the infrastructure needed for this but if anyone is interested in it, let me know and I’ll package it up. I tend to do most of my development on the device and use a command-line text to pdbdoc converter to convert the .pdb files to .c and back again. I store everything in git as text and generate the .pdb files for the package (or for uploading to my device).
Of course, most Palm developers probably use PODS but I have a Mac so that’s not an option for me. At least webOS supports Mac as a development host.