22 #include "JackCoreMidiPort.h" 23 #include "JackCoreMidiUtil.h" 24 #include "JackError.h" 28 std::set<MIDIEndpointRef> JackCoreMidiPort::endpoint_list;
30 bool JackCoreMidiPort::IsInternalPort(MIDIObjectRef port_aux)
32 MIDIEndpointRef port = (MIDIEndpointRef)port_aux;
33 return std::find(endpoint_list.begin(), endpoint_list.end(), port) != endpoint_list.end();
36 JackCoreMidiPort::JackCoreMidiPort(
double time_ratio)
39 this->time_ratio = time_ratio;
42 JackCoreMidiPort::~JackCoreMidiPort()
48 JackCoreMidiPort::GetAlias()
55 JackCoreMidiPort::GetEndpoint()
62 JackCoreMidiPort::GetName()
69 JackCoreMidiPort::Initialize(
const char *alias_name,
const char *client_name,
70 const char *driver_name,
int index,
71 MIDIEndpointRef endpoint,
bool is_output)
73 char endpoint_name[REAL_JACK_PORT_NAME_SIZE];
74 CFStringRef endpoint_name_ref;
77 OSStatus result = MIDIObjectGetStringProperty(endpoint, kMIDIPropertyName,
79 if (result != noErr) {
80 WriteMacOSError(
"JackCoreMidiPort::Initialize",
81 "MIDIObjectGetStringProperty", result);
84 res = CFStringGetCString(endpoint_name_ref, endpoint_name,
85 sizeof(endpoint_name), 0);
86 CFRelease(endpoint_name_ref);
88 jack_error(
"JackCoreMidiPort::Initialize - failed to allocate memory " 89 "for endpoint name.");
91 snprintf(alias,
sizeof(alias),
"%s:%s:%s%d", alias_name,
92 driver_name, is_output ?
"in" :
"out", num);
94 snprintf(alias,
sizeof(alias),
"%s:%s:%s%d", alias_name,
95 endpoint_name, is_output ?
"in" :
"out", num);
97 snprintf(name,
sizeof(name),
"%s:%s_%d", client_name,
98 is_output ?
"playback" :
"capture", num);
99 this->endpoint = endpoint;
SERVER_EXPORT void jack_error(const char *fmt,...)