diff --git a/src/libespeak-ng/mbrowrap.c b/src/libespeak-ng/mbrowrap.c index 0271bdb4..fe12d5b7 100644 --- a/src/libespeak-ng/mbrowrap.c +++ b/src/libespeak-ng/mbrowrap.c @@ -2,8 +2,9 @@ * mbrowrap -- A wrapper library around the mbrola binary * providing a subset of the API from the Windows mbrola DLL. * + * Copyright (C) 2005 to 2013 by Jonathan Duddington * Copyright (C) 2010 by Nicolas Pitre - * Copyright (C) 2013 Reece H. Dunn + * Copyright (C) 2013-2016 Reece H. Dunn * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,6 +19,46 @@ #include "config.h" +#if defined(_WIN32) || defined(_WIN64) +#include +#endif + +#include "mbrowrap.h" + +#if defined(_WIN32) || defined(_WIN64) + +HINSTANCE hinstDllMBR = NULL; + +BOOL load_MBR() +{ + if (hinstDllMBR != NULL) + return TRUE; // already loaded + + if ((hinstDllMBR = LoadLibraryA("mbrola.dll")) == 0) + return FALSE; + init_MBR = (PROCIC)GetProcAddress(hinstDllMBR, "init_MBR"); + write_MBR = (PROCIC)GetProcAddress(hinstDllMBR, "write_MBR"); + flush_MBR = (PROCIV)GetProcAddress(hinstDllMBR, "flush_MBR"); + read_MBR = (PROCISI)GetProcAddress(hinstDllMBR, "read_MBR"); + close_MBR = (PROCVV)GetProcAddress(hinstDllMBR, "close_MBR"); + reset_MBR = (PROCVV)GetProcAddress(hinstDllMBR, "reset_MBR"); + lastError_MBR = (PROCIV)GetProcAddress(hinstDllMBR, "lastError_MBR"); + lastErrorStr_MBR = (PROCVCI)GetProcAddress(hinstDllMBR, "lastErrorStr_MBR"); + setNoError_MBR = (PROCVI)GetProcAddress(hinstDllMBR, "setNoError_MBR"); + setVolumeRatio_MBR = (PROCVF)GetProcAddress(hinstDllMBR, "setVolumeRatio_MBR"); + return TRUE; +} + +void unload_MBR() +{ + if (hinstDllMBR) { + FreeLibrary(hinstDllMBR); + hinstDllMBR = NULL; + } +} + +#else + #include #include "speech.h" @@ -34,8 +75,6 @@ #include #include -#include "mbrowrap.h" - /* * mbrola instance parameters */ @@ -610,3 +649,5 @@ void resetError_MBR(void) { mbr_errorbuf[0] = 0; } + +#endif \ No newline at end of file diff --git a/src/libespeak-ng/synth_mbrola.c b/src/libespeak-ng/synth_mbrola.c index 48f65255..5a687727 100644 --- a/src/libespeak-ng/synth_mbrola.c +++ b/src/libespeak-ng/synth_mbrola.c @@ -43,47 +43,12 @@ extern int Read4Bytes(FILE *f); extern void SetPitch2(voice_t *voice, int pitch1, int pitch2, int *pitch_base, int *pitch_range); extern unsigned char *outbuf; -#ifndef PLATFORM_WINDOWS - -#include "mbrowrap.h" - -#else - +#if defined(_WIN32) || defined(_WIN64) #include +#endif + #include "mbrowrap.h" -HINSTANCE hinstDllMBR = NULL; - -BOOL load_MBR() -{ - if (hinstDllMBR != NULL) - return TRUE; // already loaded - - if ((hinstDllMBR = LoadLibraryA("mbrola.dll")) == 0) - return FALSE; - init_MBR = (PROCIC)GetProcAddress(hinstDllMBR, "init_MBR"); - write_MBR = (PROCIC)GetProcAddress(hinstDllMBR, "write_MBR"); - flush_MBR = (PROCIV)GetProcAddress(hinstDllMBR, "flush_MBR"); - read_MBR = (PROCISI)GetProcAddress(hinstDllMBR, "read_MBR"); - close_MBR = (PROCVV)GetProcAddress(hinstDllMBR, "close_MBR"); - reset_MBR = (PROCVV)GetProcAddress(hinstDllMBR, "reset_MBR"); - lastError_MBR = (PROCIV)GetProcAddress(hinstDllMBR, "lastError_MBR"); - lastErrorStr_MBR = (PROCVCI)GetProcAddress(hinstDllMBR, "lastErrorStr_MBR"); - setNoError_MBR = (PROCVI)GetProcAddress(hinstDllMBR, "setNoError_MBR"); - setVolumeRatio_MBR = (PROCVF)GetProcAddress(hinstDllMBR, "setVolumeRatio_MBR"); - return TRUE; -} - -void unload_MBR() -{ - if (hinstDllMBR) { - FreeLibrary(hinstDllMBR); - hinstDllMBR = NULL; - } -} - -#endif // windows - static MBROLA_TAB *mbrola_tab = NULL; static int mbrola_control = 0; static int mbr_name_prefix = 0; diff --git a/src/windows/libespeak-ng.vcxproj b/src/windows/libespeak-ng.vcxproj index 4f20041e..381171e5 100644 --- a/src/windows/libespeak-ng.vcxproj +++ b/src/windows/libespeak-ng.vcxproj @@ -159,6 +159,7 @@ + diff --git a/src/windows/libespeak-ng.vcxproj.filters b/src/windows/libespeak-ng.vcxproj.filters index 0527363c..fc6ec963 100644 --- a/src/windows/libespeak-ng.vcxproj.filters +++ b/src/windows/libespeak-ng.vcxproj.filters @@ -84,6 +84,9 @@ Source Files + + Source Files +