232 lines
7.1 KiB
C
232 lines
7.1 KiB
C
/**************************************************************************
|
|
*
|
|
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
|
* KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
|
|
* PURPOSE.
|
|
*
|
|
* Copyright (c) 1992 - 1995 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
**************************************************************************/
|
|
/****************************************************************************
|
|
*
|
|
* vidcap.h: Main application include file
|
|
*
|
|
* Vidcap32 Source code
|
|
*
|
|
***************************************************************************/
|
|
|
|
#include "dialogs.h"
|
|
|
|
#define USE_ACM 1 // Use ACM dialogs for audio format selection
|
|
|
|
//
|
|
// General purpose constants...
|
|
//
|
|
#define MAXVIDDRIVERS 10
|
|
|
|
#define DEF_CAPTURE_FPS 15
|
|
#define MIN_CAPTURE_FPS (1.0 / 60) // one frame per minute
|
|
#define MAX_CAPTURE_FPS 100
|
|
|
|
#define FPS_TO_MS(f) ((DWORD) ((double)1.0e6 / f))
|
|
|
|
#define DEF_CAPTURE_RATE FPS_TO_MS(DEF_CAPTURE_FPS)
|
|
#define MIN_CAPTURE_RATE FPS_TO_MS(MIN_CAPTURE_FPS)
|
|
#define MAX_CAPTURE_RATE FPS_TO_MS(MAX_CAPTURE_FPS)
|
|
|
|
|
|
#define DEF_PALNUMFRAMES 10
|
|
#define DEF_PALNUMCOLORS 236L
|
|
#define ONEMEG (1024L * 1024L)
|
|
|
|
//standard index size options
|
|
#define CAP_LARGE_INDEX (30 * 60 * 60 * 3) // 3 hrs @ 30fps
|
|
#define CAP_SMALL_INDEX (30 * 60 * 15) // 15 minutes @ 30fps
|
|
|
|
|
|
//
|
|
// Menu Ids...must not conflict with string table ids
|
|
// these are also the id of help strings in the string table
|
|
// (along with all the SC_ system menu items).
|
|
// menu popups must start 10 apart and be numbered in the same order
|
|
// as they appear if the help text is to work correctly for the
|
|
// popup heads as well as for the menu items.
|
|
//
|
|
#define IDM_SYSMENU 100
|
|
|
|
#define IDM_FILE 200
|
|
#define IDM_F_SETCAPTUREFILE 201
|
|
#define IDM_F_SAVEVIDEOAS 202
|
|
#define IDM_F_ALLOCATESPACE 203
|
|
#define IDM_F_EXIT 204
|
|
#define IDM_F_LOADPALETTE 205
|
|
#define IDM_F_SAVEPALETTE 206
|
|
#define IDM_F_SAVEFRAME 207
|
|
#define IDM_F_EDITVIDEO 208
|
|
|
|
|
|
#define IDM_EDIT 300
|
|
#define IDM_E_COPY 301
|
|
#define IDM_E_PASTEPALETTE 302
|
|
#define IDM_E_PREFS 303
|
|
|
|
#define IDM_CAPTURE 400
|
|
#define IDM_C_CAPTUREVIDEO 401
|
|
#define IDM_C_CAPTUREFRAME 402
|
|
#define IDM_C_PALETTE 403
|
|
#define IDM_C_CAPSEL 404
|
|
#define IDM_C_TEST 405
|
|
#define IDM_C_TESTAGAIN 406
|
|
|
|
#define IDM_OPTIONS 500
|
|
#define IDM_O_PREVIEW 501
|
|
#define IDM_O_OVERLAY 502
|
|
#define IDM_O_AUDIOFORMAT 503
|
|
#define IDM_O_VIDEOFORMAT 504
|
|
#define IDM_O_VIDEOSOURCE 505
|
|
#define IDM_O_VIDEODISPLAY 506
|
|
#define IDM_O_CHOOSECOMPRESSOR 507
|
|
|
|
#define IDM_O_DRIVER0 520
|
|
#define IDM_O_DRIVER1 521
|
|
#define IDM_O_DRIVER2 522
|
|
#define IDM_O_DRIVER3 523
|
|
#define IDM_O_DRIVER4 524
|
|
#define IDM_O_DRIVER5 525
|
|
#define IDM_O_DRIVER6 526
|
|
#define IDM_O_DRIVER7 527
|
|
#define IDM_O_DRIVER8 528
|
|
#define IDM_O_DRIVER9 529
|
|
|
|
#define IDM_HELP 600
|
|
#define IDM_H_CONTENTS 601
|
|
#define IDM_H_ABOUT 602
|
|
|
|
|
|
// filter rcdata ids
|
|
#define ID_FILTER_AVI 900
|
|
#define ID_FILTER_PALETTE 901
|
|
#define ID_FILTER_DIB 902
|
|
|
|
|
|
/*
|
|
* string table id
|
|
*
|
|
* NOTE: string table ID's must not conflict with IDM_ menu ids,
|
|
* as there is a help string for each menu id.
|
|
*/
|
|
|
|
|
|
#define IDS_APP_TITLE 1001
|
|
|
|
#define IDS_ERR_REGISTER_CLASS 1002
|
|
#define IDS_ERR_CREATE_WINDOW 1003
|
|
#define IDS_ERR_FIND_HARDWARE 1004
|
|
#define IDS_ERR_CANT_PREALLOC 1005
|
|
#define IDS_ERR_MEASUREFREEDISK 1006
|
|
#define IDS_ERR_SIZECAPFILE 1007
|
|
#define IDS_ERR_RECONNECTDRIVER 1008
|
|
#define IDS_ERR_CMDLINE 1009
|
|
#define IDS_WARN_DEFAULT_PALETTE 1010
|
|
|
|
#define IDS_TITLE_SETCAPTUREFILE 1101
|
|
#define IDS_TITLE_SAVEAS 1102
|
|
#define IDS_TITLE_LOADPALETTE 1104
|
|
#define IDS_TITLE_SAVEPALETTE 1105
|
|
#define IDS_TITLE_SAVEDIB 1106
|
|
#define IDS_PROMPT_CAPFRAMES 1107
|
|
#define IDS_STATUS_NUMFRAMES 1108
|
|
#define IDS_CAP_CLOSE 1109
|
|
#define IDS_MCI_CONTROL_ERROR 1110
|
|
#define IDS_ERR_ACCESS_SOUNDDRIVER 1111
|
|
#define IDS_ERR_VIDEDIT 1112
|
|
|
|
#define IDC_toolbarSETFILE 1220
|
|
#define IDC_toolbarCAPFRAME 1221
|
|
#define IDC_toolbarCAPSEL 1222
|
|
#define IDC_toolbarCAPAVI 1223
|
|
#define IDC_toolbarCAPPAL 1224
|
|
#define IDC_toolbarLIVE 1225
|
|
#define IDC_toolbarEDITCAP 1226
|
|
#define IDC_toolbarOVERLAY 1227
|
|
|
|
#define IDS_CAPPAL_CLOSE 1230
|
|
#define IDS_CAPPAL_STATUS 1231
|
|
#define IDS_CAPPAL_STOP 1232
|
|
#define IDS_CAPPAL_START 1233
|
|
|
|
#define IDS_CAP_RTL 1234
|
|
|
|
#define IDBMP_TOOLBAR 100 // main toolbar
|
|
|
|
|
|
//
|
|
// Macro Definitions...
|
|
//
|
|
#define IsDriverIndex(w) ( ((w) >= IDM_O_DRIVERS) && \
|
|
((w) - IDM_O_DRIVERS < MAXVIDDRIVERS) )
|
|
|
|
#define RECTWIDTH(rc) ((rc).right - (rc).left)
|
|
#define RECTHEIGHT(rc) ((rc).bottom - (rc).top)
|
|
|
|
|
|
//
|
|
// Global Variables...
|
|
//
|
|
|
|
// preferences
|
|
extern BOOL gbCentre;
|
|
extern BOOL gbToolBar;
|
|
extern BOOL gbStatusBar;
|
|
extern BOOL gbAutoSizeFrame;
|
|
extern int gBackColour;
|
|
extern BOOL gfIsRTL;
|
|
|
|
extern TCHAR gachAppName[] ;
|
|
extern TCHAR gachAppTitle[];
|
|
extern TCHAR gachIconName[] ;
|
|
extern TCHAR gachMenuName[] ;
|
|
extern TCHAR gachString[] ;
|
|
extern TCHAR gachMCIDeviceName[] ;
|
|
|
|
extern HINSTANCE ghInstApp ;
|
|
extern HWND ghWndMain ;
|
|
extern HWND ghWndCap ;
|
|
extern HWND ghWndFrame;
|
|
extern HANDLE ghAccel ;
|
|
extern WORD gwDeviceIndex ;
|
|
extern WORD gwPalFrames ;
|
|
extern WORD gwPalColors ;
|
|
extern WORD gwCapFileSize ;
|
|
extern BOOL gbLive ;
|
|
|
|
extern CAPSTATUS gCapStatus ;
|
|
extern CAPDRIVERCAPS gCapDriverCaps ;
|
|
extern CAPTUREPARMS gCapParms ;
|
|
|
|
extern HANDLE ghwfex ;
|
|
extern LPWAVEFORMATEX glpwfex ;
|
|
|
|
//
|
|
// Dialog Box Procedures...
|
|
//
|
|
LRESULT FAR PASCAL AboutProc(HWND, UINT, WPARAM, LPARAM) ;
|
|
LRESULT FAR PASCAL AudioFormatProc(HWND, UINT, WPARAM, LPARAM) ;
|
|
LRESULT FAR PASCAL CapSetUpProc(HWND, UINT, WPARAM, LPARAM) ;
|
|
LRESULT CALLBACK MakePaletteProc(HWND, UINT, WPARAM, LPARAM) ;
|
|
LRESULT FAR PASCAL AllocCapFileProc(HWND, UINT, WPARAM, LPARAM) ;
|
|
LRESULT FAR PASCAL PrefsDlgProc(HWND, UINT, WPARAM, LPARAM);
|
|
LRESULT FAR PASCAL NoHardwareDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
|
LRESULT FAR PASCAL CapFramesProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam);
|
|
|
|
// utility functions (in vidcap.c)
|
|
/*
|
|
* put up a message box. the main window ghWndMain is used as the parent
|
|
* window, and the app title gachAppTitle is used as the dialog title.
|
|
* the text for the dialog -idString- is loaded from the resource string table
|
|
*/
|
|
int MessageBoxID(UINT idString, UINT fuStyle);
|
|
LPSTR tmpString(UINT idString);
|
|
|