AppleWin/source/Core.h
Andrea 2d2ba86f4f
IPropertySheet: make it a standard C++ class with pure virtual functions (PR #892)
* Interface.h: ensure that functions in the interface are not exported by other header files.

This is generally harmless, except for the presence of default arguments, in which case the version with default arguments must come first.
To avoid the issue, these functions are only ever exported in the Interface.h header file.
2020-12-20 15:32:51 +00:00

91 lines
2.5 KiB
C++

#pragma once
#include "Card.h"
#include "Common.h"
void LogFileTimeUntilFirstKeyReadReset(void);
void LogFileTimeUntilFirstKeyRead(void);
extern const UINT16* GetOldAppleWinVersion(void);
extern TCHAR VERSIONSTRING[]; // Constructed in WinMain()
void SetAppleWinVersion(UINT16 major, UINT16 minor, UINT16 fix, UINT16 fix_minor);
bool CheckOldAppleWinVersion(void);
extern std::string g_pAppTitle;
extern eApple2Type g_Apple2Type;
eApple2Type GetApple2Type(void);
void SetApple2Type(eApple2Type type);
double Get6502BaseClock(void);
void SetCurrentCLK6502(void);
// set g_dwSpeed =
// | clockMultiplier == 0 => unchanged
// | clockMultiplier < 1 => (max(0.5, clockMultiplier) - 0.5) * 20
// | else => min(SPEED_MAX - 1, clockMultiplier * 10)
void UseClockMultiplier(double clockMultiplier);
extern bool g_bFullSpeed;
//===========================================
extern AppMode_e g_nAppMode;
extern std::string g_sStartDir;
extern std::string g_sProgramDir;
extern std::string g_sCurrentDir;
bool SetCurrentImageDir(const std::string& pszImageDir);
extern bool g_bRestart;
extern DWORD g_dwSpeed;
extern double g_fCurrentCLK6502;
extern int g_nCpuCyclesFeedback;
extern DWORD g_dwCyclesThisFrame;
extern int g_nMemoryClearType; // Cmd line switch: use specific MIP (Memory Initialization Pattern)
extern class CardManager& GetCardMgr(void);
extern class SynchronousEventManager g_SynchronousEventMgr;
extern HANDLE g_hCustomRomF8; // INVALID_HANDLE_VALUE if no custom F8 rom
extern bool g_bCustomRomF8Failed; // Set if custom F8 ROM file failed
extern HANDLE g_hCustomRom; // INVALID_HANDLE_VALUE if no custom rom
extern bool g_bCustomRomFailed; // Set if custom ROM file failed
extern bool g_bEnableSpeech;
#ifdef USE_SPEECH_API
class CSpeech;
extern CSpeech g_Speech;
#endif
extern bool g_bDisableDirectInput; // Cmd line switch: don't init DI (so no DIMouse support)
extern bool g_bDisableDirectSound; // Cmd line switch: don't init DS (so no MB/Speaker support)
extern bool g_bDisableDirectSoundMockingboard; // Cmd line switch: don't init MB support
//#define LOG_PERF_TIMINGS
#ifdef LOG_PERF_TIMINGS
class PerfMarker
{
public:
PerfMarker(UINT64& globalCounter)
: counter(globalCounter)
{
QueryPerformanceCounter(&timeStart);
}
~PerfMarker()
{
QueryPerformanceCounter(&timeEnd);
counter += (UINT64)timeEnd.QuadPart - (UINT64)timeStart.QuadPart;
}
private:
UINT64& counter;
LARGE_INTEGER timeStart;
LARGE_INTEGER timeEnd;
};
#endif