The Resound API
Resound's API gives you tools necessary to extend Resound's capabilities to fit your own needs by writing dynamically loadable modules, each of which should subclass from Module. These modules communicate with Resound through Resound's Module Controller, using the ModuleProtocol protocol. The API consists of four files:
Module.h holds Module, the parent class of all modules. It includes pointers to the ModuleController and each Module's ModuleMenuNode, wherein you can define the menu options in Resound that will call forth the module. For more information, press here:
ModuleProtocol.h holds the ModuleProtocol, the collection of all the methods Resound's ModuleController responds to. For more information, press here:
ModuleMenuNode.h holds the ModuleMenuNode class, from which you instantiate instances to build a tree that tells Resound how to build your menu. For more information, press here:
ModuleSound.h and ModuleSoundView.h are categories which hold additional Sound and SoundView methods you might find useful:
Creating a Resound Module
Building a Resound module is fairly easy. Create a bundle project, assign the file's owner to be your subclass of Module and create any nib files you need. Then generate a ModuleMenuNode tree in the init: method of this subclass, as directed in ModuleMenuNode.h. Create the methods called by the nodes in ModuleMenuNode, using the ModuleProtocol to get current sound information. Then compile the bundle and rename it to have a .rmod extension. Lastly, move the bundle to /LocalLibrary/Resound or ~/Library/Resound, and run Resound. Remember to strip the module when done debugging (use -x -u).
Your menu options should appear in the Modules menu.
For a tutorial on creating a module, press here: Resound comes with source code for a more advanced module to show you how to create multiple menus, nib files, etc., with your module.