The docbook dtd requires the listitems to contain <para>s

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18999 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Niels Sascha Reedijk 2006-10-05 08:52:24 +00:00
parent b488dcdbad
commit 65416e2a91
7 changed files with 83 additions and 76 deletions

View File

@ -9,9 +9,9 @@
<para> The <emphasis>Mail Kit</emphasis> encompasses all email activities on Haiku, providing means for, but not limited to: <para> The <emphasis>Mail Kit</emphasis> encompasses all email activities on Haiku, providing means for, but not limited to:
<itemizedlist> <itemizedlist>
<listitem>Sending and receiving of email</listitem> <listitem><para>Sending and receiving of email</para></listitem>
<listitem>Interfacing for the manipulation of email messages and attachments</listitem> <listitem><para>Interfacing for the manipulation of email messages and attachments</para></listitem>
<listitem>Manipulating email account information</listitem> <listitem><para>Manipulating email account information</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect1> </sect1>

View File

@ -33,16 +33,16 @@
<para> <para>
The main differences between the two kits: The main differences between the two kits:
<itemizedlist> <itemizedlist>
<listitem>Instead of one <classname>BMidi</classname> object that both produces and consumes events, we have <listitem><para>Instead of one <classname>BMidi</classname> object that both produces and consumes events, we have
<classname>BMidiProducer</classname> and <classname>BMidiConsumer</classname>.</listitem> <classname>BMidiProducer</classname> and <classname>BMidiConsumer</classname>.</para></listitem>
<listitem>Applications are capable of sharing MIDI producers and consumers with other <listitem><para>Applications are capable of sharing MIDI producers and consumers with other
applications via the centralized Midi Roster.</listitem> applications via the centralized Midi Roster.</para></listitem>
<listitem>Physical MIDI ports are now sharable without apps "stealing" events from each <listitem><para>Physical MIDI ports are now sharable without apps "stealing" events from each
other.</listitem> other.</para></listitem>
<listitem>Applications can now send/receive raw MIDI byte streams (useful if an <listitem><para>Applications can now send/receive raw MIDI byte streams (useful if an
application has its own MIDI parser/engine).</listitem> application has its own MIDI parser/engine).</para></listitem>
<listitem>Channels are numbered 0..15, not 1..16</listitem> <listitem><para>Channels are numbered 0..15, not 1..16</para></listitem>
<listitem>Timing is now specified in microseconds instead of milliseconds.</listitem> <listitem><para>Timing is now specified in microseconds instead of milliseconds.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect1> </sect1>

View File

