>Now I understand what do Release and Acquire
>
>how is decided the id of the BMidiEndPoint?
This seems to be a system wide unique number.
The midi_server has to manage it.
>Now question about Register an Unregister
In Midi Kit 2 an application can publish BMidiEndpoint
objects so they are available to other applications.
I think BMidiEndpoint::Register is implemented
something like:
status_t BMidiEndpoint::Register() {
BMidiRoster* roster = BMidiRoster::MidiRoster();
if (roster) return roster->Register(this);
else return B_ERROR;
}
BMidiRoster::NextEndPoint(int32* id) allows to querry
published BMidiEndpoint objects.
ie.
BMidiRoster* roster = BMidiRoster::MidiRoster();
int32 id = 0;
BMidiEndpoint* e;
while ((e = roster->NextEndPoint(&id)) != NULL) {
// do something with endpoint ...
}
>I think for this 2 functions that publish device in /dev/midi/ for other app
>can talk
>together but the question is how create and read/write with the new *entry*?
AFAIK sound card device drivers publish in /dev/midi the Midi ports of the
sound card.
- Michael