示例#1
0
        String GetStringProp(IntPtr id)
        {
            if (id == IntPtr.Zero)
            {
                return(null);
            }

            CFStringRef str;

            CoreMidiInterop.MIDIObjectGetStringProperty(Handle, id, out str);
            var cstr = CoreFoundationInterop.CFStringGetCStringPtr(str, CoreFoundationInterop.kCFStringEncodingUTF8);

            unsafe {
                if (cstr == IntPtr.Zero)
                {
                    return(null);
                }
                byte *p     = (byte *)cstr;
                int   count = 0;
                for (byte *i = p; *i != 0; i++)
                {
                    count++;
                }
                return(System.Text.Encoding.UTF8.GetString((byte *)cstr, count));
            }
        }
 public void Dispose()
 {
     CoreMidiInterop.MIDIClientDispose(Handle);
     if (name_string != IntPtr.Zero)
     {
         CoreFoundationInterop.CFRelease(name_string);
     }
     name_string = IntPtr.Zero;
 }
示例#3
0
 internal static CFStringRef ToCFStringRef(string s)
 {
     return(CoreFoundationInterop.CFStringCreateWithCString(IntPtr.Zero, s, CoreFoundationInterop.kCFStringEncodingUTF8));
 }
示例#4
0
 public void Dispose()
 {
     CoreMidiInterop.MIDIClientDispose(Handle);
     CoreFoundationInterop.CFRelease(name_string);
 }