@ -10,37 +10,37 @@
The old Midi Kit, or midi1 for short, goes all the way back to DR8, when the The old Midi Kit, or midi1 for short, goes all the way back to DR8, when the
BeOS only ran on BeBoxen. Fortunately for us, it is pretty well documented: BeOS only ran on BeBoxen. Fortunately for us, it is pretty well documented:
<itemizedlist> <itemizedlist>
<listitem><ulink url="http://bang.dhs.org/be/bebook/The%20Midi%20Kit/index.html">Midi <listitem><para><ulink url="http://bang.dhs.org/be/bebook/The%20Midi%20Kit/index.html">Midi
Kit chapter in the online Be Book</ulink></listitem> Kit chapter in the online Be Book</ulink></para></listitem>
<listitem><ulink url="http://web.archive.org/web/20010618100542/www-classic.be.com/developers/developer_library/midi_kit.html">Midi <listitem><para><ulink url="http://web.archive.org/web/20010618100542/www-classic.be.com/developers/developer_library/midi_kit.html">Midi
Kit section of the old Be Developer Library</ulink></listitem> Kit section of the old Be Developer Library</ulink></para></listitem>
<listitem>Be Newsletter Volume 1, Issue 49 - Introduces the MIDI synth</listitem> <listitem><para>Be Newsletter Volume 1, Issue 49 - Introduces the MIDI synth</para></listitem>
<listitem>Be Newsletter Volume 1, Issue 52 - Follow-up on issue 49</listitem> <listitem><para>Be Newsletter Volume 1, Issue 52 - Follow-up on issue 49</para></listitem>
<listitem>Be Newsletter Volume 1, Issue 91 - How to use BSynth</listitem> <listitem><para>Be Newsletter Volume 1, Issue 91 - How to use BSynth</para></listitem>
<listitem>Be Newsletter Volume 1, Issue 102 - Axe sample code</listitem> <listitem><para>Be Newsletter Volume 1, Issue 102 - Axe sample code</para></listitem>
<listitem>Be Newsletter Volume 1, Issue 104 - How to use BMidiPort</listitem> <listitem><para>Be Newsletter Volume 1, Issue 104 - How to use BMidiPort</para></listitem>
<listitem>Be Newsletter Volume 2, Issue 23 - EdMidi sample code</listitem> <listitem><para>Be Newsletter Volume 2, Issue 23 - EdMidi sample code</para></listitem>
<listitem>Be Newsletter Volume 2, Issue 37 - How to use the MIDI synth</listitem> <listitem><para>Be Newsletter Volume 2, Issue 37 - How to use the MIDI synth</para></listitem>
<listitem>Be Newsletter Volume 3, Issue 37 - Whistle sample code</listitem> <listitem><para>Be Newsletter Volume 3, Issue 37 - Whistle sample code</para></listitem>
</itemizedlist></para> </itemizedlist></para>
<para> <para>
To summarize, there are four basic MIDI classes: To summarize, there are four basic MIDI classes:
<itemizedlist> <itemizedlist>
<listitem><classname>BMidi</classname> is the base class for most other classes from the Midi Kit.</listitem> <listitem><para><classname>BMidi</classname> is the base class for most other classes from the Midi Kit.</para></listitem>
<listitem><classname>BMidiPort</classname> can talk to a MIDI hardware port.</listitem> <listitem><para><classname>BMidiPort</classname> can talk to a MIDI hardware port.</para></listitem>
<listitem><classname>BMidiStore</classname> can read, write, and perform Standard MIDI files.</listitem> <listitem><para><classname>BMidiStore</classname> can read, write, and perform Standard MIDI files.</para></listitem>
<listitem><classname>BMidiText</classname> is a debugging aid that dumps MIDI messages to <function>stdout</function></listitem> <listitem><para><classname>BMidiText</classname> is a debugging aid that dumps MIDI messages to <function>stdout</function></para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<para> <para>
The following classes let you use the Midi Kit's General MIDI synthesizer: The following classes let you use the Midi Kit's General MIDI synthesizer:
<itemizedlist> <itemizedlist>
<listitem><classname>BSynth</classname> controls the synthesizer.</listitem> <listitem><para><classname>BSynth</classname> controls the synthesizer.</para></listitem>
<listitem><classname>BMidiSynth</classname> connects a <classname>BMidi</classname> object to the synth.</listitem> <listitem><para><classname>BMidiSynth</classname> connects a <classname>BMidi</classname> object to the synth.</para></listitem>
<listitem><classname>BMidiSynthFile</classname> connects a MIDI file to the synth</listitem> <listitem><para><classname>BMidiSynthFile</classname> connects a MIDI file to the synth</para></listitem>
<listitem><classname>BSamples</classname> lets you access the synth's sound data stream</listitem> <listitem><para><classname>BSamples</classname> lets you access the synth's sound data stream</para></listitem>
</itemizedlist></para> </itemizedlist></para>
<para> <para>

View File

