📄 ds_control.h
字号:
/////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000 John Adcock. All rights reserved.
/////////////////////////////////////////////////////////////////////////////
// This header file is free software; you can redistribute it and/or modify it
// under the terms of the GNU Library General Public License as published by
// the Free Software Foundation; either version 2 of the License, or (at your
// option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Library General Public License for more details
/////////////////////////////////////////////////////////////////////////////
//
// Notes for writers of external apps
//
// To use control DScaler using an external app you can use SendMessage to
// perform both commands and to get/set all the settings
//
// To perform commands use the WM_COMMAND message
// e.g. SendMessage(hWndDScaler, WM_COMMAND, IDM_OSD_SHOW, 0);
//
// To get settings use the appropriate WM_XXX_GETVALUE
// e.g. Brightness = SendMessage(hWndDScaler, WM_BT848_GETVALUE, BRIGHTNESS, 0);
//
// To set settings use the appropriate WM_XXX_SETVALUE
// e.g. SendMessage(hWndDScaler, WM_BT848_SETVALUE, HUE, NewHueValue);
//
// To up settings use the appropriate WM_XXX_CHANGEVALUE
// e.g. SendMessage(hWndDScaler, WM_BT848_CHANGEVALUE, HUE, INCREMENTVALUE);
//
// To down settings use the appropriate WM_XXX_CHANGEVALUE
// e.g. SendMessage(hWndDScaler, WM_BT848_CHANGEVALUE, HUE, DECREMENTVALUE);
//
// To show settings use the appropriate WM_XXX_CHANGEVALUE
// e.g. SendMessage(hWndDScaler, WM_BT848_CHANGEVALUE, HUE, DISPLAYVALUE);
//
// To reset settings to default use the appropriate WM_XXX_CHANGEVALUE
// e.g. SendMessage(hWndDScaler, WM_BT848_CHANGEVALUE, HUE, RESETVALUE);
//
// To do the above operation without using the OSD use the ????VALUE_SILENT
// e.g. SendMessage(hWndDScaler, WM_BT848_CHANGEVALUE, HUE, INCREMENTVALUE_SILENT);
//
// The DScaler window handle can be obtained using
// hWndDScaler = FindWindow(DSCALER_APPNAME, NULL);
//
/////////////////////////////////////////////////////////////////////////////
//
// Notes for DScaler developers
//
// This is the place to add settings for any new file you create
// You should also update the LoadSettingsFromIni & SaveSettingsToIni
// functions in Settings.h so that your setttings get loaded
//
/////////////////////////////////////////////////////////////////////////////
// Change Log
//
// Date Developer Changes
//
// 16 Jan 2001 John Adcock Moved all parts that could be used to
// Control DScaler externally to this file
//
// 20 Feb 2001 Michael Samblanet Added new values for Aspect Control
// (bounce & clipping Modes)
//
// 08 Jun 2001 Eric Schmidt Added bounce amplitude to ini
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __DS_CONTROL_H___
#define __DS_CONTROL_H___
#define DSCALER_APPNAME "DScaler"
/////////////////////////////////////////////////////////////////////////////
// Control Messages passed using WM_COMMAND
/////////////////////////////////////////////////////////////////////////////
#ifdef DSCALER_EXTERNAL
#define IDM_SAVE_SETTINGS_NOW 100
#define IDM_VT_RESET 261
#define IDM_RESET 280
#define IDM_TAKESTILL 485
#define IDM_OVERLAY_STOP 590
#define IDM_OVERLAY_START 591
#define IDM_HIDE_OSD 592
#define IDM_SHOW_OSD 593
// IDM_SET_OSD_TEXT the lParam must be the handle of a global atom
#define IDM_SET_OSD_TEXT 594
#define IDM_FAST_REPAINT 599
#define IDM_ASPECT_FULLSCREEN 701
#define IDM_ASPECT_LETTERBOX 702
#define IDM_ASPECT_ANAMORPHIC 703
// Messages for the Video Format Menu
#define IDM_TYPEFORMAT_PAL 1120
#define IDM_TYPEFORMAT_NTSC 1121
#define IDM_TYPEFORMAT_SECAM 1122
#define IDM_TYPEFORMAT_PAL_M 1123
#define IDM_TYPEFORMAT_PAL_N 1124
#define IDM_TYPEFORMAT_NTSC_JAPAN 1125
#define IDM_TYPEFORMAT_PAL60 1126
// Indexes for the Video Deinterlace Algorithms
// to select a deinterlace method send a WM_COMMAND message
// with the relevant index added to this message
// e.g. To switch to adaptive
// SendMessage(hWndDScaler, WM_COMMAND, IDM_FIRST_DEINTMETHOD + INDEX_ADAPTIVE, 0);
#define IDM_FIRST_DEINTMETHOD 1900
/////////////////////////////////////////////////////////////////////////////
// For setting of certain values
//
enum eVideoFormat
{
VIDEOFORMAT_PAL_B = 0,
VIDEOFORMAT_PAL_D,
VIDEOFORMAT_PAL_G,
VIDEOFORMAT_PAL_H,
VIDEOFORMAT_PAL_I,
VIDEOFORMAT_PAL_M,
VIDEOFORMAT_PAL_N,
VIDEOFORMAT_PAL_60,
VIDEOFORMAT_PAL_N_COMBO,
VIDEOFORMAT_SECAM_B,
VIDEOFORMAT_SECAM_D,
VIDEOFORMAT_SECAM_G,
VIDEOFORMAT_SECAM_H,
VIDEOFORMAT_SECAM_K,
VIDEOFORMAT_SECAM_K1,
VIDEOFORMAT_SECAM_L,
VIDEOFORMAT_SECAM_L1,
VIDEOFORMAT_NTSC_M,
VIDEOFORMAT_NTSC_M_Japan,
VIDEOFORMAT_NTSC_50,
VIDEOFORMAT_LASTONE
};
#endif
// Indexes for the Video Deinterlace Algorithms
#define INDEX_VIDEO_BOB 0
#define INDEX_VIDEO_WEAVE 1
#define INDEX_VIDEO_2FRAME 2
#define INDEX_WEAVE 3
#define INDEX_BOB 4
#define INDEX_SCALER_BOB 5
#define INDEX_EVEN_ONLY 13
#define INDEX_ODD_ONLY 14
#define INDEX_BLENDED_CLIP 15
#define INDEX_ADAPTIVE 16
#define INDEX_VIDEO_GREEDY 17
#define INDEX_VIDEO_GREEDY2FRAME 18
#define INDEX_VIDEO_GREEDYH 19
#define INDEX_OLD_GAME 20
#define INDEX_VIDEO_TOMSMOCOMP 21
#define INDEX_VIDEO_MOCOMP2 22
/////////////////////////////////////////////////////////////////////////////
// Allow callers to convert a WM code to do other operations
/////////////////////////////////////////////////////////////////////////////
#define WM_CONVERT_TO_GETVALUE(x) (((x - WM_APP) % 100) + WM_APP)
#define WM_CONVERT_TO_SETVALUE(x) ((((x - WM_APP) % 100) + 100) + WM_APP)
#define WM_CONVERT_TO_CHANGEVALUE(x) ((((x - WM_APP) % 100) + 200) + WM_APP)
/////////////////////////////////////////////////////////////////////////////
// Constants for WM_????_CHANGEVALUE messages
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
DISPLAY = 0, // Display OSD Value.
ADJUSTUP, // Increase Value, with acceleration [display OSD]
ADJUSTDOWN, // Decrease Value, with acceleration [display OSD]
INCREMENT, // Increase Value by 1 [display OSD]
DECREMENT, // Decrease Value by 1 [display OSD]
RESET, // Reset Value to default [display OSD]
TOGGLEBOOL, // Toggle a boolean setting [display OSD]
ADJUSTUP_SILENT, // Same, but no OSD
ADJUSTDOWN_SILENT, // Same, but no OSD
INCREMENT_SILENT, // Same, but no OSD
DECREMENT_SILENT, // Same, but no OSD
RESET_SILENT, // Same, but no OSD
TOGGLEBOOL_SILENT, // Same, but no OSD
} eCHANGEVALUE;
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in AspectRatio.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
SOURCE_ASPECT = 0,
CUSTOM_SOURCE_ASPECT,
TARGET_ASPECT,
CUSTOM_TARGET_ASPECT,
ASPECT_MODE,
LUMINANCETHRESHOLD,
IGNORENONBLACKPIXELS,
AUTODETECTASPECT,
ZOOMINFRAMECOUNT,
ASPECTHISTORYTIME,
ASPECTCONSISTENCYTIME,
VERTICALPOS,
HORIZONTALPOS,
CLIPPING,
BOUNCE,
BOUNCEPERIOD,
DEFERSETOVERLAY,
BOUNCETIMERPERIOD,
BOUNCEAMPLITUDE,
ORBIT,
ORBITPERIODX,
ORBITPERIODY,
ORBITSIZE,
ORBITTIMERPERIOD,
AUTOSIZEWINDOW,
SKIPPERCENT,
XZOOMFACTOR,
YZOOMFACTOR,
XZOOMCENTER,
YZOOMCENTER,
CHROMARANGE,
WAITFORVERTBLANKINDRAW,
ZOOMOUTFRAMECOUNT,
ALLOWGREATERTHANSCREEN,
MASKGREYSHADE,
USEWSS,
DEFAULTSOURCEASPECT,
DEFAULTASPECTMODE,
ASPECT_SETTING_LASTONE,
} ASPECT_SETTING;
#define WM_ASPECT_GETVALUE (WM_APP + 1)
#define WM_ASPECT_SETVALUE (WM_APP + 101)
#define WM_ASPECT_CHANGEVALUE (WM_APP + 201)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in Bt848.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
BRIGHTNESS = 0,
CONTRAST,
HUE,
SATURATION,
SATURATIONU,
SATURATIONV,
TOPOVERSCAN,
BDELAY,
BTAGCDISABLE,
BTCRUSH,
BTEVENCHROMAAGC,
BTODDCHROMAAGC,
BTEVENLUMAPEAK,
BTODDLUMAPEAK,
BTFULLLUMARANGE,
BTEVENLUMADEC,
BTODDLUMADEC,
BTEVENCOMB,
BTODDCOMB,
BTCOLORBARS,
BTGAMMACORRECTION,
BTCORING,
BTHORFILTER,
BTVERTFILTER,
BTCOLORKILL,
BTWHITECRUSHUP,
BTWHITECRUSHDOWN,
CURRENTX,
CUSTOMPIXELWIDTH,
VIDEOSOURCE,
TVFORMAT,
HDELAY,
VDELAY,
REVERSEPOLARITY,
CURRENTCARDTYPE,
CURRENTTUNERTYPE,
AUDIOSOURCE1,
AUDIOCHANNEL,
AUTOSTEREOSELECT,
VOLUME,
BASS,
TREBLE,
BALANCE,
BT848SAVEPERINPUT_DISABLED,
BT848SAVEPERFORMAT_DISABLED,
AUDIOSOURCE2,
AUDIOSOURCE3,
AUDIOSOURCE4,
AUDIOSOURCE5,
AUDIOSOURCE6,
USEINPUTPIN1,
USEEQUALIZER,
EQUALIZERBAND1,
EQUALIZERBAND2,
EQUALIZERBAND3,
EQUALIZERBAND4,
EQUALIZERBAND5,
LOUDNESS,
SUPERBASS,
SPATIAL,
AUTOVOLUMECORRECTION,
AUDIOSTANDARDDETECT,
AUDIOSTANDARDDETECTINTERVAL,
AUDIOSTANDARDMANUAL,
AUDIOSTANDARDMAJORCARRIER,
AUDIOSTANDARDMINORCARRIER,
AUDIOSTANDARDINSTATUSBAR,
MSP34XXFLAGS,
AUTOSTEREODETECTINTERVAL,
BOTTOMOVERSCAN,
LEFTOVERSCAN,
RIGHTOVERSCAN,
BT848_SETTING_LASTONE,
} BT848_SETTING;
#define WM_BT848_GETVALUE (WM_APP + 2)
#define WM_BT848_SETVALUE (WM_APP + 102)
#define WM_BT848_CHANGEVALUE (WM_APP + 202)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in DScaler.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
STARTLEFT = 0,
STARTTOP,
STARTWIDTH,
STARTHEIGHT,
ALWAYSONTOP,
ISFULLSCREEN,
FORCEFULLSCREEN,
SHOWSTATUSBAR,
SHOWMENU,
WINDOWPROCESSOR,
THREADPROCESSOR,
WINDOWPRIORITY,
THREADPRIORITY,
AUTOSAVESETTINGS,
ALWAYSONTOPFULL,
SHOWCRASHDIALOG,
DISPLAYSPLASHSCREEN,
AUTOHIDECURSOR,
LOCKKEYBOARD,
LOCKKEYBOARDMAINWINDOWONLY,
SCREENSAVEROFF,
AUTOCODEPAGE,
VTANTIALIAS,
INITIALSOURCE,
CHANNELENTERTIME,
PROCESSORSPEED,
TRADEOFF,
FULLCPU,
VIDEOCARD,
REVERSECHANNELSCROLLING,
SINGLEKEYTELETEXTTOGGLE,
MINTOTRAY,
MINIMIZEHANDLING,
RESOFULLSCREEN,
PSTRIPRESO576I,
PSTRIPRESO480I,
SKINNAME,
CHANNELPREVIEWWNBCOLS,
CHANNELPREVIEWNBROWS,
DSCALER_SETTING_LASTONE,
} DSCALER_SETTING;
#define WM_DSCALER_GETVALUE (WM_APP + 3)
#define WM_DSCALER_SETVALUE (WM_APP + 103)
#define WM_DSCALER_CHANGEVALUE (WM_APP + 203)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in OutThreads.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
HURRYWHENLATE = 0,
WAITFORFLIP,
DOVERTICALFLIP,
TUNERSWITCHSCREENUPDATEDELAY,
DOACCURATEFLIPS,
AUTODETECT,
WAITFORVSYNC,
DOJUDDERTERMINATORONVIDEO,
OUTTHREADS_SETTING_LASTONE,
} OUTTHREADS_SETTING;
#define WM_OUTTHREADS_GETVALUE (WM_APP + 4)
#define WM_OUTTHREADS_SETVALUE (WM_APP + 104)
#define WM_OUTTHREADS_CHANGEVALUE (WM_APP + 204)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in Other.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
BACKBUFFERS = 0,
OVERLAYCOLOR,
USEOVERLAYCONTROLS,
OVERLAYBRIGHTNESS,
OVERLAYCONTRAST,
OVERLAYHUE,
OVERLAYSATURATION,
OVERLAYGAMMA,
OVERLAYSHARPNESS,
OTHER_SETTING_LASTONE,
} OTHER_SETTING;
#define WM_OTHER_GETVALUE (WM_APP + 5)
#define WM_OTHER_SETVALUE (WM_APP + 105)
#define WM_OTHER_CHANGEVALUE (WM_APP + 205)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in FD_50Hz.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
PULLDOWNTHRESHHOLDLOW = 0,
PULLDOWNTHRESHHOLDHIGH,
PALFILMFALLBACKMODE,
PALFILMREPEATCOUNT,
PALFILMREPEATCOUNT2,
MAXCALLSTOPALCOMB,
PALBADCADENCEMODE,
FD50_SETTING_LASTONE,
} FD50_SETTING;
#define WM_FD50_GETVALUE (WM_APP + 6)
#define WM_FD50_SETVALUE (WM_APP + 106)
#define WM_FD50_CHANGEVALUE (WM_APP + 206)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in FD_50Hz.c
/////////////////////////////////////////////////////////////////////////////
typedef enum
{
NTSCFILMFALLBACKMODE = 0,
NTSCPULLDOWNREPEATCOUNT,
NTSCPULLDOWNREPEATCOUNT2,
THRESHOLD32PULLDOWN,
THRESHOLDPULLDOWNMISMATCH,
THRESHOLDPULLDOWNCOMB,
FALLBACKTOVIDEO,
PULLDOWNSWITCHINTERVAL,
PULLDOWNSWITCHMAX,
MAXCALLSTOCOMB,
NTSCBADCADENCEMODE,
FD60_SETTING_LASTONE,
} FD60_SETTING;
#define WM_FD60_GETVALUE (WM_APP + 7)
#define WM_FD60_SETVALUE (WM_APP + 107)
#define WM_FD60_CHANGEVALUE (WM_APP + 207)
/////////////////////////////////////////////////////////////////////////////
// Control settings contained in FD_Common.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -