📄 camerawindow.h
字号:
/*
* Copyright (C) 2004-2005, MOTOROLA, INC. All Rights Reserved
* THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
* BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
* MOTOROLA, INC.
*
* Copyright (C) 2004-2006, Freescale Semiconductor, Inc. All Rights Reserved.
* THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
* AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
*
* File: APPS/CAMAPP/CCameraWindow.h
* Purpose: This header defines a class that encapsulates the window(s) needed
* for the camera application.
* Notes:
*
*/
#ifndef _SUPPORT_APPS_CAMERAWINDOWS_H
#define _SUPPORT_APPS_CAMERAWINDOWS_H
/*********************************************************************
INCLUDE FILES
*********************************************************************/
#include <windows.h>
#include "camera.h"
#include "resource.h"
#include "PicBrowserDlg.h"
/*********************************************************************
MACRO DEFINITIONS
*********************************************************************/
#define CAMAPP_DEBUG_MSG 0
#define CAMAPP_ERROR_MSG 1
#define CAMAPP_CAPTURE_HOTKEY_ID 0x150
#define CAMAPP_VIEW_HOTKEY_ID 0x151
#define CAMAPP_ROTATE_HOTKEY_ID 0x152
#define CamApp_BTN_ID_CAPTURE 0x01
#define CamApp_BTN_ID_VIEW 0x02
#define CamApp_BTN_ID_ROTATE 0x03
#define CamApp_TEXT_ID_FrameRate 0x04
#define CamApp_STATIC_ID_PREVIEW 0x20
#define BUTTON_CAPTURE 0
#define BUTTON_VIEW 1
#define BUTTON_ROTATE 2
#define SKIN_SIZE 3 //the button number
// This defines the ID of the timer for frame rate
#define CAMAPP_TIMER 100
// This defines the number of milliseconds between timer events
#define CAMAPP_TIMEOUT 3000
/*********************************************************************
GLOBAL DEFINITIONS
*********************************************************************/
/*********************************************************************
GLOBAL OR STATIC VARIABLES
*********************************************************************/
/*********************************************************************
ENUMERATIONS AND STRUCTURES
*********************************************************************/
// Copy the following enumerate from cameradriver.h
// zero based index of stream
enum
{
CAPTURE = 0,
STILL,
PREVIEW
};
//Zero based index of range.Copy this for align with standard API.
enum
{
FRAMERATE_1000000 = 0,
FRAMERATE_909000,
FRAMERATE_833000,
FRAMERATE_769000,
FRAMERATE_714000,
FRAMERATE_666000,
FRAMERATE_625000,
FRAMERATE_588000,
FRAMERATE_556000,
FRAMERATE_526000,
FRAMERATE_500000,
FRAMERATE_476000,
FRAMERATE_455000,
FRAMERATE_435000,
FRAMERATE_417000,
FRAMERATE_400000,
FRAMERATE_385000,
FRAMERATE_370000,
FRAMERATE_357000,
FRAMERATE_345000,
FRAMERATE_333000
};
enum EButtonState { ENABLED, ONCAPTURE, DISABLED };
enum ECamResolution {VGA, CIF, QVGA, QCIF, QQVGA};
typedef struct _button_info
{
LPCTSTR pCaptNormal;
LPCTSTR pCaptCapture;
EButtonState eState;
HMENU hID;
HWND hWnd;
UINT x;
UINT y;
UINT nWidth;
UINT nHeight;
} button_info_t;
typedef struct csiCaptureDisplay {
UINT16 xOffset;
UINT16 yOffset;
UINT16 screenWidth;
UINT16 screenHeight;
UINT16 imageWidth;
UINT16 imageHeight;
} csiCaptureDisplay_t, * pCsiCaptureDisplay_t;
/*********************************************************************
FUNCTION PROTOTYPES
*********************************************************************/
/*********************************************************************
CLASS DEFINITIONS
*********************************************************************/
typedef class CCameraWindow:public JpegFile
{
public:
// Constructor/Destructor
CCameraWindow(HWND hWnd, HINSTANCE hInstance);
~CCameraWindow();
BOOL Init();
BOOL Fini();
BOOL ChangeResolution(ECamResolution dResolution);
BOOL ChangeResolution(DWORD pinId, ECamResolution dResolution);
BOOL DialogMessage(LPMSG pMsg);
void OnPaint(HDC hdc, RECT *prc);
BOOL OnCommand(WORD wID, LPARAM lParam);
BOOL ApplyZoomLevel(DWORD dwZoomLevel);
BOOL PinStart(DWORD pinId);
BOOL PinStop(DWORD pinId);
BOOL PinPause(DWORD pinId);
BOOL CapturePinStart();
BOOL CapturePinStop();
BOOL CapturePinPause();
BOOL StillPinStart();
BOOL StillPinStop();
BOOL StillPinPause();
BOOL PreviewPinStart();
BOOL PreviewPinStop();
BOOL PreviewPinPause();
BOOL ChangeFrameRate(UINT uFRate);
BOOL OnRotation(BOOL bRotation);
BOOL OnFlipping(BOOL bVertical, BOOL bFlippingOn);
void PicBrowserDlgClosed();
BOOL OnTimer(UINT uID);
BOOL RevertPreviewThread();
BOOL PausePreviewThread();
HINSTANCE m_hInstance;
HANDLE m_hCameraDll;
HWND m_hWnd;
HWND m_hWndCB;
HWND m_hWndSC;
HWND m_hWndBrowser;
HWND m_hFrameRateText;
DWORD m_dwZoomLevel;
CRITICAL_SECTION m_csPreview;
CRITICAL_SECTION m_csCapture;
CRITICAL_SECTION m_csStill;
CRITICAL_SECTION m_csCamera;
HANDLE m_hPreviewPinDll;
HANDLE m_hStillPinDll;
HANDLE m_hCapturePinDll;
HANDLE m_hPreviewMsgQ;
HANDLE m_hStillMsgQ;
HANDLE m_hCaptureMsgQ;
BOOL m_bPreviewRunning;
BOOL m_bPreviewStopped;
BOOL m_bCamAppThreadTerminate;
PCS_STREAM_DESCRIPTOR m_pPreviewStreamDesc;
PCS_STREAM_DESCRIPTOR m_pStillStreamDesc;
PCS_STREAM_DESCRIPTOR m_pCaptureStreamDesc;
csiCaptureDisplay_t m_DisplayInfo;
CS_DATAFORMAT_VIDEOINFOHEADER m_PreviewDataFormat;
CS_DATAFORMAT_VIDEOINFOHEADER m_StillDataFormat;
CS_DATAFORMAT_VIDEOINFOHEADER m_CaptureDataFormat;
DWORD m_dFrameRate;
double m_dActualRate;
BOOL m_bRotation; // TRUE = landscape, FALSE = Portrait;
BOOL m_bVertFlip;
BOOL m_bHorizFlip;
ECamResolution m_dwResolution;
INT m_iPanelWidth;
INT m_iPanelHeight;
INT m_iPanelBpp;
PCSMULTIPLE_ITEM m_pPreviewDataRanges, m_pCaptureDataRanges, m_pStillDataRanges;
UINT32 m_iNumCaptureDataRanges, m_iNumStillDataRanges, m_iNumPreviewDataRanges;
private:
button_info_t m_binfo[SKIN_SIZE];
UINT m_uiTimer;
HANDLE m_hPreviewThread;
HANDLE m_hCameraDevice;
WORD *m_pStillPinBuff;
WCHAR m_DefaultFileNamePath[JPEG_FILE_NAME_MAX];
void UpdateButtons();
void ReadPinDataRanges(UINT32 pinId);
BOOL GetDataFormat(UINT32 pinId, ECamResolution res, PCS_DATARANGE_VIDEO pDataRangeMatched);
BOOL LoadCamDriver();
BOOL OnOptions();
BOOL OnSave();
UINT GetFileName();
void SaveJPG(BOOL color);
void SaveBMP();
BOOL OnPicBrowser();
BOOL OnHelp();
}CAMERAWINDOW, *PCAMERAWINDOW;
extern CAMERAWINDOW *g_pCameraWindow;
/*********************************************************************
END OF FILE
*********************************************************************/
#endif //_SUPPORT_APPS_CAMERAWINDOWS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -