On Thu, 2005-09-01 at 13:15 -0700, Michael Geis wrote:
> I expect having to either write
> spaghetti code or find a way to map 
> winmm.dll's midiStreamOut to libasound.so's
> snd_seq_schedule_note_event.

It need not be spaghetti code.  You just need to DllImport both
functions and perform a runtime check to decide which function to call:

        class MidiOutput {
                [DllImport ("winmm")]
                private static void midiStreamOut (string file);

                [DllImport ("asound")]
                private static void 
                        snd_seq_schedule_note_event (string file);

                public static void Play (string file)
                {
                        if (System.IO.Path.DirectorySeparatorChar == '\\')
                                return midiStreamOut (file);
                        return snd_seq_schedule_note_event (file);
                }
        }

Of course, actual function arguments will need to correctly match the
actual unmanaged function (I have no idea what arguments midiStreamOut
and snd_seq_schedule_note_event accept).

 - Jon


_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to