From c77821d0b4b3ae09e47ce6d6ca9d6b21dbb56d30 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 4 Nov 2013 08:59:15 +0000 Subject: LCDFramework project removed, integrated to MirandaG15 project git-svn-id: http://svn.miranda-ng.org/main/trunk@6767 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../LCDFramework/src/CLCDOutputManager.cpp | 451 --------------------- 1 file changed, 451 deletions(-) delete mode 100644 plugins/MirandaG15/LCDFramework/src/CLCDOutputManager.cpp (limited to 'plugins/MirandaG15/LCDFramework/src/CLCDOutputManager.cpp') diff --git a/plugins/MirandaG15/LCDFramework/src/CLCDOutputManager.cpp b/plugins/MirandaG15/LCDFramework/src/CLCDOutputManager.cpp deleted file mode 100644 index e1cc493a16..0000000000 --- a/plugins/MirandaG15/LCDFramework/src/CLCDOutputManager.cpp +++ /dev/null @@ -1,451 +0,0 @@ -#include "stdafx.h" - -#include "CLCDGfx.h" -#include "CLCDObject.h" -#include "CLCDScreen.h" - -#include "CLCDConnection.h" -#include "CLCDConnectionLogitech.h" -#include "CLCDOutputManager.h" -#include - -CLCDOutputManager *CLCDOutputManager::m_pInstance = NULL; - -//************************************************************************ -// Constructor -//************************************************************************ -CLCDOutputManager::CLCDOutputManager() -{ - ASSERT(m_pInstance == NULL); - - m_pInstance = this; - m_strAppletName = _T(""); - m_pbButtonStates = NULL; - m_pActiveScreen = NULL; - m_bInitialized = false; - - m_dwButtonRepeatDelay = 300; - m_dwLastUpdate = 0; -} - -//************************************************************************ -// Destructor -//************************************************************************ -CLCDOutputManager::~CLCDOutputManager() -{ - m_pInstance = NULL; -} - -//************************************************************************ -// Gets the OutputManager Instance -//************************************************************************ -CLCDOutputManager* CLCDOutputManager::GetInstance() -{ - ASSERT(m_pInstance != NULL); - - return m_pInstance; -} - -//************************************************************************ -// returns the active lcdconnection -//************************************************************************ -CLCDConnection *CLCDOutputManager::GetLCDConnection() -{ - ASSERT(m_pLcdConnection != NULL); - return m_pLcdConnection; -} - -//************************************************************************ -// returns the active scren -//************************************************************************ -CLCDScreen *CLCDOutputManager::GetActiveScreen() -{ - return m_pActiveScreen; -} - -//************************************************************************ -// Initializes the OutputManager -//************************************************************************ -bool CLCDOutputManager::Initialize(tstring strAppletName,bool bAutostart, bool bConfigDialog) -{ - srand ( time(NULL) ); - - InitDebug(); - - m_strAppletName = strAppletName; - - m_pGfx = new CLCDGfx(); - - m_pLcdConnection = new CLCDConnectionLogitech(); - if(!m_pLcdConnection->Initialize(m_strAppletName,bAutostart,bConfigDialog)) - return false; - - - m_bInitialized = true; - - m_dwLastUpdate = GetTickCount(); - return true; -} - -//************************************************************************ -// return wether the Outputmanager is initialized -//************************************************************************ -bool CLCDOutputManager::IsInitialized() -{ - return m_bInitialized; -} - -//************************************************************************ -// Deinitializes the Outputmanager -//************************************************************************ -bool CLCDOutputManager::Shutdown() -{ - ASSERT(NULL != m_pLcdConnection); - ASSERT(NULL != m_pGfx); - - // Shutdown all screens - vector::iterator iter = m_Screens.begin(); - while(iter != m_Screens.end()) - { - (*(iter))->Shutdown(); - iter++; - } - - m_pLcdConnection->Shutdown(); - - - delete m_pLcdConnection; - - UnInitDebug(); - m_bInitialized = false; - return true; -} - -//************************************************************************ -// called by CLCDConnection when connected to a device -//************************************************************************ -void CLCDOutputManager::OnDeviceConnected() { - InitializeGfxObject(); - OnConnectionChanged(CONNECTED); -} - -//************************************************************************ -// called by CLCDConnection when disconnected from a device -//************************************************************************ -void CLCDOutputManager::OnDeviceDisconnected() { - DeinitializeGfxObject(); - OnConnectionChanged(DISCONNECTED); -} - -//************************************************************************ -// Initializes the CGfx Object -//************************************************************************ -void CLCDOutputManager::InitializeGfxObject() { - if(m_pGfx->IsInitialized()) - return; - - TRACE(_T("CLCDOutputManager::UpdateGfxObject(): initializing CLCDGfx\n")); - SIZE size; - size = m_pLcdConnection->GetDisplaySize(); - - m_pGfx->Initialize(size.cx,size.cy,m_pLcdConnection->GetColorCount(), m_pLcdConnection->GetPixelBuffer()); - - int iButtonCount = m_pLcdConnection->GetButtonCount(); - - m_pbButtonStates = (bool*)malloc(sizeof(bool)*iButtonCount); - m_pdwButtonRepeatTimers = (DWORD*)malloc(sizeof(DWORD)*iButtonCount); - m_pdwButtonRepeatStarts = (DWORD*)malloc(sizeof(DWORD)*iButtonCount); - for(int i=0;i::iterator iter = m_Screens.begin(); - while(iter != m_Screens.end()) - { - (*(iter))->OnSizeChanged(); - iter++; - } - - OnLCDConnected(); -} - -//************************************************************************ -// Deinitializes the CGfx Object -//************************************************************************ -void CLCDOutputManager::DeinitializeGfxObject() { - if(!m_pGfx->IsInitialized()) - return; - - TRACE(_T("CLCDOutputManager::UpdateGfxObject(): shutting down CLCDGfx\n")); - - m_pGfx->Shutdown(); - free(m_pbButtonStates); - free(m_pdwButtonRepeatTimers); - free(m_pdwButtonRepeatStarts); - - OnLCDDisconnected(); -} - -//************************************************************************ -// Update all Screens & draw -//************************************************************************ -bool CLCDOutputManager::Update() -{ - ASSERT(m_bInitialized); - - DWORD dwElapsed = GetTickCount() - m_dwLastUpdate; - - // Update the active screen - if(m_pActiveScreen != NULL) - { - m_pActiveScreen->Update(); - // Check if the active screen has expired - if(m_pActiveScreen->HasExpired()) - { - // Call event handlers - DeactivateScreen(); - return true; - } - } - - // Update - m_pLcdConnection->Update(); - - // skip button checking and drawing if there is no connection to a device - if(!m_pLcdConnection || m_pLcdConnection->GetConnectionState() != CONNECTED) - return true; - - - // Handle buttons - bool bState = false; - int iId = 0; - for(int i = 0; i< m_pLcdConnection->GetButtonCount();i++) - { - // get current state - bState = m_pLcdConnection->GetButtonState(i); - // handle input event - if(bState != m_pbButtonStates[i]) - { - iId = m_pLcdConnection->GetButtonId(i); - if(bState) { - OnLCDButtonDown(iId); - } else { - OnLCDButtonUp(iId); - } - m_pdwButtonRepeatStarts[i] = GetTickCount(); - m_pdwButtonRepeatTimers[i] = m_pdwButtonRepeatStarts[i] + m_dwButtonRepeatDelay; - } - // check if repeat event should be sent - else if(bState && m_pdwButtonRepeatTimers[i] <= GetTickCount()) - { - iId = m_pLcdConnection->GetButtonId(i); - - // reduce the delay by 5% per second - DWORD dwNewDelay = m_dwButtonRepeatDelay - ((float)m_dwButtonRepeatDelay * 0.05 * (GetTickCount() - m_pdwButtonRepeatStarts[i]) / 250); - // delay may not be less than 25% of the original value - if(dwNewDelay < m_dwButtonRepeatDelay * 0.25) - dwNewDelay = m_dwButtonRepeatDelay * 0.25; - - m_pdwButtonRepeatTimers[i] = GetTickCount() + dwNewDelay; - - OnLCDButtonRepeated(iId); - } - // save the current state - m_pbButtonStates[i] = bState; - } - - // Draw - - if(m_pActiveScreen != NULL && m_pGfx->IsInitialized()) - { - m_pGfx->BeginDraw(); - m_pGfx->ClearScreen(); - m_pActiveScreen->Draw(m_pGfx); - m_pGfx->EndDraw(); - - m_pLcdConnection->SetAlert(m_pActiveScreen->GetAlert()); - m_pLcdConnection->Draw(); - } - else - m_pLcdConnection->HideApplet(); - - m_dwLastUpdate = GetTickCount(); - return true; -} - -//************************************************************************ -// Deactivates the active screen -//************************************************************************ -bool CLCDOutputManager::DeactivateScreen() -{ - if(m_pActiveScreen == NULL) - return false; - - CLCDScreen *pActiveScreen = m_pActiveScreen; - m_pActiveScreen = NULL; - - if(pActiveScreen->HasExpired()) - { - pActiveScreen->OnExpiration(); - OnScreenExpired(pActiveScreen); - } - else - { - OnScreenDeactivated(pActiveScreen); - pActiveScreen->OnDeactivation(); - } - return true; -} - -//************************************************************************ -// Activates the specified screen -//************************************************************************ -bool CLCDOutputManager::ActivateScreen(CLCDScreen *pScreen) -{ - if(m_pActiveScreen == pScreen) - return false; - - // If another screen is currently active, deactivate it - if(m_pActiveScreen != NULL) - DeactivateScreen(); - - m_pActiveScreen = pScreen; - m_pActiveScreen->OnActivation(); - return true; -} - -//************************************************************************ -// Adds a screen to the managers list -//************************************************************************ -bool CLCDOutputManager::AddScreen(CLCDScreen *pScreen) -{ - // Check if the screen is already managed - vector::iterator iter = m_Screens.begin(); - while(iter != m_Screens.end()) - { - if(*(iter) == pScreen) - return false; - iter++; - } - - m_Screens.push_back(pScreen); - return true; -} - -//************************************************************************ -// Removes a screen from the managers list -//************************************************************************ -bool CLCDOutputManager::RemoveScreen(CLCDScreen *pScreen) -{ - if(m_Screens.empty()) - return false; - - // Find the screen and remove it from the list of managed screens - vector::iterator iter = m_Screens.begin(); - while(iter != m_Screens.end()) - { - if(*(iter) == pScreen) - { - m_Screens.erase(iter); - return true; - } - iter++; - } - return false; -} - -//************************************************************************ -// starts a screen transition -//************************************************************************ -void CLCDOutputManager::StartTransition(ETransitionType eTransition,LPRECT rect) -{ - m_pGfx->StartTransition(eTransition,rect); -} - -//************************************************************************ -// specifies the button repeat delay -//************************************************************************ -void CLCDOutputManager::SetButtonRepeatDelay(DWORD dwDelay) -{ - m_dwButtonRepeatDelay = dwDelay; -} - -//************************************************************************ -// Called when a screen has been deactivated -//************************************************************************ -void CLCDOutputManager::OnScreenDeactivated(CLCDScreen *pScreen) -{ -} - -//************************************************************************ -// Called when a screen has expired -//************************************************************************ -void CLCDOutputManager::OnScreenExpired(CLCDScreen *pScreen) -{ -} - -//************************************************************************ -// Called when an LCD button is repeated -//************************************************************************ -void CLCDOutputManager::OnLCDButtonRepeated(int iButton) -{ - if(m_pActiveScreen) { - m_pActiveScreen->OnLCDButtonRepeated(iButton); - } -} - -//************************************************************************ -// Called when an LCD button is pressed -//************************************************************************ -void CLCDOutputManager::OnLCDButtonDown(int iButton) -{ - if(m_pActiveScreen) - m_pActiveScreen->OnLCDButtonDown(iButton); -} - -//************************************************************************ -// Called when an LCD button is released -//************************************************************************ -void CLCDOutputManager::OnLCDButtonUp(int iButton) -{ - if(m_pActiveScreen) - m_pActiveScreen->OnLCDButtonUp(iButton); -} - -//************************************************************************ -// Called when the connection state has changed -//************************************************************************ -void CLCDOutputManager::OnConnectionChanged(int iConnectionState) -{ -} - -//************************************************************************ -// Called when the LCD has been plugged in -//************************************************************************ -void CLCDOutputManager::OnLCDConnected() -{ -} - -//************************************************************************ -// Called when the LCD has been unplugged -//************************************************************************ -void CLCDOutputManager::OnLCDDisconnected() -{ -} - -//************************************************************************ -// Called by the LCDManager to open a config dialog -//************************************************************************ -DWORD WINAPI CLCDOutputManager::configDialogCallback(IN int connection,IN const PVOID pContext) { - return CLCDOutputManager::GetInstance()->OnConfigDialogRequest(connection,pContext); -} -//************************************************************************ -// Called when a config dialog is requested -//************************************************************************ -DWORD CLCDOutputManager::OnConfigDialogRequest(int connection, const PVOID pContext) { - return 0; -} \ No newline at end of file -- cgit v1.2.3