bump :)
On Mon, Oct 27, 2014 at 4:51 PM, Olivier Tristan <
[email protected]> wrote:
> 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
>
>
--
[image: UVI] <http://www.uvi.net/>
Olivier Tristan | Research & Development
[email protected]
[image: Facebook] <http://www.facebook.com/UVI.Official> [image: Twitter]
<http://twitter.com/UVIofficial> [image: Youtube]
<http://www.youtube.com/user/UVIofficial> [image: SoundCloud]
<http://soundcloud.com/uvi-official> [image: Blog UVI]
<http://blog.uvi.net/>
_______________________________________________
media_api mailing list
[email protected]
http://lists.create.ucsb.edu/mailman/listinfo/media_api