240 lines
6.2 KiB
C
240 lines
6.2 KiB
C
/****************************************************************************
|
|
*
|
|
* sbtest.h
|
|
*
|
|
* Copyright (c) 1991 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
***************************************************************************/
|
|
|
|
#include "options.h"
|
|
#include "record.h"
|
|
#include "riff.h"
|
|
#include "stdio.h"
|
|
|
|
#define dbgOut wpfOut(hPrintfWnd, ach)
|
|
extern char ach[256];
|
|
/****************************************************************************
|
|
*
|
|
* defines
|
|
*
|
|
***************************************************************************/
|
|
|
|
#define MAXFILENAME 256
|
|
|
|
// string resource ids
|
|
|
|
#define IDS_APPNAME 1
|
|
|
|
// menu ids
|
|
|
|
#define IDM_ABOUT 101
|
|
#define IDM_EXIT 102
|
|
|
|
#define IDM_PLAYWAVE 201
|
|
#define IDM_SNDPLAYSOUND 202
|
|
|
|
#define IDM_LOOPOFF 211
|
|
#define IDM_LOOP2 212
|
|
#define IDM_LOOP100 213
|
|
#define IDM_LOOPBREAK 214
|
|
|
|
#define IDM_RESET 221
|
|
#define IDM_POSITION 222
|
|
#define IDM_PAUSE 223
|
|
#define IDM_RESUME 224
|
|
#define IDM_VOLUME 225
|
|
#define IDM_AUX_VOLUME 226
|
|
|
|
#define IDM_RECORD 231
|
|
|
|
#define IDM_D0 301
|
|
#define IDM_D1 302
|
|
#define IDM_D2 303
|
|
#define IDM_D3 304
|
|
#define IDM_D4 305
|
|
#define IDM_D5 306
|
|
#define IDM_D6 307
|
|
#define IDM_D7 308
|
|
#define IDM_D8 309
|
|
#define IDM_D9 310
|
|
#define IDM_D10 311
|
|
#define IDM_D11 312
|
|
#define IDM_D12 313
|
|
#define IDM_D13 314
|
|
#define IDM_D14 315
|
|
#define IDM_D15 316
|
|
#define LASTPORT 15
|
|
|
|
#define IDM_D0 301
|
|
#define IDM_D1 302
|
|
#define IDM_D2 303
|
|
#define IDM_D3 304
|
|
#define IDM_D4 305
|
|
#define IDM_D5 306
|
|
#define IDM_D6 307
|
|
#define IDM_D7 308
|
|
#define IDM_D8 309
|
|
#define IDM_D9 310
|
|
#define IDM_D10 311
|
|
#define IDM_D11 312
|
|
#define IDM_D12 313
|
|
#define IDM_D13 314
|
|
#define IDM_D14 315
|
|
#define IDM_D15 316
|
|
#define LASTPORT 15
|
|
|
|
#define IDM_C0 321
|
|
#define IDM_C1 322
|
|
#define IDM_C2 323
|
|
#define IDM_C3 324
|
|
#define IDM_C4 325
|
|
#define IDM_C5 326
|
|
#define IDM_C6 327
|
|
#define IDM_C7 328
|
|
#define IDM_C8 329
|
|
#define IDM_C9 330
|
|
#define IDM_C10 331
|
|
#define IDM_C11 332
|
|
#define IDM_C12 333
|
|
#define IDM_C13 334
|
|
#define IDM_C14 335
|
|
#define IDM_C15 336
|
|
|
|
#define IDM_INSTRUMENT 341
|
|
#define IDM_KEYBOARD 342
|
|
|
|
#define IDM_I0 401
|
|
#define IDM_I1 402
|
|
#define IDM_I2 403
|
|
#define IDM_I3 404
|
|
#define IDM_I4 405
|
|
#define IDM_I5 406
|
|
#define IDM_I6 407
|
|
#define IDM_I7 408
|
|
#define IDM_I8 409
|
|
#define IDM_I9 410
|
|
#define IDM_I10 411
|
|
#define IDM_I11 412
|
|
#define IDM_I12 413
|
|
#define IDM_I13 414
|
|
#define IDM_I14 415
|
|
#define IDM_I15 416
|
|
#define IDM_STARTMIDIIN 417
|
|
#define IDM_STOPMIDIIN 418
|
|
|
|
#define IDM_GETINFO 501
|
|
|
|
#define IDM_DUMPNOTES 601
|
|
#define IDM_DUMPPATCH 602
|
|
#define IDM_RIP 603
|
|
|
|
#define IDM_WAVEOPTIONS 701
|
|
#define IDM_MIDIOPTIONS 702
|
|
|
|
#define IDM_PROFSTART 801
|
|
#define IDM_PROFSTOP 802
|
|
|
|
// miscellaneous defines
|
|
|
|
#define MAXPLAYERS 100
|
|
#define NOTEVELOCITY 80
|
|
|
|
#define DEBUG_PATCH 1
|
|
#define DEBUG_NOTE 2
|
|
|
|
#define ISBITSET(f,b) ((f) & (b))
|
|
#define SETBIT(f,b) ((f)|=(b))
|
|
#define RESETBIT(f,b) ((f)&=(~b))
|
|
|
|
/****************************************************************************
|
|
*
|
|
* typedefs
|
|
*
|
|
***************************************************************************/
|
|
|
|
typedef union shortmsg_tag {
|
|
BYTE b[4];
|
|
DWORD dw;
|
|
} SHORTMSG;
|
|
|
|
typedef struct playitem_tag {
|
|
LPWAVEHDR lpHdr;
|
|
LPSTR lpData;
|
|
HANDLE hMem;
|
|
HANDLE hData;
|
|
BOOL bResource;
|
|
} PLAYITEM;
|
|
|
|
/****************************************************************************
|
|
*
|
|
* extern declarations
|
|
*
|
|
***************************************************************************/
|
|
|
|
// about.c
|
|
extern void About(HWND hWnd);
|
|
extern int FAR PASCAL AboutDlgProc(HWND, unsigned, UINT, LONG);
|
|
|
|
// callback.c
|
|
extern void FAR PASCAL SBMidiInCallback(HMIDIIN hMidiIn, UINT wMsg,
|
|
DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
|
|
|
|
// init.c
|
|
extern HANDLE hAccTable;
|
|
extern int gInstBase;
|
|
extern HWND hMainWnd;
|
|
extern BOOL InitFirstInstance(HANDLE hInstance);
|
|
extern BOOL InitEveryInstance(HANDLE hInstance, int cmdShow);
|
|
extern void InitMenus(HWND hWnd);
|
|
extern int sbtestError(LPSTR msg);
|
|
|
|
// inst.c
|
|
extern HWND hInstWnd;
|
|
extern BYTE bInstrument;
|
|
extern void CreateInstrument(HWND hWnd);
|
|
extern long FAR PASCAL InstWndProc(HWND, unsigned, UINT, LONG);
|
|
|
|
// keyb.c
|
|
extern HWND hKeyWnd;
|
|
extern void CreateKeyboard(HWND hParent);
|
|
extern long FAR PASCAL KeyWndProc(HWND, unsigned, UINT, LONG);
|
|
|
|
// options.c
|
|
extern void WaveOptions(HWND hWnd);
|
|
extern int FAR PASCAL WaveOptionsDlgProc(HWND, unsigned, UINT, LONG);
|
|
extern void MidiOptions(HWND hWnd);
|
|
extern int FAR PASCAL MidiOptionsDlgProc(HWND, unsigned, UINT, LONG);
|
|
|
|
// playfile.c
|
|
extern HWAVEOUT hWaveOut;
|
|
extern int iWaveOut;
|
|
extern void PlayFile(LPSTR fname);
|
|
|
|
// pos.c
|
|
extern HWND hPosWnd;
|
|
extern void CreatePosition(HWND hParent);
|
|
extern long FAR PASCAL PosWndProc(HWND, unsigned, UINT, LONG);
|
|
extern void ShowPos(void);
|
|
|
|
// record.c
|
|
extern HWAVEIN hWaveIn;
|
|
extern void Record(HWND hWnd);
|
|
extern int FAR PASCAL RecordDlgProc(HWND, unsigned, UINT, LONG);
|
|
|
|
// sbtest.c
|
|
extern HMIDIOUT hMidiOut;
|
|
extern HANDLE ghInst;
|
|
extern char szAppName[];
|
|
extern HWND hPrintfWnd;
|
|
extern int fDebug;
|
|
extern BYTE bChannel;
|
|
extern UINT wLoops;
|
|
extern void GetInfo(void);
|
|
extern int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
|
|
extern long FAR PASCAL MainWndProc(HWND, unsigned, UINT, LONG);
|
|
extern LPSTR lpRecordBuf;
|
|
extern DWORD dwBlockSize;
|
|
extern DWORD dwRecorded;
|
|
extern DWORD dwDataSize;
|
|
|