• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

CoreMIDI - Gerätenamen

BenjiBenji

Alkmene
Registriert
11.03.09
Beiträge
32
Mit MIDIGetNumberOfSources(); bekomme ich die Anzahl der angeschlossenen sendefähigen Midigeräte.

Gibt es eine Möglichkeit von diesen Geräten auch einen Namen anzuzeigen.
Ich habe ein Auswahlmenü für den Anwender, in dem er sich ein Gerät aussuchen kann, wäre nur sehr viel hübscher, wenn das über einen Namen und nicht über eine Zahl gehen würde.

vielen Dank
Benji
 
Nach längerer Suche hat sich bei mir Folgendes ergeben:

Ich habe einfach die Datei
Code:
/System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIServices.h
durchsucht und gefunden:

Zeile 1721ff:
Code:
extern OSStatus MIDIObjectGetStringProperty(MIDIObjectRef obj, CFStringRef propertyID, CFStringRef * str);

Die liefert dir einen String-Property (für andere Typen gibts auch Methoden), welcher dann in einem CFStringRef gespeichert wird. Dann musst du dich halt mit CoreFoundation rumschlagen und diesen String irgendwie in Cocoa scheffeln. Sieh mal in der Doku nach "toll-free bridged", das ist dann so nicht schwer.

Auch in diesem File sind die Properties definiert und du findest:

Zeile 560ff:
Code:
extern const CFStringRef kMIDIPropertyName;

Dieser Property interessiert dich. Und fertig bist du :)

Gruss ppocket