Q: What are the functions of the Application methods masterJournaler and slaveJournaler?
A: When you create an instance of the NXJournaler class, it automatically becomes the master Journaler for the application (you can only have one of these). Slave journalers are created transparent to the programmer when an application is being recorded from or played back to. Both are instances of NXJournaler.
You would access the masterJournaler if your program didn't keep this instance variable around itself and you needed to get at your NXJournaler instance to start or stop recording or playback.
It is rare that an application would want to get at its slaveJournaler. This would happen if the application needed to do something different in a method if it knew that it was being recorded from or played back to. It would make a call to NXApp to get the slave. Then it could get the status of this slave journaler using getEventStatus:soundStatus:eventStream:soundStream, and do something different based upon the result.
Q: Why do I get a NIL journaler id when I want to access the slave journaler in my application?
A: You have to query for the slave journaler when the application is being recorded from or played back to by another journaling application. Otherwise, the slave journaler could not be instantiated yet. Also, your application must allow itself to be journaled by other applications. Use the method [NXApp setJournalable:YES]. Note that setJournalable:YES is the default. Both the journaling application and the application being journaled can be the same application.
Valid for 2.0, 3.0
QA703