Don't duplicate defs of DLL_IMPORT, DLL_API, ModuleDispatchTypes

This commit is contained in:
Paul Licameli 2020-09-22 12:34:13 -04:00
parent dcd8bca896
commit fd94b66483
7 changed files with 39 additions and 58 deletions

View File

@ -27,8 +27,7 @@ click from the menu into the actual function to be called.
#include <wx/wx.h>
#include "ModNullCallback.h"
#include "ModuleManager.h"
#include "ModuleConstants.h"
#include "ShuttleGui.h"
#include "Project.h"
#include "commands/CommandManager.h"
@ -55,14 +54,6 @@ and replace the main project window with our own wxFrame.
*/
#ifdef _MSC_VER
#define DLL_API _declspec(dllexport)
#define DLL_IMPORT _declspec(dllimport)
#else
#define DLL_API __attribute__ ((visibility("default")))
#define DLL_IMPORT
#endif
// derived from wxFrame as it needs to be some kind of event handler.
class ModNullCallback : public wxFrame
{

View File

@ -4,15 +4,3 @@
// that uses this DLL. This way any other project whose source files include this file see
// MOD_NULL_DLL_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
/* Magic for dynamic library import and export. This is unfortunately
* compiler-specific because there isn't a standard way to do it. Currently it
* works with the Visual Studio compiler for windows, and for GCC 4+. Anything
* else gets all symbols made public, which gets messy */
/* The Visual Studio implementation */
#ifdef _MSC_VER
#define DLL_API _declspec(dllexport)
#else
#define DLL_API __attribute__ ((visibility("default")))
#endif

View File

@ -25,7 +25,7 @@
#include "AudioIOBase.h"
#include "CommonCommandFlags.h"
#include "ModuleManager.h"
#include "ModuleConstants.h"
#include "Prefs.h"
#include "Project.h"
#include "ShuttleGui.h"
@ -134,12 +134,6 @@ extern "C"
{
static NyqBench *gBench = NULL;
#ifdef _MSC_VER
#define DLL_API _declspec(dllexport)
#else
#define DLL_API __attribute__ ((visibility("default")))
#endif
extern DLL_API const wxChar * GetVersionString();
// GetVersionString
// REQUIRED for the module to be accepted by Audacity.

View File

@ -37,25 +37,7 @@ and replace the main project window with our own wxFrame.
*/
#ifdef _MSC_VER
#define DLL_API _declspec(dllexport)
#define DLL_IMPORT _declspec(dllimport)
#else
#define DLL_API __attribute__ ((visibility("default")))
#define DLL_IMPORT
#endif
typedef enum
{
ModuleInitialize,
ModuleTerminate,
AppInitialized,
AppQuiting,
ProjectInitialized,
ProjectClosing
} ModuleDispatchTypes;
#include "ModuleConstants.h"
extern void PipeServer();
typedef DLL_IMPORT int (*tpExecScriptServerFunc)( wxString * pIn, wxString * pOut);

View File

@ -179,6 +179,7 @@ list( APPEND SOURCES
Mix.h
MixerBoard.cpp
MixerBoard.h
ModuleConstants.h
ModuleManager.cpp
ModuleManager.h
NoteTrack.cpp

34
src/ModuleConstants.h Normal file
View File

@ -0,0 +1,34 @@
/**********************************************************************
Audacity: A Digital Audio Editor
ModuleConstants.h
Paul Licameli split from ModuleManager.h
**********************************************************************/
#ifndef __AUDACITY_MODULE_CONSTANTS__
#define __AUDACITY_MODULE_CONSTANTS__
#define ModuleDispatchName "ModuleDispatch"
#ifdef _MSC_VER
#define DLL_API _declspec(dllexport)
#define DLL_IMPORT _declspec(dllimport)
#else
#define DLL_API __attribute__ ((visibility("default")))
#define DLL_IMPORT
#endif
enum ModuleDispatchTypes
{
ModuleInitialize,
ModuleTerminate,
AppInitialized,
AppQuiting,
ProjectInitialized,
ProjectClosing
};
#endif

View File

@ -30,17 +30,8 @@ wxWindow * MakeHijackPanel();
//
// wxPluginManager would be MUCH better, but it's an "undocumented" framework.
//
#define ModuleDispatchName "ModuleDispatch"
typedef enum
{
ModuleInitialize,
ModuleTerminate,
AppInitialized,
AppQuiting,
ProjectInitialized,
ProjectClosing
} ModuleDispatchTypes;
#include "ModuleConstants.h"
typedef int (*fnModuleDispatch)(ModuleDispatchTypes type);