X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmodules%2Fdecklink%2Fcommon.cpp;h=83f5e531b099fb103e8dc724a42975d56ef67028;hb=376154353d54add4b9f7f3bf0ba934bf03e2de4b;hp=84ef72fb8aa41ac47a9f5c501dc2a5dbf9ecb579;hpb=dfe01a86a4696459cb6e4912ad9c5700526ca80f;p=mlt diff --git a/src/modules/decklink/common.cpp b/src/modules/decklink/common.cpp index 84ef72fb..83f5e531 100644 --- a/src/modules/decklink/common.cpp +++ b/src/modules/decklink/common.cpp @@ -39,6 +39,38 @@ void freeDLString( DLString aDLString ) if ( aDLString ) CFRelease( aDLString ); } +#elif defined(WIN32) + +char* getCString( DLString aDLString ) +{ + char* CString = NULL; + if ( aDLString ) + { + int size = WideCharToMultiByte( CP_UTF8, 0, aDLString, -1, NULL, 0, NULL, NULL ); + if (size) + { + CString = new char[ size ]; + size = WideCharToMultiByte( CP_UTF8, 0, aDLString, -1, CString, size, NULL, NULL ); + if ( !size ) + { + delete[] CString; + CString = NULL; + } + } + } + return CString; +} + +void freeCString( char* aCString ) +{ + delete[] aCString; +} + +void freeDLString( DLString aDLString ) +{ + if ( aDLString ) free( (void*) aDLString ); +} + #else char* getCString( DLString aDLString )