Hi Guys,
Please find enclosed a patch to support UTF8 device name on OSX (Japanese
one in my case)
I removed as well the deprecated old code between ifdef, feel free to put
those back if needed
Please let me know if you need further informations
Regards,
Index: pm_mac/pmmacosxcm.c
===================================================================
--- pm_mac/pmmacosxcm.c (revision 228)
+++ pm_mac/pmmacosxcm.c (working copy)
@@ -836,47 +836,18 @@
char* cm_get_full_endpoint_name(MIDIEndpointRef endpoint)
{
-#ifdef OLDCODE
- MIDIEntityRef entity;
- MIDIDeviceRef device;
-
- CFStringRef endpointName = NULL;
- CFStringRef deviceName = NULL;
-#endif
CFStringRef fullName = NULL;
- CFStringEncoding defaultEncoding;
char* newName;
+ int size;
- /* get the default string encoding */
- defaultEncoding = CFStringGetSystemEncoding();
-
fullName = ConnectedEndpointName(endpoint);
-
-#ifdef OLDCODE
- /* get the entity and device info */
- MIDIEndpointGetEntity(endpoint, &entity);
- MIDIEntityGetDevice(entity, &device);
-
- /* create the nicely formated name */
- MIDIObjectGetStringProperty(endpoint, kMIDIPropertyName,
&endpointName);
- MIDIObjectGetStringProperty(device, kMIDIPropertyName, &deviceName);
- if (deviceName != NULL) {
- fullName = CFStringCreateWithFormat(NULL, NULL, CFSTR("%@: %@"),
- deviceName, endpointName);
- } else {
- fullName = endpointName;
- }
-#endif
+ size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(fullName),
kCFStringEncodingUTF8);;
/* copy the string into our buffer */
- newName = (char *) malloc(CFStringGetLength(fullName) + 1);
- CFStringGetCString(fullName, newName, CFStringGetLength(fullName) + 1,
- defaultEncoding);
+ newName = (char *) malloc(size + 1);
+ CFStringGetCString(fullName, newName, size + 1,
+ kCFStringEncodingUTF8);
/* clean up */
-#ifdef OLDCODE
- if (endpointName) CFRelease(endpointName);
- if (deviceName) CFRelease(deviceName);
-#endif
if (fullName) CFRelease(fullName);
return newName;
--
Olivier TRISTAN
uvi.net
_______________________________________________
media_api mailing list
[email protected]
http://lists.create.ucsb.edu/mailman/listinfo/media_api