// 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) 1996 - 1997 Intel corporation. All rights reserved.
// Indeo.cpp : implementation file
//
#include "stdafx.h"
#include "IPlay.h"
#include "Indeo.h"
#include "IPlayDoc.h"
#include "Ax_Spec.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
const int BCS_MAX = 128;// used by trackbar controls
const int BCS_TICS = 16;
/////////////////////////////////////////////////////////////////////////////
// CIndeo
IMPLEMENT_DYNCREATE(CIndeo, CFormView)
CIndeo::CIndeo()
: CFormView(CIndeo::IDD)
{
//{{AFX_DATA_INIT(CIndeo)
m_bAccessKey = FALSE;
m_dwDecodeHeight = 0;
m_dwDecodeWidth = 0;
m_dwDecodeX = 0;
m_dwDecodeY = 0;
m_dwKeyValue = 0;
m_dwViewHeight = 0;
m_dwViewWidth = 0;
m_dwViewX = 0;
m_dwViewY = 0;
m_intBrightness = 0;
m_intContrast = 0;
m_intSaturation = 0;
m_dwDecodeTime = 0;
m_bAltLine = FALSE;
m_intGreen = 0;
m_intRed = 0;
m_intBlue = 0;
m_bDontDropFrames = FALSE;
m_bDontDropQuality = FALSE;
m_bViewOrigin = -1;
m_bTransFill = -1;
//}}AFX_DATA_INIT
m_dwInitTransRGBVal = 0;
m_bViewOrigin = 0;
}
CIndeo::~CIndeo()
{
}
void CIndeo::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIndeo)
DDX_Control(pDX, IDC_CUSTOM_COLORS, m_btnCustomColors);
DDX_Control(pDX, IDC_DONT_DROP_QUALITY, m_checkDontDropQuality);
DDX_Control(pDX, IDC_DONT_DROP_FRAMES, m_checkDontDropFrames);
DDX_Control(pDX, IDC_SATURATION_TEXT, m_editSaturation);
DDX_Control(pDX, IDC_CONTRAST_TEXT, m_editContrast);
DDX_Control(pDX, IDC_BRIGHTNESS_TEXT, m_editBrightness);
DDX_Control(pDX, IDC_GREEN_EDIT, m_editTransFillGreen);
DDX_Control(pDX, IDC_BLUE_EDIT, m_editTransFillBlue);
DDX_Control(pDX, IDC_RED_EDIT, m_editTransFillRed);
DDX_Control(pDX, IDC_ALTLINE, m_checkAltLine);
DDX_Control(pDX, IDC_DECODE_TIME, m_editDecodeTime);
DDX_Control(pDX, IDC_VIEW_WIDTH, m_editViewWidth);
DDX_Control(pDX, IDC_VIEW_Y, m_editViewY);
DDX_Control(pDX, IDC_VIEW_X, m_editViewX);
DDX_Control(pDX, IDC_VIEW_HEIGHT, m_editViewHeight);
DDX_Control(pDX, IDC_KEY_VALUE, m_editKeyValue);
DDX_Control(pDX, IDC_DECODE_Y, m_editDecodeY);
DDX_Control(pDX, IDC_DECODE_X, m_editDecodeX);
DDX_Control(pDX, IDC_DECODE_WIDTH, m_editDecodeWidth);
DDX_Control(pDX, IDC_ACCESSKEY, m_checkAccessKey);
DDX_Control(pDX, ID_INDEO_DEFAULTS, m_btnDefaults);
DDX_Control(pDX, ID_INDEO_APPLY, m_btnApply);
DDX_Control(pDX, IDC_DECODE_HEIGHT, m_editDecodeHeight);
DDX_Control(pDX, IDC_TB_COLORCONTROL_SATURATION, m_tbSaturation);
DDX_Control(pDX, IDC_TB_COLORCONTROL_CONTRAST, m_tbContrast);
DDX_Control(pDX, IDC_TB_COLORCONTROL_BRIGHTNESS, m_tbBrightness);
DDX_Check(pDX, IDC_ACCESSKEY, m_bAccessKey);
DDX_Text(pDX, IDC_DECODE_HEIGHT, m_dwDecodeHeight);
DDX_Text(pDX, IDC_DECODE_WIDTH, m_dwDecodeWidth);
DDX_Text(pDX, IDC_DECODE_X, m_dwDecodeX);
DDX_Text(pDX, IDC_DECODE_Y, m_dwDecodeY);
DDX_Text(pDX, IDC_KEY_VALUE, m_dwKeyValue);
DDX_Text(pDX, IDC_VIEW_HEIGHT, m_dwViewHeight);
DDX_Text(pDX, IDC_VIEW_WIDTH, m_dwViewWidth);
DDX_Text(pDX, IDC_VIEW_X, m_dwViewX);
DDX_Text(pDX, IDC_VIEW_Y, m_dwViewY);
DDX_Text(pDX, IDC_BRIGHTNESS_TEXT, m_intBrightness);
DDV_MinMaxInt(pDX, m_intBrightness, -128, 128);
DDX_Text(pDX, IDC_CONTRAST_TEXT, m_intContrast);
DDV_MinMaxInt(pDX, m_intContrast, -128, 128);
DDX_Text(pDX, IDC_SATURATION_TEXT, m_intSaturation);
DDV_MinMaxInt(pDX, m_intSaturation, -128, 128);
DDX_Text(pDX, IDC_DECODE_TIME, m_dwDecodeTime);
DDX_Control(pDX, IDC_TRANS_FILL, m_radTransFill);
DDX_Control(pDX, IDC_TRANS_NOFILL, m_radTransNoFill);
DDX_Check(pDX, IDC_ALTLINE, m_bAltLine);
DDX_Text(pDX, IDC_GREEN_EDIT, m_intGreen);
DDV_MinMaxInt(pDX, m_intGreen, 0, 255);
DDX_Text(pDX, IDC_RED_EDIT, m_intRed);
DDV_MinMaxInt(pDX, m_intRed, 0, 255);
DDX_Text(pDX, IDC_BLUE_EDIT, m_intBlue);
DDV_MinMaxInt(pDX, m_intBlue, 0, 255);
DDX_Check(pDX, IDC_DONT_DROP_FRAMES, m_bDontDropFrames);
DDX_Check(pDX, IDC_DONT_DROP_QUALITY, m_bDontDropQuality);
DDX_Control(pDX, IDC_FRAME_ORIGIN, m_radFrameOrigin);
DDX_Control(pDX, IDC_VIEW_ORIGIN, m_radViewOrigin);
DDX_Radio(pDX, IDC_FRAME_ORIGIN, m_bViewOrigin);
DDX_Radio(pDX, IDC_TRANS_NOFILL, m_bTransFill);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIndeo, CFormView)
//{{AFX_MSG_MAP(CIndeo)
ON_BN_CLICKED(ID_INDEO_APPLY, OnIndeoApply)
ON_BN_CLICKED(ID_INDEO_DEFAULTS, OnIndeoDefaults)
ON_EN_CHANGE(IDC_DECODE_HEIGHT, OnChangeDecodeHeight)
ON_EN_CHANGE(IDC_DECODE_WIDTH, OnChangeDecodeWidth)
ON_EN_CHANGE(IDC_DECODE_X, OnChangeDecodeX)
ON_EN_CHANGE(IDC_DECODE_Y, OnChangeDecodeY)
ON_EN_CHANGE(IDC_VIEW_HEIGHT, OnChangeViewHeight)
ON_EN_CHANGE(IDC_VIEW_WIDTH, OnChangeViewWidth)
ON_EN_CHANGE(IDC_VIEW_X, OnChangeViewX)
ON_EN_CHANGE(IDC_VIEW_Y, OnChangeViewY)
ON_BN_CLICKED(IDC_ACCESSKEY, OnAccesskey)
ON_EN_CHANGE(IDC_DECODE_TIME, OnChangeDecodeTime)
ON_EN_CHANGE(IDC_KEY_VALUE, OnChangeKeyValue)
ON_BN_CLICKED(IDC_TRANS_FILL, OnTransFill)
ON_BN_CLICKED(IDC_TRANS_NOFILL, OnTransNofill)
ON_BN_CLICKED(IDC_ALTLINE, OnAltline)
ON_WM_HSCROLL()
ON_EN_CHANGE(IDC_GREEN_EDIT, OnChangeGreenEdit)
ON_EN_CHANGE(IDC_RED_EDIT, OnChangeRedEdit)
ON_EN_CHANGE(IDC_BLUE_EDIT, OnChangeBlueEdit)
ON_BN_CLICKED(IDC_DONT_DROP_FRAMES, OnDontDropFrames)
ON_BN_CLICKED(IDC_DONT_DROP_QUALITY, OnDontDropQuality)
ON_BN_CLICKED(IDC_VIEW_ORIGIN, OnViewOrigin)
ON_BN_CLICKED(IDC_FRAME_ORIGIN, OnFrameOrigin)
ON_BN_CLICKED(IDC_CUSTOM_COLORS, OnCustomColors)
ON_EN_UPDATE(IDC_BRIGHTNESS_TEXT, OnUpdateBSCText)
ON_WM_TIMER()
ON_EN_UPDATE(IDC_CONTRAST_TEXT, OnUpdateBSCText)
ON_EN_UPDATE(IDC_SATURATION_TEXT, OnUpdateBSCText)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIndeo diagnostics
#ifdef _DEBUG
void CIndeo::AssertValid() const
{
CFormView::AssertValid();
}
void CIndeo::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CIndeo message handlers
void CIndeo::OnInitialUpdate()
{
CIPlayDoc *pDoc;
CFormView::OnInitialUpdate();
// Initialize trackbars
m_tbBrightness.SetRange(-BCS_MAX, BCS_MAX);
m_tbBrightness.SetTicFreq(BCS_TICS);
m_tbContrast.SetRange(-BCS_MAX, BCS_MAX);
m_tbContrast.SetTicFreq(BCS_TICS);
m_tbSaturation.SetRange(-BCS_MAX, BCS_MAX);
m_tbSaturation.SetTicFreq(BCS_TICS);
// Is the movie an Indeo movie?
pDoc = (CIPlayDoc *)GetDocument();
if ( pDoc->IsIndeo() ){
EnableAllOptions();
pDoc->GetBCS(m_intBrightness, m_intContrast, m_intSaturation);
m_tbBrightness.SetPos(m_intBrightness);
m_tbContrast.SetPos(m_intContrast);
m_tbSaturation.SetPos(m_intSaturation);
pDoc->GetTransFillRGB(m_intRed, m_intGreen, m_intBlue);
m_dwInitTransRGBVal = RGB(m_intRed, m_intGreen, m_intBlue);
pDoc->GetDecodeTime(m_dwDecodeTime);
pDoc->GetDecodeRect(m_dwDecodeX, m_dwDecodeY, m_dwDecodeWidth,
m_dwDecodeHeight);
pDoc->GetViewRect(m_dwViewX, m_dwViewY, m_dwViewWidth, m_dwViewHeight);
pDoc->GetSequenceOptions(m_bAltLine, m_bDontDropFrames, m_bDontDropQuality, m_bTransFill, m_bAccessKey,
m_dwKeyValue);
// Update dialog controls from member variables
UpdateData(FALSE);
}
else {
if (pDoc->IsInitialized())
MessageBox("This is not an IV41 movie so Indeo options will not be available.",
"Not an Indeo Movie", MB_OK);
DisableAllOptions();
}
}
void CIndeo::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CIPlayDoc *pDoc;
pDoc = (CIPlayDoc *)GetDocument();
// Sequence options can only be changed when the movie
// is stopped (they can actually be changed any time, but
// will not take effect until the movie is stoppped and
// restarted).
if (pDoc->IsIndeo()) {
if (pDoc->m_State == pDoc->Stopped)
EnableSeqOptions();
else
DisableSeqOptions();
}
}
void CIndeo::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int origBrightness = m_intBrightness;
int origContrast = m_intContrast;
int origSaturation = m_intSaturation;
if ( ! pScrollBar){
CFormView::OnHScroll( nSBCode, nPos, pScrollBar );
return;
}
switch (nSBCode) {
case TB_LINEUP:
if (pScrollBar->m_hWnd == m_tbBrightness.m_hWnd) {
if (m_intBrightness > -128)
m_intBrightness--;
}
else if (pScrollBar->m_hWnd == m_tbContrast.m_hWnd) {
if (m_intContrast > -128)
m_intContrast--;
}
else if (pScrollBar->m_hWnd == m_tbSaturation.m_hWnd) {
if (m_intSaturation > -128)
m_intSaturation--;
}
break;
case TB_LINEDOWN:
if (pScrollBar->m_hWnd == m_tbBrightness.m_hWnd) {
if (m_intBrightness < 128)
m_intBrightness++;
}
else if (pScrollBar->m_hWnd == m_tbContrast.m_hWnd){
if (m_intContrast < 128)
m_intContrast++;
}
else if (pScrollBar->m_hWnd == m_tbSaturation.m_hWnd) {
if (m_intSaturation < 128)
m_intSaturation++;
}
break;
case TB_THUMBPOSITION:
case TB_THUMBTRACK:
if (pScrollBar->m_hWnd == m_tbBrightness.m_hWnd)
m_intBrightness = (int)nPos;
else if (pScrollBar->m_hWnd == m_tbContrast.m_hWnd)
m_intContrast = (int)nPos;
else if (pScrollBar->m_hWnd == m_tbSaturation.m_hWnd)
m_intSaturation = (int)nPos;
break;
case TB_PAGEUP:
case TB_PAGEDOWN:
if (pScrollBar->m_hWnd == m_tbBrightness.m_hWnd)
m_intBrightness = (int)m_tbBrightness.GetPos();
else if (pScrollBar->m_hWnd == m_tbContrast.m_hWnd)
m_intContrast = (int)m_tbContrast.GetPos();
else if (pScrollBar->m_hWnd == m_tbSaturation.m_hWnd)
m_intSaturation = (int)m_tbSaturation.GetPos();
break;
}
if ((origBrightness != m_intBrightness)
|| (origContrast != m_intContrast)
|| (origSaturation != m_intSaturation))
m_btnApply.EnableWindow(TRUE);
UpdateData(FALSE);
return;
}
void CIndeo::OnIndeoApply()
{
CIPlayDoc *pDoc;
CRect rd, rv;
LONG lScalTemp;
// Update member variables from dialog controls
UpdateData(TRUE);
pDoc = (CIPlayDoc *)GetDocument();
//Make sure the decode rect is within the video rect
if ( m_dwDecodeX + m_dwDecodeWidth > pDoc->VideoWidth() ) {
AfxMessageBox(IDS_DECODERECT_TOO_BIG, MB_ICONEXCLAMATION | MB_OK);
m_editDecodeWidth.SetFocus();
m_editDecodeWidth.SetSel((DWORD)((-1 << 16) & 0xFFFF0000));
return;
}
if ( m_dwDecodeY + m_dwDecodeHeight > pDoc->VideoHeight() ) {
AfxMessageBox(IDS_DECODERECT_TOO_BIG, MB_ICONEXCLAMATION | MB_OK);
m_editDecodeHeight.SetFocus();
m_editDecodeHeight.SetSel((DWORD)((-1 << 16) & 0xFFFF0000));
return;
}
// Make sure view rect is in decode rect and video rect; if not, return
rd = CRect(m_dwDecodeX,
m_dwDecodeY,
m_dwDecodeX + m_dwDecodeWidth,
m_dwDecodeY + m_dwDecodeHeight);
rv = CRect(m_dwViewX,
m_dwViewY,
m_dwViewX + m_dwViewWidth,
m_dwViewY + m_dwViewHeight);
if ( rv != CRect(0,0,0,0) ) {
if ( rd == CRect(0,0,0,0) ) {
if ( (m_dwViewX + m_dwViewWidth > pDoc->VideoWidth()) ||
(m_dwViewY + m_dwViewHeight > pDoc->VideoHeight()) ) {
AfxMessageBox(IDS_VIEWRECT_TOO_BIG, MB_ICONEXCLAMATION | MB_OK);
m_editViewX.SetFocus();
m_editViewX.SetSel((DWORD)((-1 << 16) & 0xFFFF0000));
return;
}
}
/*else if ( rd & rv != rv ) {
AfxMessageBox(IDS_VIEWRECT_TOO_BIG, MB_ICONEXCLAMATION | MB_OK);
m_editViewX.SetFocus();
m_editViewX.SetSel((DWORD)((-1 << 16) & 0xFFFF0000));
return;
} */
}
pDoc->SetTransFillRGB( RGB(m_intBlue, m_intGreen, m_intRed) );
pDoc->SetDecodeTime(m_dwDecodeTime);
pDoc->SetDecodeRect(m_dwDecodeX, m_dwDecodeY, m_dwDecodeWidth,
m_dwDecodeHeight);
pDoc->SetViewRect(m_bViewOrigin, m_dwViewX, m_dwViewY, m_dwViewWidth, m_dwViewHeight);
pDoc->SetBCS(m_intBrightness, m_intContrast, m_intSaturation);
if (!pDoc->CanStop()) // movie is Stopped
{
if (m_bDontDropFrames && ! m_bDontDropQuality)
lScalTemp = SC_DONT_DROP_FRAMES;
else if (m_bDontDropQuality && ! m_bDontDropFrames)
lScalTemp = SC_DONT_DROP_QUALITY;
else if (m_bDontDropFrames && m_bDontDropQuality)
lScalTemp = SC_OFF;
else
lScalTemp = SC_ON;
pDoc->SetSequenceOptions(m_bAltLine, lScalTemp, m_bTransFill, m_bAccessKey,
m_dwKeyValue);
}
// Disable Apply button until there is something to apply
m_btnApply.EnableWindow(FALSE);
}
void CIndeo::OnIndeoDefaults()
{
CIPlayDoc *pDoc;
pDoc = (CIPlayDoc *)GetDocument();
pDoc->GetFrameDefaults(m_intBrightness, m_intContrast, m_intSaturation, m_dwDecodeTime, m_dwDecodeX,
m_dwDecodeY, m_dwDecodeWidth, m_dwDecodeHeight, m_dwViewX, m_dwViewY, m_dwViewWidth,
m_dwViewHeight);
//Get the Initial color of the Transparency Fill Color
m_intRed = (m_dwInitTransRGBVal&0x000000FF);
m_intGreen = (m_dwInitTransRGBVal&0x0000FF00)>>8;
m_intBlue = (m_dwInitTransRGBVal&0x00FF0000)>>16;
m_bViewOrigin = FALSE;
if (!pDoc->CanStop()) // movie is Stopped
pDoc->GetSeqDefaults(m_bAltLine, m_bDontDropFrames, m_bDontDropQuality, m_bTransFill, m_bAccessKey,
m_dwKeyValue);
// Update trackbars
pDoc->SetBCS(m_intBrightness, m_intContrast, m_intSaturation);
m_tbBrightness.SetPos(m_intBrightness);
m_tbContrast.SetPos(m_intContrast);
m_tbSaturation.SetPos(m_intSaturation);
// Update visiblity of Access Key value
if (m_bAccessKey)
m_editKeyValue.ShowWindow(SW_SHOW);
else
m_editKeyValue.ShowWindow(SW_HIDE);
// Update dialog controls from member variables
UpdateData(FALSE);
OnIndeoApply();
}
void CIndeo::OnAccesskey()
{
UpdateData(TRUE);
if (m_bAccessKey) {
m_editKeyValue.ShowWindow(SW_SHOW);
m_editKeyValue.SetFocus();
m_editKeyValue.SetSel((DWORD)((-1 << 16) & 0xFFFF0000));
}
else
m_editKeyValue.ShowWindow(SW_HIDE);
m_btnApply.EnableWindow(TRUE);
}
/////////////////////////////////////////////////////////////////////////////
// CIndeo helper functions
void CIndeo::EnableAllOptions()
{
m_editBrightness.EnableWindow(TRUE);
m_editContrast.EnableWindow(TRUE);
m_editSaturation.EnableWindow(TRUE);
m_tbBrightness.EnableWindow(TRUE);
m_tbContrast.EnableWindow(TRUE);
m_tbSaturation.EnableWindow(TRUE);
m_editDecodeTime.EnableWindow(TRUE);
m_editDecodeX.EnableWindow(TRUE);
m_editDecodeY.EnableWindow(TRUE);
m_editDecodeHeight.EnableWindow(TRUE);
m_editDecodeWidth.EnableWindow(TRUE);
m_editViewX.EnableWindow(TRUE);
m_editViewY.EnableWindow(TRUE);
m_editViewHeight.EnableWindow(TRUE);
m_editViewWidth.EnableWindow(TRUE);
m_editTransFillRed.EnableWindow(TRUE);
m_editTransFillGreen.EnableWindow(TRUE);
m_editTransFillBlue.EnableWindow(TRUE);
m_btnCustomColors.EnableWindow(TRUE);
m_radFrameOrigin.EnableWindow(TRUE);
m_radViewOrigin.EnableWindow(TRUE);
m_btnDefaults.EnableWindow(TRUE);
// Apply button will not be enabled until something changes
EnableSeqOptions();
}
void CIndeo::DisableAllOptions()
{
m_editBrightness.EnableWindow(FALSE);
m_editContrast.EnableWindow(FALSE);
m_editSaturation.EnableWindow(FALSE);
m_tbBrightness.EnableWindow(FALSE);
m_tbContrast.EnableWindow(FALSE);
m_tbSaturation.EnableWindow(FALSE);
m_editDecodeTime.EnableWindow(FALSE);
m_editDecodeX.EnableWindow(FALSE);
m_editDecodeY.EnableWindow(FALSE);
m_editDecodeHeight.EnableWindow(FALSE);
m_editDecodeWidth.EnableWindow(FALSE);
m_editViewX.EnableWindow(FALSE);
m_editViewY.EnableWindow(FALSE);
m_editViewHeight.EnableWindow(FALSE);
m_editViewWidth.EnableWindow(FALSE);
m_editTransFillRed.EnableWindow(FALSE);
m_editTransFillGreen.EnableWindow(FALSE);
m_editTransFillBlue.EnableWindow(FALSE);
m_btnCustomColors.EnableWindow(FALSE);
m_radFrameOrigin.EnableWindow(FALSE);
m_radViewOrigin.EnableWindow(FALSE);
m_btnDefaults.EnableWindow(FALSE);
m_btnApply.EnableWindow(FALSE);
DisableSeqOptions();
}
void CIndeo::EnableSeqOptions()
{
m_checkAltLine.EnableWindow(TRUE);
m_checkDontDropFrames.EnableWindow(TRUE);
m_checkDontDropQuality.EnableWindow(TRUE);
m_checkAccessKey.EnableWindow(TRUE);
m_editKeyValue.EnableWindow(TRUE);
m_radTransFill.EnableWindow(TRUE);
m_radTransNoFill.EnableWindow(TRUE);
if (m_bAccessKey)
m_editKeyValue.ShowWindow(SW_SHOW);
else
m_editKeyValue.ShowWindow(SW_HIDE);
}
void CIndeo::DisableSeqOptions()
{
m_checkAltLine.EnableWindow(FALSE);
m_checkDontDropFrames.EnableWindow(FALSE);
m_checkDontDropQuality.EnableWindow(FALSE);
m_checkAccessKey.EnableWindow(FALSE);
m_editKeyValue.EnableWindow(FALSE);
m_radTransFill.EnableWindow(FALSE);
m_radTransNoFill.EnableWindow(FALSE);
m_editKeyValue.EnableWindow(FALSE);
if (m_bAccessKey)
m_editKeyValue.ShowWindow(SW_SHOW);
else
m_editKeyValue.ShowWindow(SW_HIDE);
}
/////////////////////////////////////////////////////////////////////
// The following message handlers simply enable the Apply button when
// something changes.
void CIndeo::OnChangeDecodeHeight()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeDecodeWidth()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeDecodeX()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeDecodeY()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeViewHeight()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeViewWidth()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeViewX()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeViewY()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeDecodeTime()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeKeyValue()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnUpdateBSCText()
{
UpdateData(TRUE);
m_btnApply.EnableWindow(TRUE);
m_tbBrightness.SetPos(m_intBrightness);
m_tbContrast.SetPos(m_intContrast);
m_tbSaturation.SetPos(m_intSaturation);
}
void CIndeo::OnTransFill()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnTransNofill()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnAltline()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeRedEdit()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeGreenEdit()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnChangeBlueEdit()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnDontDropFrames()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnDontDropQuality()
{
m_btnApply.EnableWindow(TRUE);
}
void CIndeo::OnViewOrigin()
{
m_btnApply.EnableWindow(TRUE);
OnIndeoApply();
}
void CIndeo::OnFrameOrigin()
{
m_btnApply.EnableWindow(TRUE);
OnIndeoApply();
}
void CIndeo::OnCustomColors()
{
CHOOSECOLOR TransCC; // common dialog box structure
TransCC.lStructSize = sizeof(CHOOSECOLOR);
TransCC.hwndOwner = NULL;
TransCC.lpCustColors = (LPDWORD) m_clrefUserCustClrs;
TransCC.rgbResult = RGB(m_intRed, m_intGreen, m_intBlue);
TransCC.Flags = CC_RGBINIT | CC_FULLOPEN;
if (ChooseColor(&TransCC)) // pointer to structure with initialization data
{
SetDlgItemInt( IDC_RED_EDIT, (TransCC.rgbResult&0x000000FF), FALSE );
SetDlgItemInt( IDC_GREEN_EDIT, (TransCC.rgbResult&0x0000FF00)>>8, FALSE );
SetDlgItemInt( IDC_BLUE_EDIT, (TransCC.rgbResult&0x00FF0000)>>16, FALSE );
OnIndeoApply();
}
}