diff --git a/docs/user/book.dox b/docs/user/book.dox index d518b9e841..af567b9b40 100644 --- a/docs/user/book.dox +++ b/docs/user/book.dox @@ -25,7 +25,7 @@ Access Co., the current owners of Be's intellectual property. - \section kits Kits and Servers + \section book_kits Kits and Servers The API is split into several kits and servers each detailing a different aspect of the operating system. @@ -57,7 +57,7 @@ - The \ref translation provides a framework for converting data streams between media formats. - \section special_topics Special Topics + \section book_special_topics Special Topics - \ref drivers - \ref keyboard @@ -152,7 +152,7 @@ an overview. If you would like to see all the components, please look at \link midi2 the list with classes \endlink. - \section midi2twokits A Tale of Two MIDI Kits + \section book_midi2twokits A Tale of Two MIDI Kits BeOS comes with two different, but compatible Midi Kits. This documentation focuses on the "new" Midi Kit, or midi2 as we like to @@ -178,7 +178,7 @@ - Channels are numbered 0–15, not 1–16 - Timing is now specified in microseconds rather than milliseconds. - \section midi2concepts Midi Kit Concepts + \section book_midi2concepts Midi Kit Concepts A brief overview of the elements that comprise the Midi Kit: - \b Endpoints. This is what the Midi Kit is all about: sending MIDI @@ -213,7 +213,7 @@ \image html midi2concepts.png - \section midi2mediakit Midi Kit != Media Kit + \section book_midi2mediakit Midi Kit != Media Kit Be chose not to integrate the Midi Kit into the Media Kit as another media type, mainly because MIDI doesn't require any of the format negotiation that @@ -247,7 +247,7 @@ via the MediaRoster, the new kit makes the connections directly via the BMidiProducer object. - \section midi2remotelocal Remote vs. Local Objects + \section book_midi2remotelocal Remote vs. Local Objects The Midi Kit makes a distinction between remote and local MIDI objects. You can only create local MIDI endpoints, which derive from either @@ -266,7 +266,7 @@ BMidiProducer, and BMidiEndpoint will let you do. You can connect objects, get the properties of these objects -- and that's about it. - \section midi2lifespan Creating and Destroying Objects + \section book_midi2lifespan Creating and Destroying Objects The constructors and destructors of most midi2 classes are private, which means that you cannot directly create them using the C++ @@ -276,7 +276,7 @@ and BMidiLocalProducer. These two objects may be directly created and subclassed by developers. - \section midi2refcount Reference Counting + \section book_midi2refcount Reference Counting Each MIDI endpoint has a reference count associated with it, so that the Midi Roster can do proper bookkeeping. When you construct a @@ -299,7 +299,7 @@ This is true for both local and remote objects. Repeat after me: Release() when you're done. - \section midi2events MIDI Events + \section book_midi2events MIDI Events To make some actual music, you need to \link BMidiProducer::Connect() Connect() \endlink your consumers to @@ -325,7 +325,7 @@ also tap into the \link BMidiLocalConsumer::Data() Data() \endlink hook and get your hands dirty with the raw MIDI data. - \section midi2time Time + \section book_midi2time Time The spray and hook functions accept a bigtime_t parameter named "time". This indicates when the MIDI event should be performed. The time is given in @@ -370,7 +370,7 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); Note that a typical producer sends out its events as soon as it can; unlike a consumer, it does not have to snooze. - \section midi2ports Other Timing Issues + \section book_midi2ports Other Timing Issues Each consumer object uses a Kernel Kit port to receive MIDI events from connected producers. The queue for this port is only 1 message deep. @@ -396,7 +396,7 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); Newsletter 36 describes this problem in more detail, and provides a solution. Go read it now! - \section midi2filters Writing a Filter + \section book_midi2filters Writing a Filter A typical filter contains a consumer and a producer endpoint. It receives events from the consumer, processes them, and sends them out again using the @@ -415,7 +415,7 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); process the event as quickly as possible and be done with it. Do not snooze_until() in the consumer endpoint of a filter! - \section midi2apidiffs API Differences + \section book_midi2apidiffs API Differences As far as the end user is concerned, the Haiku Midi Kit is mostly the same as the BeOS R5 kits, although there are a few small differences in the API @@ -427,7 +427,7 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); - If creating a local endpoint fails, you can still Release() the object without crashing into the debugger. - \section midi2seealso See also + \section book_midi2seealso See also More about the Midi Kit: - \ref Midi2Defs.h @@ -521,7 +521,7 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); look at the overview, or go straight to the complete \link support list of components \endlink of this kit. - \section Overview + \section book_overview Overview - Thread Safety: - BLocker provides a semaphore-like locking mechanism allowing for recursive locks.