[Deinterlace-checkins] SF.net SVN: deinterlace:[4579] trunk/DScaler
Brought to you by:
adcockj,
dschmelzer
From: <ad...@us...> - 2009-04-27 11:05:42
|
Revision: 4579 http://deinterlace.svn.sourceforge.net/deinterlace/?rev=4579&view=rev Author: adcockj Date: 2009-04-27 11:05:31 +0000 (Mon, 27 Apr 2009) Log Message: ----------- Remove all uses of MFC, changed code to use basic SDK Modified Paths: -------------- trunk/DScaler/DScaler/AspectFilters.cpp trunk/DScaler/DScaler/AspectGUI.cpp trunk/DScaler/DScaler/AspectRatio.h trunk/DScaler/DScaler/AutoCriticalSection.cpp trunk/DScaler/DScaler/BT848Source.cpp trunk/DScaler/DScaler/BT848Source.h trunk/DScaler/DScaler/Bitmap.cpp trunk/DScaler/DScaler/BitmapAsButton.cpp trunk/DScaler/DScaler/CX2388xSource.h trunk/DScaler/DScaler/CX2388xSource_UI.cpp trunk/DScaler/DScaler/Calibration.cpp trunk/DScaler/DScaler/Calibration.h trunk/DScaler/DScaler/Channels.cpp trunk/DScaler/DScaler/Credits.cpp trunk/DScaler/DScaler/Credits.h trunk/DScaler/DScaler/D3D9Output.cpp trunk/DScaler/DScaler/D3D9Output.h trunk/DScaler/DScaler/DScaler.cpp trunk/DScaler/DScaler/DScaler.h trunk/DScaler/DScaler/DScaler2005.vcproj trunk/DScaler/DScaler/DScalerApp.cpp trunk/DScaler/DScaler/DScalerApp.h trunk/DScaler/DScaler/DScalerUtils.h trunk/DScaler/DScaler/DebugLog.cpp trunk/DScaler/DScaler/DebugLog.h trunk/DScaler/DScaler/EPG.cpp trunk/DScaler/DScaler/EPG.h trunk/DScaler/DScaler/ErrorBox.cpp trunk/DScaler/DScaler/ErrorBox.h trunk/DScaler/DScaler/FD_50Hz.cpp trunk/DScaler/DScaler/FD_50Hz.h trunk/DScaler/DScaler/FD_60Hz.cpp trunk/DScaler/DScaler/FD_60Hz.h trunk/DScaler/DScaler/FD_Common.cpp trunk/DScaler/DScaler/FD_Common.h trunk/DScaler/DScaler/FD_Prog.cpp trunk/DScaler/DScaler/FD_Prog.h trunk/DScaler/DScaler/FieldTiming.cpp trunk/DScaler/DScaler/FieldTiming.h trunk/DScaler/DScaler/GradientStatic.cpp trunk/DScaler/DScaler/HSListBox.cpp trunk/DScaler/DScaler/HardwareMemory.cpp trunk/DScaler/DScaler/I2CBus.cpp trunk/DScaler/DScaler/I2CBusForLineInterface.cpp trunk/DScaler/DScaler/I2CDevice.cpp trunk/DScaler/DScaler/MSP34x0AudioDecoder.cpp trunk/DScaler/DScaler/MSP34xx_revA.cpp trunk/DScaler/DScaler/MSP34xx_revG.cpp trunk/DScaler/DScaler/MixerDev.cpp trunk/DScaler/DScaler/MultiMon.cpp trunk/DScaler/DScaler/OSD.cpp trunk/DScaler/DScaler/OSD.h trunk/DScaler/DScaler/OpenDlg.cpp trunk/DScaler/DScaler/OpenDlg.h trunk/DScaler/DScaler/OutReso.cpp trunk/DScaler/DScaler/OutThreads.cpp trunk/DScaler/DScaler/OutThreads.h trunk/DScaler/DScaler/OverlayOutput.cpp trunk/DScaler/DScaler/OverlayOutput.h trunk/DScaler/DScaler/ParsingCommon.cpp trunk/DScaler/DScaler/ProgramList.cpp trunk/DScaler/DScaler/ProgramList.h trunk/DScaler/DScaler/Providers.cpp trunk/DScaler/DScaler/SAA7134Card.cpp trunk/DScaler/DScaler/SAA7134Card_Audio.cpp trunk/DScaler/DScaler/SAA7134I2CBus.cpp trunk/DScaler/DScaler/SAA7134Provider.cpp trunk/DScaler/DScaler/SAA7134Source.cpp trunk/DScaler/DScaler/SAA7134Source.h trunk/DScaler/DScaler/SAA7134Source_UI.cpp trunk/DScaler/DScaler/ScheduledRecording.cpp trunk/DScaler/DScaler/ScheduledRecording.h trunk/DScaler/DScaler/Setting.cpp trunk/DScaler/DScaler/Setting.h trunk/DScaler/DScaler/Settings.h trunk/DScaler/DScaler/SettingsMaster.cpp trunk/DScaler/DScaler/SettingsMaster.h trunk/DScaler/DScaler/SettingsPerChannel.cpp trunk/DScaler/DScaler/Source.h trunk/DScaler/DScaler/StillSource.cpp trunk/DScaler/DScaler/StillSource.h trunk/DScaler/DScaler/TDA9873AudioDecoder.cpp trunk/DScaler/DScaler/TSCompressionDlg.cpp trunk/DScaler/DScaler/TSCompressionDlg.h trunk/DScaler/DScaler/TSOptionsDlg.cpp trunk/DScaler/DScaler/TSOptionsDlg.h trunk/DScaler/DScaler/TimeShift.cpp trunk/DScaler/DScaler/TimeShift.h trunk/DScaler/DScaler/ToolbarControl.cpp trunk/DScaler/DScaler/ToolbarWindow.cpp trunk/DScaler/DScaler/Toolbars.cpp trunk/DScaler/DScaler/TreeSettingsDlg.cpp trunk/DScaler/DScaler/TreeSettingsDlg.h trunk/DScaler/DScaler/TreeSettingsGeneric.cpp trunk/DScaler/DScaler/TreeSettingsGeneric.h trunk/DScaler/DScaler/TreeSettingsOleProperties.cpp trunk/DScaler/DScaler/TreeSettingsOleProperties.h trunk/DScaler/DScaler/TreeSettingsPage.cpp trunk/DScaler/DScaler/TreeSettingsPage.h trunk/DScaler/DScaler/VBI_VPSdecode.cpp trunk/DScaler/DScaler/VBI_VideoText.H trunk/DScaler/DScaler/VBI_VideoText.cpp trunk/DScaler/DScaler/VTCommon.cpp trunk/DScaler/DScaler/VTDecoder.cpp trunk/DScaler/DScaler/WindowBorder.cpp trunk/DScaler/DScaler/dshowsource/BaseCrossbar.cpp trunk/DScaler/DScaler/dshowsource/CaptureDevice.cpp trunk/DScaler/DScaler/dshowsource/DSAudioDevicePage.cpp trunk/DScaler/DScaler/dshowsource/DSAudioDevicePage.h trunk/DScaler/DScaler/dshowsource/DSFileSource.cpp trunk/DScaler/DScaler/dshowsource/DSGraph.cpp trunk/DScaler/DScaler/dshowsource/DSGraph.h trunk/DScaler/DScaler/dshowsource/DSObject.cpp trunk/DScaler/DScaler/dshowsource/DSProvider.cpp trunk/DScaler/DScaler/dshowsource/DSSource.cpp trunk/DScaler/DScaler/dshowsource/DSSourceBase.cpp trunk/DScaler/DScaler/dshowsource/DSSourceBase.h trunk/DScaler/DScaler/dshowsource/DSTVTuner.cpp trunk/DScaler/DScaler/dshowsource/DSVideoFormatPage.cpp trunk/DScaler/DScaler/dshowsource/DSVideoFormatPage.h trunk/DScaler/DScaler/dshowsource/DShowAudioControls.cpp trunk/DScaler/DScaler/dshowsource/DShowBaseSource.cpp trunk/DScaler/DScaler/dshowsource/DShowDirectTuner.cpp trunk/DScaler/DScaler/dshowsource/DShowFileSource.cpp trunk/DScaler/DScaler/dshowsource/DShowGenericAudioControls.cpp trunk/DScaler/DScaler/dshowsource/DShowSeeking.cpp trunk/DScaler/DScaler/dshowsource/DevEnum.cpp trunk/DScaler/DScaler/dshowsource/DevEnum.h trunk/DScaler/DScaler/dshowsource/PinEnum.cpp trunk/DScaler/DScaler/dshowsource/PinEnum.h trunk/DScaler/DScaler/dshowsource/SingleCrossbar.cpp trunk/DScaler/DScaler/dshowsource/debug.cpp trunk/DScaler/DScaler/dshowsource/exception.cpp trunk/DScaler/DScaler/dshowsource/exception.h trunk/DScaler/DScaler/events.cpp trunk/DScaler/DScaler/stdafx.h trunk/DScaler/DScaler/tinyxml.cpp trunk/DScaler/DScalerRes/DScalerRes.rc trunk/DScaler/RegSpy/RegSpy2005.vcproj trunk/DScaler/RegSpy/StdAfx.h trunk/DScaler/Tools/ParseCardIni/ParsingCommon.cpp trunk/DScaler/Tools/TDA9887Tester/I2CBus.cpp trunk/DScaler/Tools/TDA9887Tester/I2CBusForLineInterface.cpp trunk/DScaler/Tools/TDA9887Tester/SAA7134I2CBus.cpp Added Paths: ----------- trunk/DScaler/DScaler/DSDialog.cpp trunk/DScaler/DScaler/DSDialog.h trunk/DScaler/DScaler/DScalerUtils.cpp Modified: trunk/DScaler/DScaler/AspectFilters.cpp =================================================================== --- trunk/DScaler/DScaler/AspectFilters.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/AspectFilters.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -48,7 +48,7 @@ m_Amplitude(amplitude), m_Offset(offset) { - time(&m_StartTime); + _time64(&m_StartTime); } CPeriodBouncer::CPeriodBouncer(time_t startTime, time_t period, double amplitude, double offset) : @@ -61,7 +61,7 @@ double CPeriodBouncer::position() { - double phase = fmod((((double)((time(NULL)-m_StartTime)%m_Period))/m_Period+0.25),1); + double phase = fmod((((double)((_time64(NULL)-m_StartTime)%m_Period))/m_Period+0.25),1); // We go from 0% to 100% over m_Period - but start 25% of the way into the phase. double val = phase*m_Amplitude*2.0; if (val > m_Amplitude) @@ -179,7 +179,7 @@ { if (AspectSettings.BounceStartTime == 0) { - time(&AspectSettings.BounceStartTime); + _time64(&AspectSettings.BounceStartTime); } m_pXOrbitBouncer = new CPeriodBouncer(AspectSettings.BounceStartTime,OrbitPeriodX,OrbitSize,-OrbitSize/2.0); m_pYOrbitBouncer = new CPeriodBouncer(AspectSettings.BounceStartTime,OrbitPeriodY,OrbitSize,-OrbitSize/2.0); @@ -205,7 +205,7 @@ { if (AspectSettings.BounceStartTime == 0) { - time(&AspectSettings.BounceStartTime); + _time64(&AspectSettings.BounceStartTime); } m_pBouncer = new CPeriodBouncer( AspectSettings.BounceStartTime, period, Modified: trunk/DScaler/DScaler/AspectGUI.cpp =================================================================== --- trunk/DScaler/DScaler/AspectGUI.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/AspectGUI.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -1324,9 +1324,3 @@ Bounce_OnChange(AspectSettings.BounceEnabled); Orbit_OnChange(AspectSettings.OrbitEnabled); } - -SmartPtr<CTreeSettingsGeneric> Aspect_GetTreeSettingsPage() -{ - SmartPtr<CSettingsHolder> Holder(SettingsMaster->FindMsgHolder(WM_ASPECT_GETVALUE)); - return new CTreeSettingsGeneric("Aspect Ratio Settings", Holder); -} \ No newline at end of file Modified: trunk/DScaler/DScaler/AspectRatio.h =================================================================== --- trunk/DScaler/DScaler/AspectRatio.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/AspectRatio.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -37,7 +37,6 @@ // Get Hold of the AspectRatio.c file settings SmartPtr<CSettingsHolder> Aspect_GetSettingsHolder(); void Aspect_FinalSetup(); -SmartPtr<CTreeSettingsGeneric> Aspect_GetTreeSettingsPage(); #define MAX_RATIO_STATISTICS 20 Modified: trunk/DScaler/DScaler/AutoCriticalSection.cpp =================================================================== --- trunk/DScaler/DScaler/AutoCriticalSection.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/AutoCriticalSection.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -24,17 +24,10 @@ #include "dscaler.h" #include "AutoCriticalSection.h" -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - - CAutoCriticalSection::CAutoCriticalSection(CRITICAL_SECTION &pCriticalSection) :m_pCriticalSection(&pCriticalSection) { - ASSERT(m_pCriticalSection!=NULL); + _ASSERTE(m_pCriticalSection!=NULL); EnterCriticalSection(m_pCriticalSection); } Modified: trunk/DScaler/DScaler/BT848Source.cpp =================================================================== --- trunk/DScaler/DScaler/BT848Source.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/BT848Source.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -2038,8 +2038,7 @@ return m_pBT848Card->GetTuner(); } - -CTreeSettingsPage* CBT848Source::GetTreeSettingsPage() +SmartPtr<CSettingsHolder> CBT848Source::GetSettingsPage() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); @@ -2098,7 +2097,7 @@ Holder->AddSetting(m_AD9882CoastPol); } - return new CTreeSettingsGeneric("BT8x8 Advanced",Holder); + return Holder; } #endif // WANT_BT8X8_SUPPORT \ No newline at end of file Modified: trunk/DScaler/DScaler/BT848Source.h =================================================================== --- trunk/DScaler/DScaler/BT848Source.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/BT848Source.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -102,7 +102,7 @@ SmartPtr<ITuner> GetTuner(); - CTreeSettingsPage* GetTreeSettingsPage(); + SmartPtr<CSettingsHolder> GetSettingsPage(); void SetSourceAsCurrent(); Modified: trunk/DScaler/DScaler/Bitmap.cpp =================================================================== --- trunk/DScaler/DScaler/Bitmap.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Bitmap.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -32,12 +32,6 @@ using namespace std; -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - //////////////////////////////////////////////////////////////////////////////// // Bitmap State //////////////////////////////////////////////////////////////////////////////// Modified: trunk/DScaler/DScaler/BitmapAsButton.cpp =================================================================== --- trunk/DScaler/DScaler/BitmapAsButton.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/BitmapAsButton.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -33,13 +33,6 @@ using namespace std; -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - - //////////////////////////////////////////////////////////////////////////////// // Bitmap as button //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// Modified: trunk/DScaler/DScaler/CX2388xSource.h =================================================================== --- trunk/DScaler/DScaler/CX2388xSource.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/CX2388xSource.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -81,7 +81,7 @@ void UpdateMenu() {return;}; void SetMenu(HMENU hMenu); - CTreeSettingsPage* GetTreeSettingsPage(); + SmartPtr<CSettingsHolder> GetSettingsPage(); void HandleTimerMessages(int TimerId); BOOL SetTunerFrequency(long FrequencyId, eVideoFormat VideoFormat); Modified: trunk/DScaler/DScaler/CX2388xSource_UI.cpp =================================================================== --- trunk/DScaler/DScaler/CX2388xSource_UI.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/CX2388xSource_UI.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -621,7 +621,7 @@ } } -CTreeSettingsPage* CCX2388xSource::GetTreeSettingsPage() +SmartPtr<CSettingsHolder> CCX2388xSource::GetSettingsPage() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); @@ -663,7 +663,7 @@ Holder->AddSetting(m_VerticalSyncDetection); } - return new CTreeSettingsGeneric("CX2388x Advanced", Holder); + return Holder; } void CCX2388xSource::InitializeUI() Modified: trunk/DScaler/DScaler/Calibration.cpp =================================================================== --- trunk/DScaler/DScaler/Calibration.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Calibration.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -1599,9 +1599,3 @@ return NULL; } } - -SmartPtr<CTreeSettingsGeneric> Calibr_GetTreeSettingsPage() -{ - SmartPtr<CSettingsHolder> Holder(SettingsMaster->FindMsgHolder(WM_CALIBR_GETVALUE)); - return new CTreeSettingsGeneric("Card Calibration Settings", Holder); -} Modified: trunk/DScaler/DScaler/Calibration.h =================================================================== --- trunk/DScaler/DScaler/Calibration.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Calibration.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -146,7 +146,6 @@ SETTING* Calibr_GetSetting(CALIBR_SETTING Setting); -SmartPtr<CTreeSettingsGeneric> Calibr_GetTreeSettingsPage(); #endif Modified: trunk/DScaler/DScaler/Channels.cpp =================================================================== --- trunk/DScaler/DScaler/Channels.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Channels.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -54,18 +54,12 @@ LPCSTR CChannel::GetName() const { - static char sbuf[256]; - strncpy(sbuf, m_Name.c_str(), 255); - sbuf[255] = '\0'; - return sbuf; + return m_Name.c_str(); } LPCSTR CChannel::GetEPGName() const { - static char sbuf[256]; - strncpy(sbuf, m_EPGName.c_str(), 255); - sbuf[255] = '\0'; - return sbuf; + return m_EPGName.c_str(); } DWORD CChannel::GetFrequency() const @@ -333,7 +327,7 @@ BOOL CUserChannels::ReadASCIIImpl(FILE* SettingFile) { - ASSERT(NULL != SettingFile); + _ASSERTE(NULL != SettingFile); char sbuf[256]; DWORD Frequency = -1; @@ -469,7 +463,7 @@ BOOL CUserChannels::WriteASCIIImpl(FILE* SettingFile) const { - ASSERT(NULL != SettingFile); + _ASSERTE(NULL != SettingFile); BOOL bSuccess = FALSE; @@ -578,8 +572,8 @@ const CCountryChannels* CCountryList::GetChannels(int index) const { - ASSERT(index >= 0); - ASSERT(index < m_Countries.size()); + _ASSERTE(index >= 0); + _ASSERTE(index < m_Countries.size()); return m_Countries[index]; } @@ -617,13 +611,13 @@ BOOL CCountryList::ReadASCIIImpl(FILE* CountryFile) { - ASSERT(NULL != CountryFile); + _ASSERTE(NULL != CountryFile); char line[128]; char* Pos; char* Pos1; char* eol_ptr; - CString channelName; + string channelName; SmartPtr<CCountryChannels> NewCountry; eVideoFormat Format = VIDEOFORMAT_LAST_TV; int channelCounter = 0; @@ -637,10 +631,8 @@ } if(eol_ptr != NULL) { - channelName.ReleaseBuffer(); + channelName.clear(); channelName = eol_ptr; - //_snprintf(Name, 254,"%s", eol_ptr); - //Name[255] = '\0'; *eol_ptr = '\0'; } if(eol_ptr == line) @@ -693,19 +685,18 @@ DWORD freq = (DWORD)atol(Pos); if (freq > 0) { - channelName.TrimLeft(); - channelName.TrimRight(); + Trim(channelName); //eliminate the trailing ";" in name if it exists, //otherwise pickup a default name SmartPtr<CChannel> NewChannel; - if (channelName.GetLength() < 2) + if (channelName.length() < 2) { - string ChannelName(MakeString() << "Channel " << channelNumber); - NewChannel = new CChannel(ChannelName.c_str(), freq, channelNumber, Format, FALSE); + channelName = MakeString() << "Channel " << channelNumber; + NewChannel = new CChannel(channelName.c_str(), freq, channelNumber, Format, FALSE); } else { - NewChannel = new CChannel(channelName.Right(channelName.GetLength() - 2), freq, channelNumber, Format, FALSE); + NewChannel = new CChannel(channelName.c_str(), freq, channelNumber, Format, FALSE); } NewCountry->AddChannel(NewChannel); } Modified: trunk/DScaler/DScaler/Credits.cpp =================================================================== --- trunk/DScaler/DScaler/Credits.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Credits.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -36,14 +36,14 @@ // dialog which was causing annoying flicker. #include "stdafx.h" -#include "resource.h" -#include "credits.h" +#include "Credits.h" +#include "..\DScalerRes\resource.h" +#include "DScaler.h" -#ifdef _DEBUG -#undef THIS_FILE -static char BASED_CODE THIS_FILE[] = __FILE__; -#endif +using namespace std; +#define DISPLAY_TIMER_ID 150 // timer id + #define SCROLLAMOUNT -1 #define DISPLAY_SLOW 70 #define DISPLAY_MEDIUM 40 @@ -201,80 +201,96 @@ // CCredits dialog -CCredits::CCredits(CWnd* pParent /*=NULL*/) - : CDialog(CCredits::IDD, pParent) +CCredits::CCredits() : CDSDialog(MAKEINTRESOURCE(IDD_CREDITS)) { - //{{AFX_DATA_INIT(CCredits) - //}}AFX_DATA_INIT } - -void CCredits::DoDataExchange(CDataExchange* pDX) +BOOL CCredits::DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { - CDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CCredits) - //}}AFX_DATA_MAP + switch(message) + { + HANDLE_MSG(hDlg, WM_INITDIALOG, OnInitDialog); + HANDLE_MSG(hDlg, WM_COMMAND, OnCommand); + HANDLE_MSG(hDlg, WM_TIMER, OnTimer); + default: + return FALSE; + } } - -BEGIN_MESSAGE_MAP(CCredits, CDialog) - //{{AFX_MSG_MAP(CCredits) - ON_WM_PAINT() - ON_WM_TIMER() - ON_WM_DESTROY() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - - -///////////////////////////////////////////////////////////////////////////// -// CCredits message handlers - -void CCredits::OnOK() +void CCredits::OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify) { - ::KillTimer(m_hWnd, DISPLAY_TIMER_ID); + switch(id) + { + case IDCANCEL: + case IDOK: + // clean up after ourselves + KillTimer(hDlg, DISPLAY_TIMER_ID); + if (m_bProcessingBitmap) + { + SelectObject(m_dcMem, m_BmpOld); + DeleteObject(m_BmpWork); + } + DeleteDC(m_dcMem); + RemoveProp(m_pDisplayFrame, "DSSubClass"); + EndDialog(hDlg, id); + break; + } +} - CDialog::OnOK(); +BOOL CALLBACK CCredits::StaticWndProc(HWND hStatic, UINT message, WPARAM wParam, LPARAM lParam) +{ + CCredits* myDialogObject = (CCredits*)GetProp(hStatic, "DSSubClass"); + if(myDialogObject) + { + if(message != WM_PAINT) + { + return myDialogObject->m_OldWndProc(hStatic, message, wParam, lParam); + } + else + { + myDialogObject->OnPaint(hStatic); + } + } + return FALSE; } + //************************************************************************ // InitDialog // // Setup the display rect and start the timer. //************************************************************************ -BOOL CCredits::OnInitDialog() +BOOL CCredits::OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam) { - CDialog::OnInitDialog(); - BOOL bRet; UINT nRet; - nCurrentFontHeight = NORMAL_TEXT_HEIGHT; + m_nCurrentFontHeight = NORMAL_TEXT_HEIGHT; - CClientDC dc(this); - bRet = m_dcMem.CreateCompatibleDC(&dc); - - m_bProcessingBitmap=FALSE; - nArrIndex=0; - nCounter=1; - nClip=0; + m_nArrIndex = 0; + m_nCounter = 1; + m_nClip=0; m_bFirstTime=TRUE; - m_bDrawText=FALSE; - m_hBmpOld = 0; + m_BmpOld = 0; - m_pDisplayFrame=(CWnd*)GetDlgItem(IDC_CREDITS_STATIC); + m_pDisplayFrame = GetDlgItem(hDlg, IDC_CREDITS_STATIC); + m_dcMem = CreateCompatibleDC(GetDC(m_pDisplayFrame)); + // If you assert here, you did not assign your static display control // the IDC_ value that was used in the GetDlgItem(...). This is the // control that will display the credits. _ASSERTE(m_pDisplayFrame); - m_pDisplayFrame->GetClientRect(&m_ScrollRect); + GetClientRect(m_pDisplayFrame, &m_ScrollRect); - - nRet = SetTimer(DISPLAY_TIMER_ID,DISPLAY_SPEED,NULL); + nRet = SetTimer(hDlg, DISPLAY_TIMER_ID, DISPLAY_SPEED, NULL); _ASSERTE(nRet != 0); + SetProp(m_pDisplayFrame, "DSSubClass", (HANDLE)this); + m_OldWndProc = (WNDPROC)SetWindowLongPtr (m_pDisplayFrame, GWLP_WNDPROC, (LONG_PTR)StaticWndProc); + return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } @@ -287,241 +303,178 @@ // Invalidate and UpdateWindow to invoke the OnPaint which will paint // the contents of the newly updated work string. //************************************************************************ -void CCredits::OnTimer(UINT nIDEvent) +void CCredits::OnTimer(HWND hDlg, UINT nIDEvent) { - if (nIDEvent != DISPLAY_TIMER_ID) - { - CDialog::OnTimer(nIDEvent); - return; - } - if (!m_bProcessingBitmap) - if (nCounter++ % nCurrentFontHeight == 0) // every x timer events, show new line + { + if (m_nCounter++ % m_nCurrentFontHeight == 0) // every x timer events, show new line { - nCounter=1; - m_szWork = ArrCredits[nArrIndex++]; + m_nCounter=1; + m_szWork = ArrCredits[m_nArrIndex++]; - if (nArrIndex > ARRAYCOUNT-1) - nArrIndex=0; - nClip = 0; - m_bDrawText=TRUE; + if (m_nArrIndex > ARRAYCOUNT-1) + { + m_nArrIndex = 0; + } + m_nClip = 0; } + } - m_pDisplayFrame->ScrollWindow(0,SCROLLAMOUNT,&m_ScrollRect,&m_ScrollRect); - nClip = nClip + abs(SCROLLAMOUNT); + ScrollWindow(m_pDisplayFrame, 0,SCROLLAMOUNT,&m_ScrollRect,&m_ScrollRect); + m_nClip = m_nClip + abs(SCROLLAMOUNT); - CRect r; - CWnd* pWnd = GetDlgItem(IDC_CREDITS_STATIC); - ASSERT_VALID(pWnd); - pWnd->GetClientRect(&r); - pWnd->ClientToScreen(r); - ScreenToClient(&r); - InvalidateRect(r,FALSE); // FALSE does not erase background - - CDialog::OnTimer(nIDEvent); + InvalidateRect(m_pDisplayFrame, NULL, FALSE); // FALSE does not erase background } +HFONT CreateCreditsFont(int Height, BOOL Bold, BOOL Underline) +{ + return CreateFont(Height, 0, 0, 0, + Bold?FW_BOLD:FW_THIN, + FALSE, Underline, 0, + ANSI_CHARSET, + OUT_DEFAULT_PRECIS, + CLIP_DEFAULT_PRECIS, + PROOF_QUALITY, + VARIABLE_PITCH | 0x04 | FF_DONTCARE, + "Arial"); +} + //************************************************************************ // OnPaint // -// Send the newly updated work string to the display rect. +// Send the newly updated work string to the display rect. //************************************************************************ -void CCredits::OnPaint() +void CCredits::OnPaint(HWND hDlg) { - CPaintDC dc(this); // device context for painting - PAINTSTRUCT ps; - CDC* pDc = m_pDisplayFrame->BeginPaint(&ps); + HDC Dc = BeginPaint(hDlg, &ps); - pDc->SetBkMode(TRANSPARENT); + SetBkMode(Dc, TRANSPARENT); //********************************************************************* // FONT SELECTION - CFont m_fntArial; - CFont* pOldFont; - BOOL bSuccess; + HFONT fntArial = 0; + HGDIOBJ pOldFont = 0; - BOOL bUnderline; - BOOL bItalic; - - - if (!m_szWork.IsEmpty()) - switch (m_szWork[m_szWork.GetLength()-1] ) + if (!m_szWork.empty()) + { + switch(m_szWork[m_szWork.length()-1]) { case NORMAL_TEXT: default: - bItalic = FALSE; - bUnderline = FALSE; - nCurrentFontHeight = NORMAL_TEXT_HEIGHT; - bSuccess = m_fntArial.CreateFont(NORMAL_TEXT_HEIGHT, 0, 0, 0, - FW_THIN, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - (LPSTR)"Arial"); - pDc->SetTextColor(NORMAL_TEXT_COLOR); - pOldFont = pDc->SelectObject(&m_fntArial); + m_nCurrentFontHeight = NORMAL_TEXT_HEIGHT; + fntArial = CreateCreditsFont(m_nCurrentFontHeight, FALSE, FALSE); + SetTextColor(Dc, NORMAL_TEXT_COLOR); + pOldFont = SelectObject(Dc, fntArial); break; case TOP_LEVEL_GROUP: - bItalic = FALSE; - bUnderline = FALSE; - nCurrentFontHeight = TOP_LEVEL_GROUP_HEIGHT; - bSuccess = m_fntArial.CreateFont(TOP_LEVEL_GROUP_HEIGHT, 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - (LPSTR)"Arial"); - pDc->SetTextColor(TOP_LEVEL_GROUP_COLOR); - pOldFont = pDc->SelectObject(&m_fntArial); + m_nCurrentFontHeight = TOP_LEVEL_GROUP_HEIGHT; + fntArial = CreateCreditsFont(m_nCurrentFontHeight, TRUE, FALSE); + SetTextColor(Dc, TOP_LEVEL_GROUP_COLOR); + pOldFont = SelectObject(Dc, fntArial); break; case GROUP_TITLE: - bItalic = FALSE; - bUnderline = FALSE; - nCurrentFontHeight = GROUP_TITLE_HEIGHT; - bSuccess = m_fntArial.CreateFont(GROUP_TITLE_HEIGHT, 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - (LPSTR)"Arial"); - pDc->SetTextColor(GROUP_TITLE_COLOR); - pOldFont = pDc->SelectObject(&m_fntArial); + m_nCurrentFontHeight = GROUP_TITLE_HEIGHT; + fntArial = CreateCreditsFont(m_nCurrentFontHeight, TRUE, FALSE); + SetTextColor(Dc, GROUP_TITLE_COLOR); + pOldFont = SelectObject(Dc, fntArial); break; case TOP_LEVEL_TITLE: - bItalic = FALSE; - bUnderline = TRUE; - nCurrentFontHeight = TOP_LEVEL_TITLE_HEIGHT; - bSuccess = m_fntArial.CreateFont(TOP_LEVEL_TITLE_HEIGHT, 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - (LPSTR)"Arial"); - pDc->SetTextColor(TOP_LEVEL_TITLE_COLOR); - pOldFont = pDc->SelectObject(&m_fntArial); + m_nCurrentFontHeight = TOP_LEVEL_TITLE_HEIGHT; + fntArial = CreateCreditsFont(m_nCurrentFontHeight, TRUE, TRUE); + SetTextColor(Dc, TOP_LEVEL_TITLE_COLOR); + pOldFont = SelectObject(Dc, fntArial); break; case DISPLAY_BITMAP: if (!m_bProcessingBitmap) + { + BITMAP bmpInfo; + string szBitmap = m_szWork.substr(0, m_szWork.length()-1); + m_BmpWork = LoadBitmap(hResourceInst, szBitmap.c_str()); + if(m_BmpWork == NULL) { - CString szBitmap = m_szWork.Left(m_szWork.GetLength()-1); - if (!m_bmpWork.LoadBitmap((const char *)szBitmap)) - { - CString str; - str.Format("Could not find bitmap resource \"%s\". " - "Be sure to assign the bitmap a QUOTED resource name", szBitmap); - ::KillTimer(m_hWnd, DISPLAY_TIMER_ID); - MessageBox(str); + string str(MakeString() << "Could not find bitmap resource " << + szBitmap << ". " << + "Be sure to assign the bitmap a QUOTED resource name"); + KillTimer(hDlg, DISPLAY_TIMER_ID); + ErrorBox(str.c_str()); return; - } - m_bmpCurrent = &m_bmpWork; - m_bmpCurrent->GetObject(sizeof(BITMAP), &m_bmpInfo); + } + GetObject(m_BmpWork, sizeof(BITMAP), &bmpInfo); - m_size.cx = m_bmpInfo.bmWidth; // width of dest rect + m_BitmapWidth = bmpInfo.bmWidth; // width of dest rect + m_BitmapHeight = bmpInfo.bmHeight; RECT workRect; - m_pDisplayFrame->GetClientRect(&workRect); - m_pDisplayFrame->ClientToScreen(&workRect); - ScreenToClient(&workRect); + GetClientRect(m_pDisplayFrame, &workRect); // upper left point of dest - m_pt.x = (workRect.right - - ((workRect.right-workRect.left)/2) - (m_bmpInfo.bmWidth/2)); - m_pt.y = workRect.bottom; + m_DisplayPoint.x = (workRect.right - + ((workRect.right-workRect.left)/2) - (bmpInfo.bmWidth/2)); + m_DisplayPoint.y = workRect.bottom; - - pBmpOld = m_dcMem.SelectObject(m_bmpCurrent); - if (m_hBmpOld == 0) - m_hBmpOld = (HBITMAP) pBmpOld->GetSafeHandle(); + m_BmpOld = SelectObject(m_dcMem, m_BmpWork); m_bProcessingBitmap = TRUE; - } + } break; } + } - - - - CBrush bBrush(BLACK); - CBrush* pOldBrush; - pOldBrush = pDc->SelectObject(&bBrush); + HBRUSH bBrush = (HBRUSH)GetStockObject(BLACK_BRUSH); + HGDIOBJ pOldBrush; + pOldBrush = SelectObject(Dc, bBrush); // Only fill rect comprised of gap left by bottom of scrolling window - r=m_ScrollRect; + RECT r=m_ScrollRect; r.top = r.bottom-abs(SCROLLAMOUNT); - pDc->DPtoLP(&r); + DPtoLP(Dc, (LPPOINT)&r, 2); if (m_bFirstTime) - { + { m_bFirstTime=FALSE; - pDc->FillRect(&m_ScrollRect,&bBrush); - } + FillRect(Dc, &m_ScrollRect, bBrush); + } else - pDc->FillRect(&r,&bBrush); + { + FillRect(Dc, &r, bBrush); + } - r=m_ScrollRect; - r.top = r.bottom-nClip; + r = m_ScrollRect; + r.top = r.bottom - m_nClip; if (!m_bProcessingBitmap) - { - int x = pDc->DrawText((const char *)m_szWork,m_szWork.GetLength()-1,&r,DT_TOP|DT_CENTER| + { + int x = DrawText(Dc, m_szWork.c_str(),m_szWork.length()-1,&r,DT_TOP|DT_CENTER| DT_NOPREFIX | DT_SINGLELINE); - m_bDrawText=FALSE; - } + + SelectObject(Dc, pOldFont); + DeleteObject(fntArial); + } else - { - dc.StretchBlt( m_pt.x, m_pt.y-nClip, m_size.cx, nClip, - &m_dcMem, 0, 0, m_bmpInfo.bmWidth-1, nClip, + { + StretchBlt(Dc, m_DisplayPoint.x, m_DisplayPoint.y-m_nClip, m_BitmapWidth, m_nClip, + m_dcMem, 0, 0, m_BitmapWidth - 1, m_nClip, SRCCOPY ); - if (nClip > m_bmpInfo.bmHeight) - { - m_bmpWork.DeleteObject(); + if (m_nClip > m_BitmapHeight) + { + SelectObject(m_dcMem, m_BmpOld); + DeleteObject(m_BmpWork); m_bProcessingBitmap = FALSE; - nClip=0; - m_szWork.Empty(); - nCounter=1; - } - pDc->SelectObject(pOldBrush); - bBrush.DeleteObject(); - m_pDisplayFrame->EndPaint(&ps); - return; + m_nClip=0; + m_szWork.clear(); + m_nCounter=1; } + } + SelectObject(Dc, pOldBrush); - pDc->SelectObject(pOldBrush); - bBrush.DeleteObject(); - - if (!m_szWork.IsEmpty()) - { - pDc->SelectObject(pOldFont); - m_fntArial.DeleteObject(); - } - - m_pDisplayFrame->EndPaint(&ps); - - // Do not call CDialog::OnPaint() for painting messages + EndPaint(hDlg, &ps); } - -void CCredits::OnDestroy() -{ - CDialog::OnDestroy(); - - m_dcMem.SelectObject(CBitmap::FromHandle(m_hBmpOld)); - m_bmpWork.DeleteObject(); - -} Modified: trunk/DScaler/DScaler/Credits.h =================================================================== --- trunk/DScaler/DScaler/Credits.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/Credits.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -27,69 +27,45 @@ #if !defined(__CREDITS_H_) #define __CREDITS_H_ -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 +#include "DSDialog.h" -#include "..\DScalerRes\resource.h" - /** Credits Dialog Creates a scolling credit screen */ -class CCredits : public CDialog +class CCredits : public CDSDialog { // Construction public: - CCredits(CWnd* pParent = NULL); // standard constructor + CCredits(); // standard constructor - #define DISPLAY_TIMER_ID 150 // timer id +private: - RECT m_ScrollRect,r; // rect of Static Text frame - int nArrIndex,nCounter; // work ints - CString m_szWork; // holds display line + RECT m_ScrollRect; // rect of Static Text frame + int m_nArrIndex; // work ints + int m_nCounter; + std::string m_szWork; // holds display line BOOL m_bFirstTime; - BOOL m_bDrawText; - int nClip; - int nCurrentFontHeight; + int m_nClip; + int m_nCurrentFontHeight; - CWnd* m_pDisplayFrame; + HWND m_pDisplayFrame; - CBitmap m_bmpWork; // bitmap holder - CBitmap* pBmpOld; // other bitmap work members - CBitmap* m_bmpCurrent; - HBITMAP m_hBmpOld; + HBITMAP m_BmpWork; + HGDIOBJ m_BmpOld; - CSize m_size; // drawing helpers - CPoint m_pt; - BITMAP m_bmpInfo; - CDC m_dcMem; + int m_BitmapWidth; // drawing helpers + int m_BitmapHeight; // drawing helpers + POINT m_DisplayPoint; + HDC m_dcMem; BOOL m_bProcessingBitmap; + WNDPROC m_OldWndProc; -// Dialog Data - //{{AFX_DATA(CCredits) - enum { IDD = IDD_CREDITS }; - //}}AFX_DATA - - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CCredits) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - - // Generated message map functions - //{{AFX_MSG(CCredits) - virtual void OnOK(); - afx_msg void OnPaint(); - virtual BOOL OnInitDialog(); - afx_msg void OnTimer(UINT nIDEvent); - afx_msg void OnDestroy(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() + virtual BOOL DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); + void OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify); + void OnPaint(HWND hDlg); + BOOL OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam); + void OnTimer(HWND hDlg, UINT nIDEvent); + static BOOL CALLBACK StaticWndProc(HWND hStatic, UINT message, WPARAM wParam, LPARAM lParam); }; -#endif \ No newline at end of file +#endif Modified: trunk/DScaler/DScaler/D3D9Output.cpp =================================================================== --- trunk/DScaler/DScaler/D3D9Output.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/D3D9Output.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -765,9 +765,3 @@ { D3D9SettingsHolder.WriteToIni(bOptimizeFileAccess); } - -SmartPtr<CTreeSettingsGeneric> D3D9_GetTreeSettingsPage() -{ - SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); - return new CTreeSettingsGeneric("Direct3D Settings", Holder); -} Modified: trunk/DScaler/DScaler/D3D9Output.h =================================================================== --- trunk/DScaler/DScaler/D3D9Output.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/D3D9Output.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -104,5 +104,4 @@ OUTPUTTYPES Type(); }; -SmartPtr<CTreeSettingsGeneric> D3D9_GetTreeSettingsPage(); SETTING* D3D9_GetSetting(OTHER_SETTING Setting); Added: trunk/DScaler/DScaler/DSDialog.cpp =================================================================== --- trunk/DScaler/DScaler/DSDialog.cpp (rev 0) +++ trunk/DScaler/DScaler/DSDialog.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -0,0 +1,112 @@ +//////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// 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 General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file Dialog.cpp + */ + +#include "stdafx.h" +#include "DSDialog.h" +#include "DScaler.h" + +using namespace std; + + +BOOL CALLBACK CDSDialog::MasterModalDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + if(message == WM_INITDIALOG) + { + SetWindowLong(hDlg, DWL_USER, (LONG)(CDSDialog*)lParam); + SetWindowContextHelpId(hDlg, ((CDSDialog*)lParam)->m_HelpID); + } + CDSDialog* myDialogObject = (CDSDialog*)GetWindowLong(hDlg, DWL_USER); + if(myDialogObject) + { + if(message != WM_HELP) + { + return myDialogObject->DialogProc(hDlg, message, wParam, lParam); + } + else + { + return SendMessage(GetMainWnd(), message, wParam, lParam); + } + } + else + { + return FALSE; + } +} + + +CDSDialog::CDSDialog(LPCSTR ResourceId) : + m_ResourceId(ResourceId) +{ +} + +CDSDialog::~CDSDialog() +{ +} + +INT_PTR CDSDialog::DoModal(HWND hParent) +{ + return DialogBoxParam(hResourceInst, m_ResourceId, hParent, MasterModalDialogProc, (LPARAM)this); +} + +HWND CDSDialog::Create(HWND hParent) +{ + return CreateDialogParam(hResourceInst, m_ResourceId, hParent, MasterModalDialogProc, (LPARAM)this); +} + +void CDSDialog::Destroy(HWND hDlg) +{ + DestroyWindow(hDlg); +} + +string GetDlgItemString(HWND hDlg, int id) +{ + HWND hWnd = GetDlgItem(hDlg, id); + int TextSize = GetWindowTextLength(hWnd); + if(TextSize > 0) + { + vector<char> Buffer(TextSize + 1); + GetWindowText(hWnd, &Buffer[0], TextSize + 1); + return &Buffer[0]; + } + else + { + return ""; + } +} + +void CDSDialog::SetHelpID(int HelpID) +{ + m_HelpID = HelpID; +} + +int GetDlgItemInt(HWND hDlg, int id) +{ + string Value(GetDlgItemString(hDlg, id)); + return FromString<int>(Value); +} + +void SetDlgItemInt(HWND hDlg, int id, int Value) +{ + string ValueAsString(ToString(Value)); + SetWindowText(GetDlgItem(hDlg, id), ValueAsString.c_str()); +} + Property changes on: trunk/DScaler/DScaler/DSDialog.cpp ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native Added: trunk/DScaler/DScaler/DSDialog.h =================================================================== --- trunk/DScaler/DScaler/DSDialog.h (rev 0) +++ trunk/DScaler/DScaler/DSDialog.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -0,0 +1,49 @@ +///////////////////////////////////////////////////////////////////////////// +// $Id$ +///////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2009 John Adcock. All rights reserved. +///////////////////////////////////////////////////////////////////////////// +// +// This file is subject to the terms of the GNU General Public License as +// published by the Free Software Foundation. A copy of this license is +// included with this software distribution in the file COPYING. If you +// do not have a copy, you may obtain a copy by writing to the Free +// Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +// +// 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 General Public License for more details +///////////////////////////////////////////////////////////////////////////// + +/** + * @file DScalerUtils.h + */ + +#ifndef __DSDIALOG_H___ +#define __DSDIALOG_H___ + +/// DScaler Dialog class +/// Replacement for MFC type class. +/// Allows holding of dialog state within an object instance +class CDSDialog +{ +public: + CDSDialog(LPCSTR ResourceId); + virtual ~CDSDialog(); + INT_PTR DoModal(HWND hParent); + HWND Create(HWND hParent); + void Destroy(HWND hDlg); + void SetHelpID(int HelpID); +private: + virtual BOOL DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) = 0; + static BOOL CALLBACK MasterModalDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); + LPCSTR m_ResourceId; + int m_HelpID; +}; + +std::string GetDlgItemString(HWND hDlg, int id); +int GetDlgItemInt(HWND hDlg, int id); +void SetDlgItemInt(HWND hDlg, int id, int Value); + +#endif Property changes on: trunk/DScaler/DScaler/DSDialog.h ___________________________________________________________________ Added: svn:keywords + Id Revision Added: svn:eol-style + native Modified: trunk/DScaler/DScaler/DScaler.cpp =================================================================== --- trunk/DScaler/DScaler/DScaler.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/DScaler.cpp 2009-04-27 11:05:31 UTC (rev 4579) @@ -83,6 +83,7 @@ #include "D3D9Output.h" #include "RemoteInput.h" #include "PathHelpers.h" +#include "ComInitialise.h" #include "..\API\DScalerVersion.h" #ifdef WANT_DSHOW_SUPPORT @@ -91,13 +92,6 @@ using namespace std; -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - - HWND hWnd = NULL; HINSTANCE hResourceInst = NULL; HINSTANCE hDScalerInst = NULL; @@ -236,6 +230,7 @@ LONG OnSize(HWND hWnd, UINT wParam, LONG lParam); LONG OnAppCommand(HWND hWnd, UINT wParam, LONG lParam); LONG OnInput(HWND hWnd, UINT wParam, LONG lParam); +void OnHelp(LPHELPINFO HelpInfo); void SetTray(BOOL Way); int On_IconHandler(WPARAM wParam, LPARAM lParam); BOOL DoWeNeedToShowHWSetupBox(); @@ -296,17 +291,27 @@ // ///************************************************************************** -int APIENTRY WinMainOld(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) +int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; MSG msg; HWND hPrevWindow; + ComInitialise SetupCOMForMainThread(COINIT_APARTMENTTHREADED); + + DScalerThread("Main thread"); hDScalerInst = hInstance; hMainThread = GetCurrentThreadId(); SetErrorMode(SEM_NOGPFAULTERRORBOX); + hResourceInst = LibraryCache::GetLibraryHandle("DScalerRes.dll"); + if(hResourceInst == NULL) + { + MessageBox(NULL, "DScaler can't find the resource library DScalerRes.dll", "Installation Error", MB_OK | MB_ICONSTOP); + return FALSE; + } + SetCurrentDirectory(GetInstallationPath().c_str()); CPU_SetupFeatureFlag(); @@ -3080,7 +3085,7 @@ case IDM_CREDITS: { CCredits CreditsDlg; - CreditsDlg.DoModal(); + CreditsDlg.DoModal(hWnd); } break; @@ -3881,6 +3886,11 @@ return 0; break; + case WM_HELP: + OnHelp((LPHELPINFO)lParam); + return TRUE; + break; + case UWM_VIDEOTEXT: ProcessVTMessage(hWnd, message, wParam, lParam); return FALSE; @@ -4876,7 +4886,7 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetSubMenuWithName(hMenu, 5-reduc, "&Filters"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -4891,14 +4901,14 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetSubMenuWithName(hMenu, 4-reduc, "Deinter&lace"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } HMENU GetChannelsSubmenu() { - ASSERT(hSubMenuChannels != NULL); + _ASSERTE(hSubMenuChannels != NULL); return hSubMenuChannels; } @@ -4912,7 +4922,7 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetSubMenuWithName(hMenu, 3-reduc, "&View"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -4926,7 +4936,7 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetOrCreateSubSubSubMenu(7-reduc, 2, 0, "Test &Patterns"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -4940,13 +4950,13 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetSubMenuWithName(hMenu, 9-reduc, "&Datacasting"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); GetMenuString(hmenu, 8, string, sizeof(string), MF_BYPOSITION); reduc = !strcmp(string, "Toggle &Mixed Mode\tShift-T") ? 0 : 1; hmenu = GetSubMenuWithName(hmenu, 9-reduc, "Teletext Code Page"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -4960,7 +4970,7 @@ reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetOrCreateSubSubMenu(3-reduc, 10, "Switch Resolution in F&ull Screen"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -4973,7 +4983,7 @@ GetMenuString(hMenu, 2, string, sizeof(string), MF_BYPOSITION); reduc = !strcmp(string, "&Channels") ? 0 : 1; HMENU hmenu = GetOrCreateSubSubSubMenu(8-reduc, 12, 15, "Day"); - ASSERT(hmenu != NULL); + _ASSERTE(hmenu != NULL); return hmenu; } @@ -6097,14 +6107,14 @@ IniSettingNotPresent(VIDEOCARD); } -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage() +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage1() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); Holder->AddSettings(&DScalerSettings[WINDOWPRIORITY], AUTOSAVESETTINGS - WINDOWPRIORITY); - return new CTreeSettingsGeneric("Threads Priority Settings", Holder); + return Holder; } -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage2() +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage2() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); Holder->AddSettings(&DScalerSettings[DISPLAYSPLASHSCREEN], 1); @@ -6114,25 +6124,25 @@ Holder->AddSettings(&DScalerSettings[SCREENSAVEROFF], 1); Holder->AddSettings(&DScalerSettings[SINGLEKEYTELETEXTTOGGLE], 1); Holder->AddSettings(&DScalerSettings[MINIMIZEHANDLING], 1); - return new CTreeSettingsGeneric("Other Settings", Holder); + return Holder; } -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage3() +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage3() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); Holder->AddSettings(&DScalerSettings[REVERSECHANNELSCROLLING], 1); Holder->AddSettings(&DScalerSettings[CHANNELPREVIEWWNBCOLS], 1); Holder->AddSettings(&DScalerSettings[CHANNELPREVIEWNBROWS], 1); Holder->AddSettings(&DScalerSettings[CHANNELENTERTIME], 1); - return new CTreeSettingsGeneric("Channel Settings", Holder); + return Holder; } -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage4() +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage4() { SmartPtr<CSettingsHolder> Holder(new CSettingsHolder); Holder->AddSettings(&DScalerSettings[PSTRIPRESO576I], 1); Holder->AddSettings(&DScalerSettings[PSTRIPRESO480I], 1); - return new CTreeSettingsGeneric("PowerStrip Settings", Holder); + return Holder; } HWND GetMainWnd() @@ -6177,6 +6187,20 @@ } } +void OnHelp(LPHELPINFO HelpInfo) +{ + //try to open the help + if(::HtmlHelp(::GetMainWnd(), "DScaler.chm", HH_HELP_CONTEXT, HelpInfo->dwContextId)==NULL) + { + //didnt work, maybe wrong help id? try to open just the toc + if(::HtmlHelp(::GetMainWnd(), "DScaler.chm", HH_DISPLAY_TOC, NULL)==NULL) + { + ErrorBox("Failed to open help"); + } + } +} + + #if _MSC_VER > 1310 #pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif \ No newline at end of file Modified: trunk/DScaler/DScaler/DScaler.h =================================================================== --- trunk/DScaler/DScaler/DScaler.h 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/DScaler.h 2009-04-27 11:05:31 UTC (rev 4579) @@ -50,10 +50,10 @@ // Get Hold of the DScaler.c file settings SETTING* DScaler_GetSetting(DSCALER_SETTING Setting); -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage(); -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage2(); -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage3(); -SmartPtr<CTreeSettingsGeneric> DScaler_GetTreeSettingsPage4(); +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage1(); +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage2(); +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage3(); +SmartPtr<CSettingsHolder> DScaler_GetSettingsPage4(); LONG APIENTRY MainWndProc(HWND hWnd, UINT message, UINT wParam, LONG lParam); LONG APIENTRY MainWndProcSafe(HWND hWnd, UINT message, UINT wParam, LONG lParam); Modified: trunk/DScaler/DScaler/DScaler2005.vcproj =================================================================== --- trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DScaler/DScaler/DScaler2005.vcproj 2009-04-27 11:05:31 UTC (rev 4579) @@ -21,7 +21,7 @@ IntermediateDirectory=".\Release" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="1" + UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > @@ -129,7 +129,7 @@ IntermediateDirectory=".\Debug" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" - UseOfMFC="1" + UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > @@ -2564,54 +2564,14 @@ > </File> <File - RelativePath="DScalerApp.cpp" + RelativePath=".\DScalerUtils.cpp" > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> </File> <File + RelativePath=".\DSDialog.cpp" + > + </File> + <File RelativePath="dshowsource\DSFileSource.cpp" > <FileConfiguration @@ -3856,54 +3816,6 @@ </FileConfiguration> </File> <File - RelativePath="GradientStatic.cpp" - > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - </File> - <File RelativePath="HardwareDriver.cpp" > <FileConfiguration @@ -4052,54 +3964,6 @@ > </File> <File - RelativePath="HSListBox.cpp" - > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Express|Win32" - > - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - BrowseInformation="1" - /> - </FileConfiguration> - </File> - <File RelativePath="I2CBus.cpp" > <FileConfiguration @@ -4784,7 +4648,6 @@ > <FileConfiguration Name="Release|Win32" - ExcludedFromBuild="true" > <Tool Name="VCCLCompilerTool" @@ -4793,12 +4656,25 @@ </FileConfiguration> <FileConfiguration Name="Debug|Win32" - ExcludedFromBuild="true" > <Tool Name="VCCLCompilerTool" /> </FileConfiguration> + <FileConfiguration + Name="Debug_Express|Win32" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release_Express|Win32" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> </File> <File RelativePath="OpenDlg.cpp" @@ -6629,10 +6505,6 @@ </FileConfiguration> </File> <File - RelativePath=".\SubItemCheckboxListCtrl.cpp" - > - </File> - <File RelativePath=".\TDA8275.cpp" > </File> @@ -8470,11 +8342,11 @@ > </File> <File - RelativePath="DScalerApp.h" + RelativePath=".\DScalerUtils.h" > </File> <File - RelativePath=".\DScalerUtils.h" + RelativePath=".\DSDialog.h" > </File> <File @@ -8590,10 +8462,6 @@ > </File> <File - RelativePath="GradientStatic.h" - > - </File> - <File RelativePath="HardwareDriver.h" > </File> @@ -8610,10 +8478,6 @@ > </File> <File - RelativePath="HSListBox.h" - > - </File> - <File RelativePath="I2CBus.h" > </File> @@ -8870,10 +8734,6 @@ > </File> <File - RelativePath=".\SubItemCheckboxListCtrl.h" - > - </File> - <File RelativePath=".\TDA8275.h" > </File> Modified: trunk/DScaler/DScaler/DScalerApp.cpp =================================================================== --- trunk/DScaler/DScaler/DScalerApp.cpp 2009-04-15 19:19:57 UTC (rev 4578) +++ trunk/DS... [truncated message content] |