@ -12,35 +12,35 @@
<para> <para>
A brief overview of the elements that comprise the Midi Kit: A brief overview of the elements that comprise the Midi Kit:
<itemizedlist> <itemizedlist>
<listitem><emphasis>Endpoints</emphasis>. This is what the Midi Kit is all about: sending MIDI messages <listitem><para><emphasis>Endpoints</emphasis>. This is what the Midi Kit is all about: sending MIDI messages
between endpoints. An endpoint is like a MIDI In or MIDI Out socket on your between endpoints. An endpoint is like a MIDI In or MIDI Out socket on your
equipment; it either receives information or it sends information. Endpoints equipment; it either receives information or it sends information. Endpoints
that send MIDI events are called \b producers; the endpoints that receive those that send MIDI events are called \b producers; the endpoints that receive those
events are called \b consumers. An endpoint that is created by your own events are called \b consumers. An endpoint that is created by your own
application is called \b local; endpoints from other applications are \b application is called \b local; endpoints from other applications are \b
remote. You can access remote endpoints using \b proxies.</listitem> remote. You can access remote endpoints using \b proxies.</para></listitem>
<listitem><emphasis>Filters</emphasis>. A filter is an object that has a consumer and a producer <listitem><para><emphasis>Filters</emphasis>. A filter is an object that has a consumer and a producer
endpoint. It reads incoming events from its consumer, performs some operation, endpoint. It reads incoming events from its consumer, performs some operation,
and tells its producer to send out the results. In its current form, the Midi and tells its producer to send out the results. In its current form, the Midi
Kit doesn't provide any special facilities for writing filters.</listitem> Kit doesn't provide any special facilities for writing filters.</para></listitem>
<listitem><emphasis>Midi Roster</emphasis>. The roster is the list of all published producers and <listitem><para><emphasis>Midi Roster</emphasis>. The roster is the list of all published producers and
consumers. By publishing an endpoint, you allow other applications to talk to consumers. By publishing an endpoint, you allow other applications to talk to
it. You are not required to publish your endpoints, in which case only your own it. You are not required to publish your endpoints, in which case only your own
application can use them.</listitem> application can use them.</para></listitem>
<listitem><emphasis>Midi Server</emphasis>. The Midi Server does the behind-the-scenes work. It <listitem><para><emphasis>Midi Server</emphasis>. The Midi Server does the behind-the-scenes work. It
manages the roster, it connects endpoints, it makes sure that endpoints can manages the roster, it connects endpoints, it makes sure that endpoints can
communicate, and so on. The Midi Server is started automatically when BeOS communicate, and so on. The Midi Server is started automatically when BeOS
boots, and you never have to deal with it directly. Just remember that it runs boots, and you never have to deal with it directly. Just remember that it runs
the show.</listitem> the show.</para></listitem>
<listitem><filename>libmidi</filename>. The BMidi* classes live inside two shared libraries: <filename>libmidi.so</filename> <listitem><para><filename>libmidi</filename>. The BMidi* classes live inside two shared libraries: <filename>libmidi.so</filename>
and <filename>libmidi2.so</filename>. If you write an application that uses old Midi Kit, you must and <filename>libmidi2.so</filename>. If you write an application that uses old Midi Kit, you must
link it to <filename>libmidi.so</filename>. Applications that use the new Midi Kit must link to link it to <filename>libmidi.so</filename>. Applications that use the new Midi Kit must link to
<filename>libmidi2.so</filename>. If you want to mix-and-match both kits, you should also link to <filename>libmidi2.so</filename>. If you want to mix-and-match both kits, you should also link to
both libraries.</listitem> both libraries.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
@ -319,12 +319,12 @@
as the BeOS R5 kits, although there are a few small differences in the API as the BeOS R5 kits, although there are a few small differences in the API
(mostly bug fixes): (mostly bug fixes):
<itemizedlist> <itemizedlist>
<listitem>BMidiEndpoint::IsPersistent() always returns false.</listitem> <listitem><para>BMidiEndpoint::IsPersistent() always returns false.</para></listitem>
<listitem>The B_MIDI_CHANGE_LATENCY notification is now properly sent. The Be kit <listitem><para>The B_MIDI_CHANGE_LATENCY notification is now properly sent. The Be kit
incorrectly set be:op to B_MIDI_CHANGED_NAME, even though the rest of the incorrectly set be:op to B_MIDI_CHANGED_NAME, even though the rest of the
message was properly structured.</listitem> message was properly structured.</para></listitem>
<listitem>If creating a local endpoint fails, you can still Release() the object <listitem><para>If creating a local endpoint fails, you can still Release() the object
without crashing into the debugger.</listitem> without crashing into the debugger.</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect2> </sect2>
@ -335,25 +335,25 @@
<para> <para>
More about the Midi Kit: More about the Midi Kit:
<itemizedlist> <itemizedlist>
<listitem>Be Newsletter Volume 3, Issue 47 - Motor Mix sample code</listitem> <listitem><para>Be Newsletter Volume 3, Issue 47 - Motor Mix sample code</para></listitem>
<listitem>Be Newsletter Volume 4, Issue 3 - Overview of the new kit</listitem> <listitem><para>Be Newsletter Volume 4, Issue 3 - Overview of the new kit</para></listitem>
<listitem><ulink url="http://haiku-os.org/learn.php?mode=nsl_view&amp;id=33">Haiku <listitem><para><ulink url="http://haiku-os.org/learn.php?mode=nsl_view&amp;id=33">Haiku
Newsletter 33</ulink>, Introduction to MIDI, Part 1</listitem> Newsletter 33</ulink>, Introduction to MIDI, Part 1</para></listitem>
<listitem><ulink url="http://haiku-os.org/learn.php?mode=nsl_view&amp;id=36">Haiku <listitem><para><ulink url="http://haiku-os.org/learn.php?mode=nsl_view&amp;id=36">Haiku
Newsletter 36</ulink>, Introduction to MIDI, Part 2</listitem> Newsletter 36</ulink>, Introduction to MIDI, Part 2</para></listitem>
<listitem>Sample code and other goodies at the <listitem><para>Sample code and other goodies at the
<ulink url="http://haiku-os.org/contribute.php?mode=team_view&amp;id=midi">OpenBeOS Midi Kit team page</ulink></listitem> <ulink url="http://haiku-os.org/contribute.php?mode=team_view&amp;id=midi">OpenBeOS Midi Kit team page</ulink></para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
<para> <para>
Information about MIDI in general: Information about MIDI in general:
<itemizedlist> <itemizedlist>
<listitem><ulink url="http://www.midi.org">MIDI Manufacturers Association</ulink></listitem> <listitem><para><ulink url="http://www.midi.org">MIDI Manufacturers Association</ulink></para></listitem>
<listitem><ulink url="http://www.borg.com/~jglatt/tutr/miditutr.htm">MIDI Tutorials</ulink></listitem> <listitem><para><ulink url="http://www.borg.com/~jglatt/tutr/miditutr.htm">MIDI Tutorials</ulink></para></listitem>
<listitem><ulink url="http://www.borg.com/~jglatt/tech/midispec.htm">MIDI Specification</ulink></listitem> <listitem><para><ulink url="http://www.borg.com/~jglatt/tech/midispec.htm">MIDI Specification</ulink></para></listitem>
<listitem><ulink url="http://www.borg.com/~jglatt/tech/midifile.htm">Standard MIDI File Format</ulink></listitem> <listitem><para><ulink url="http://www.borg.com/~jglatt/tech/midifile.htm">Standard MIDI File Format</ulink></para></listitem>
<listitem><ulink url="http://www.io.com/~jimm/midi_ref.html">Jim Menard's MIDI Reference</ulink></listitem> <listitem><para><ulink url="http://www.io.com/~jimm/midi_ref.html">Jim Menard's MIDI Reference</ulink></para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect2> </sect2>

