From: <xc_...@us...> - 2003-12-01 17:05:23
|
Update of /cvsroot/xbplayer/XBMP In directory sc8-pr-cvs1:/tmp/cvs-serv8738 Modified Files: XBoxMediaPlayer.cpp Log Message: no message Index: XBoxMediaPlayer.cpp =================================================================== RCS file: /cvsroot/xbplayer/XBMP/XBoxMediaPlayer.cpp,v retrieving revision 1.201 retrieving revision 1.202 diff -C2 -d -r1.201 -r1.202 *** XBoxMediaPlayer.cpp 1 Dec 2003 17:01:21 -0000 1.201 --- XBoxMediaPlayer.cpp 1 Dec 2003 17:05:20 -0000 1.202 *************** *** 800,803 **** --- 800,804 ---- CreateDirectory(g_playerSettings.szBookmarks,NULL); CreateDirectory(g_playerSettings.szLocalSubtitleDir,NULL); + CreateDirectory(g_playerSettings.szLocalScreenshots, NULL); // Screenshot - [XC]D-Ice CreateDirectory(g_playerSettings.szCddbDir, NULL); m_dwScreenSave=timeGetTime(); *************** *** 1777,1780 **** --- 1778,1802 ---- } } + //Screenshot - [XC]D-Ice - Start + // added to take screeshot - START - With the RIGHT THUMB //PRESS// + if (dwCurrentAppState != IN_MOVIE && dwCurrentAppState != IN_PHOTO) + { + if (pGamepad->wButtons & XINPUT_GAMEPAD_RIGHT_THUMB) + { + TakeScreenshot(); + } + } + // added to take screenshot - END - With the RIGHT THUMB //PRESS// + // added to take screeshot - START - With the IR Remote - Button 9 + if (dwCurrentAppState != IN_MOVIE && dwCurrentAppState != IN_PHOTO) + { + if (m_DefaultIR_Remote.wPressedButtons == XINPUT_IR_REMOTE_9) + { + TakeScreenshot(); + } + } + // added to take screenshot - END - With the IR Remote - Button 9 + // Screenshot - [XC]D-Ice - End + } if (pGamepad->bPressedAnalogButtons[XINPUT_GAMEPAD_BLACK]) *************** *** 1980,1983 **** --- 2002,2021 ---- } */ + + // B button = toggle aspect + if( m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_B] ) + { + static int ratioidx = 0; + static FLOAT ratios[] = { + (FLOAT)0.0, + (FLOAT)-0.1, + (FLOAT)-0.2 + }; + int maxidx = sizeof(ratios) / sizeof(FLOAT); + + g_playerSettings.fRatioCorrection = ratios[ratioidx++]; + if(ratioidx >= maxidx) ratioidx = 0; + } + // A button = back 2 normal speed if( (m_DefaultGamepad.bPressedAnalogButtons[XINPUT_GAMEPAD_A]) || *************** *** 3213,3216 **** --- 3251,3318 ---- } } + //Screenshot - [XC]D-Ice - Start + } + + std::string GetNextFilename(const char* fn_template, int max) + { + // Open the file. + char szName[1024]; + + INT i; + + WIN32_FIND_DATA wfd; + HANDLE hFind; + + if (NULL != strstr(fn_template, "%d")) + { + for(i = 0; i <= max; i++) + { + wsprintf(szName, fn_template, i); + + memset(&wfd, 0, sizeof(wfd)); + if ((hFind = FindFirstFile(szName, &wfd)) != INVALID_HANDLE_VALUE) + FindClose(hFind); + else + { + // FindFirstFile didn't find the file 'szName', return it + return szName; + } + } + } + + return ""; // no fn generated + } + + void CApplication::TakeScreenshot() + { + LPDIRECT3DSURFACE8 lpSurface = NULL; + char fn[1024]; + + if (strlen(g_playerSettings.szLocalScreenshots)) + { + wsprintf(fn, "%s\\screenshot%%d.bmp", g_playerSettings.szLocalScreenshots); + strcpy(fn, GetNextFilename(fn, 10).c_str()); + + if (strlen(fn)) + { + if (SUCCEEDED(g_pd3dDevice->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &lpSurface))) + { + if (FAILED(XGWriteSurfaceToFile(lpSurface, fn))) + { + ErrorMessage("Screen shot", "Generation of screen shot failed", false); + } + else + { + InfoMessage("Screen shot", "Screen shot saved as", fn); + } + lpSurface->Release(); + } + } + else + { + ErrorMessage("Screen shot", "Too many screen shots or invalid folder", false); + } + } + //Screenshot - [XC]D-Ice - End } |