View File

@ -143,12 +143,12 @@
<para> <para>
Parameters: Parameters:
<itemizedlist> <itemizedlist>
<listitem><parameter>when</parameter> An absolute time that's <listitem><para><parameter>when</parameter> An absolute time that's
measured against the system clock.</listitem> measured against the system clock.</para></listitem>
<listitem><parameter>data</parameter> A pointer to a "cookie" that <listitem><para><parameter>data</parameter> A pointer to a "cookie" that
you can pass along to Timeout(). The data is not copied, so you can pass along to Timeout(). The data is not copied, so
you must ensure that the pointer remains valid until Timeout() is you must ensure that the pointer remains valid until Timeout() is
called. You typically delete the data inside Timeout().</listitem> called. You typically delete the data inside Timeout().</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect3> </sect3>
@ -200,11 +200,11 @@
<para> <para>
Parameters: Parameters:
<itemizedlist> <itemizedlist>
<listitem><parameter>data</parameter> the MIDI event data</listitem> <listitem><para><parameter>data</parameter> the MIDI event data</para></listitem>
<listitem><parameter>length</parameter> byte size of the data buffer</listitem> <listitem><para><parameter>length</parameter> byte size of the data buffer</para></listitem>
<listitem><parameter>atomic</parameter> whether the data buffer contains <listitem><para><parameter>atomic</parameter> whether the data buffer contains
a single complete MIDI event</listitem> a single complete MIDI event</para></listitem>
<listitem><parameter>time</parameter> the requested performance time of the event</listitem> <listitem><para><parameter>time</parameter> the requested performance time of the event</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>

View File

@ -143,11 +143,11 @@
<para> <para>
Parameters: Parameters:
<itemizedlist> <itemizedlist>
<listitem><parameter>data</parameter> the MIDI event data</listitem> <listitem><para><parameter>data</parameter> the MIDI event data</para></listitem>
<listitem><parameter>length</parameter> byte size of the data buffer</listitem> <listitem><para><parameter>length</parameter> byte size of the data buffer</para></listitem>
<listitem><parameter>atomic</parameter> whether the data buffer contains <listitem><para><parameter>atomic</parameter> whether the data buffer contains
a single complete MIDI event</listitem> a single complete MIDI event</para></listitem>
<listitem><parameter>time</parameter> the required performance time of the event</listitem> <listitem><para><parameter>time</parameter> the required performance time of the event</para></listitem>
</itemizedlist> </itemizedlist>
</para> </para>
</sect3> </sect3>

View File

@ -238,6 +238,7 @@
notifications when you register or unregister your local endpoints, but the notifications when you register or unregister your local endpoints, but the
other apps will. other apps will.
<table id="bmidirostertable1"> <table id="bmidirostertable1">
<table>B_MIDI_REGISTERED message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -265,6 +266,7 @@
</table> </table>
<table id="bmidirostertable2"> <table id="bmidirostertable2">
<table>B_MIDI_UNREGISTERED message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -294,7 +296,7 @@
<para> <para>
The "connected" and "disconnected" notifications are sent when a consumer The "connected" and "disconnected" notifications are sent when a consumer
BMidiProducer::Connect()'s to a producer, or when they BMidiProducer::Connect()'s to a producer, or when they table
BMidiProducer::Disconnect(). You will receive these BMidiProducer::Disconnect(). You will receive these
notifications when <emphasis>any</emphasis> two endpoints connect or disconnect, even if they notifications when <emphasis>any</emphasis> two endpoints connect or disconnect, even if they
are not published. (The purpose of which is debatable.) You won't receive the are not published. (The purpose of which is debatable.) You won't receive the
@ -303,6 +305,7 @@
published endpoints. published endpoints.
<table id="bmidirostertable3"> <table id="bmidirostertable3">
<table>B_MIDI_CONNECTED message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -330,6 +333,7 @@
</table> </table>
<table id="bmidirostertable4"> <table id="bmidirostertable4">
<table>B_MIDI_DISCONNECTED message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -363,6 +367,7 @@
its published endpoints. its published endpoints.
<table id="bmidirostertable5"> <table id="bmidirostertable5">
<table>B_MIDI_CHANGED_NAME message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -396,6 +401,7 @@
</table> </table>
<table id="bmidirostertable6"> <table id="bmidirostertable6">
<table>B_MIDI_CHANGED_LATENCY message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>
@ -429,6 +435,7 @@
</table> </table>
<table id="bmidirostertable7"> <table id="bmidirostertable7">
<table>B_MIDI_CHANGED_PROPERTIES message structure</table>
<tgroup cols='3' align='left' colsep='1' rowsep='1'> <tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="label"/> <colspec colname="label"/>
<colspec colname='type'/> <colspec colname='type'/>