⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videomanage_dlg.cpp

📁 ZPAV (H265) PC(X86) demo ZPAV (H265) 是 音视频 压缩解压 协议
💻 CPP
字号:

/*
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Copyright (C) 2006-2008  Beijing,  pengzhen (pengzhenxp@yahoo.com.cn)   //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
*/

// videomanage_dlg.cpp : implementation file
//

#include "stdafx.h"
#include "H265V.h"
#include "videomanage_dlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "videomanage_dlg1.cpp"

/////////////////////////////////////////////////////////////////////////////
// CVideoManage_Dlg property page

IMPLEMENT_DYNCREATE(CVideoManage_Dlg, CPropertyPage)

CVideoManage_Dlg::CVideoManage_Dlg( UINT nIDCaption ) : CPropertyPage(CVideoManage_Dlg::IDD,nIDCaption)
{

	//{{AFX_DATA_INIT(CVideoManage_Dlg)
	//}}AFX_DATA_INIT

	m_iItem = 0 ; 
	m_iSubItem = size_video_sub_id ; 
	m_iItemStep = 1 ; 
	m_pCurItemText = TEXT("") ; 

	LoadItemValue( TRUE ) ;
}


CVideoManage_Dlg::~CVideoManage_Dlg()
{
}

void CVideoManage_Dlg::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVideoManage_Dlg)
	DDX_Control(pDX, IDC_STATIC_NAME, m_pNameCtrl);
	DDX_Control(pDX, IDC_STATIC_ITEM, m_pItemCtrl);
	DDX_Control(pDX, IDC_EDIT_ITEM, m_pEditItem);
	DDX_Control(pDX, IDC_SLIDER_ITEM, m_pSliderItem);
	DDX_Control(pDX, IDC_BUTTON_DEFAULT, m_pButtonDefault);
	DDX_Control(pDX, IDC_BUTTON_ALL, m_pButtonAll);
	DDX_Control(pDX, IDC_LIST_MANAGE_VIDEO, m_pListCtrl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CVideoManage_Dlg, CPropertyPage)
	//{{AFX_MSG_MAP(CVideoManage_Dlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST_MANAGE_VIDEO, OnClickListManageVideo)
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_BUTTON_DEFAULT, OnButtonDefault)
	ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVideoManage_Dlg message handlers

BOOL CVideoManage_Dlg::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();

	m_pListCtrl.ListSetInfo( m_pColumnTitle , sizeof(m_pColumnTitle)/sizeof(CString) );
	
	m_pListCtrl.SetColumnWidth(name_video_sub_id , 70 );

	//m_pButtonDefault.SetWindowText( TEXT("Default")  ); 
	//m_pButtonAll.SetWindowText( TEXT("All")  ); 

    LoadItemValue( FALSE ) ;

	SetItemControlContext() ;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BOOL CVideoManage_Dlg::OnSetActive() 
{
	
	LoadItemValue( FALSE ) ;

	AddStringList( &m_pListCtrl );
	
	//m_iItem = 0 ; 
	//m_iSubItem = size_video_sub_id ; 

	SetItemControlContext() ;

	return CPropertyPage::OnSetActive();
}


void CVideoManage_Dlg::ListInsertString(CManageListCtrl *lpList, int nItem )
{

	lpList->DeleteItem(  nItem );

	lpList->InsertItem(nItem, TEXT(""), 0);
	
	CString lpStr; 

	lpList ->ListAddString( m_pVideoDeviceName[nItem] , nItem,  name_video_sub_id );

	int iSubItem = name_video_sub_id+1 ;
	int iSubItemCount = (nItem == VideoManage_FileItem) ? 
                        VideoManage_FileSubItems : VideoManage_SubItems ; /* File*/

	for( ; iSubItem < iSubItemCount; iSubItem++)
	{
		lpStr = GetCurSubItemText( iSubItem , m_iItemValue [nItem][iSubItem ] )  ;

		lpList ->ListAddString( lpStr , nItem,  iSubItem );
	}

	lpList->SetCheck( nItem , nItem==m_iItem ); //check 

}

void CVideoManage_Dlg::AddStringList(CManageListCtrl *lpList ) 
{
	
	int nItem;

	lpList->DeleteAllItems( );
	
	for( nItem=0 ; nItem < VideoManage_Items ; nItem++)
	{		
		ListInsertString(lpList,  nItem );		
	}
	
}

void CVideoManage_Dlg::OnClickListManageVideo(NMHDR* pNMHDR, LRESULT* pResult) 
{

	NM_LISTVIEW* pNMList = (NM_LISTVIEW*)pNMHDR; *pResult = 0; 
	
	if( ( pNMList->iItem < 0 ) | ( pNMList->iItem >= m_pListCtrl.GetItemCount() ) ) return ;
	//if( ( pNMList->iItem < 0 ) | ( pNMList->iItem >= VideoManage_Items ) ) return ;

	if( m_iItem !=  pNMList->iItem ) return ; /* only one device */

	m_iItem =  pNMList->iItem ;  m_iSubItem = pNMList->iSubItem; 

	if( (m_iItem == VideoManage_FileItem) && 
		m_iSubItem >=VideoManage_FileSubItems) m_iSubItem = size_video_sub_id ; /*File*/

	SetItemControlContext() ;

	for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
	{
		m_pListCtrl.SetCheck( nItem , nItem==m_iItem ); //check 
	}

}

void CVideoManage_Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{

	if( m_iSubItem != name_video_sub_id ) 
	{
		
		//if( pScrollBar->GetDlgCtrlID() == IDC_SLIDER_ITEM ) 
		
		int iValue = m_pSliderItem.GetPos() * m_iItemStep ;
		
		if( m_iItemValue[ m_iItem ][ m_iSubItem ] != iValue )
		{
			m_pCurItemText = GetCurSubItemText( m_iSubItem , iValue )  ;
			
			m_pEditItem.SetWindowText( m_pCurItemText  ); 
			
			LoadSubItemValue( m_iItem, m_iSubItem, m_pCurItemText, iValue );
			
			SetItemControlContext( m_iItem, m_iSubItem, iValue ) ;

			SetVideoRegItemValue() ; 
		}
		
	}
	
	CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}


void CVideoManage_Dlg::OnButtonDefault() 
{
	
	if( m_iSubItem != name_video_sub_id ) 
	{
		
		int iValue = m_iItemValue[VideoManage_Items][m_iSubItem] ;
		
		m_pCurItemText = GetCurSubItemText( m_iSubItem , iValue )  ;
		
		m_pEditItem.SetWindowText( m_pCurItemText  ); 
		
		int nItem = m_iItem ; 
		//for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
		{		
			LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );

			SetItemControlContext( nItem, m_iSubItem, iValue ) ;
		}		
		m_pSliderItem.SetPos( iValue / m_iItemStep );

		SetVideoRegItemValue() ; 
	}
	
}

void CVideoManage_Dlg::OnButtonAll() 
{
	
	if( m_iSubItem != name_video_sub_id ) 
	{
		
		int iValue = m_iItemValue[m_iItem][m_iSubItem] ;
			
		m_pEditItem.SetWindowText( m_pCurItemText  ); 
		
		for( int nItem=0 ; nItem < VideoManage_Items ; nItem++)
		{		
			LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );

			SetItemControlContext( nItem, m_iSubItem, iValue ) ;
		}		
	
		SetVideoRegItemValue() ; 
	}	
}

CString CVideoManage_Dlg::GetCurSubItemText( int nSubItem , int iValue )
{
	
	CString lpStr; 

	switch( nSubItem )
	{
	case size_video_sub_id : 
		m_pVideoSizeNew = m_pVideoSize[iValue] ;
		lpStr.Format( TEXT("%d*%d") , m_pVideoSizeNew.cx, m_pVideoSizeNew.cy) ;
		break ;
	case standard_video_sub_id : 
		lpStr = m_pStandardText[iValue] ;
		break ;

	default : 
		lpStr.Format( TEXT("%d"), iValue ); 
		break ;
	}
	
	return lpStr ;
}

void CVideoManage_Dlg::SetItemControlContext()
{

	if( m_iSubItem == name_video_sub_id ) 
	{		
		m_pNameCtrl.SetWindowText( m_pVideoDeviceName[m_iItem] );
	}
	else
	{
		
		TCHAR lpCurItemText1[100+1] ; 
		
		m_pCurItemText = TEXT("") ; 
		if( m_pListCtrl.GetItemText( m_iItem, m_iSubItem ,  
			lpCurItemText1 , 100) != CB_ERR ) m_pCurItemText = lpCurItemText1 ; 
			
		m_pNameCtrl.SetWindowText( m_pVideoDeviceName[m_iItem] );

		m_pItemCtrl.SetWindowText( m_pColumnTitle[m_iSubItem] );	
		m_pEditItem.SetWindowText( m_pCurItemText  ); 

		m_iItemStep = 1; 
		switch( m_iSubItem )
		{
			
		case size_video_sub_id :  
			m_pSliderItem.SetRange( 0, 3, TRUE );
/*
#ifdef TM1300_APP
			m_pSliderItem.SetRange( 0, 1, TRUE );
#endif //TM1300_APP 
*/
			break ;
			
		case standard_video_sub_id :  
			m_pSliderItem.SetRange( 0, 4, TRUE ); break ;
			
		case source_video_sub_id :  
			m_pSliderItem.SetRange( 0, 3, TRUE ); break ;

		default :
			m_pSliderItem.SetRange( 0, 255, TRUE ); break ;
			
		}
		m_pSliderItem.SetPos( m_iItemValue[m_iItem][ m_iSubItem ] / m_iItemStep );
	
	}

}

void CVideoManage_Dlg::SetItemControlContext( int nItem, int nSubItem, int iValue )
{
	
	WPARAM wParam0 = 0 ;  

	switch( nSubItem )
	{

	case size_video_sub_id :  
		m_pVideoSizeNew = m_pVideoSize[iValue] ;
		wParam0 = WM_USER_VIDEO_SIZE ;
		break ;
	case standard_video_sub_id : 
		wParam0 = WM_USER_VIDEO_STANDARD ;
		break ;
	case source_video_sub_id : 
		wParam0 = WM_USER_VIDEO_PORT ;
		break ;

	case luma_video_sub_id : 
		wParam0 = WM_USER_VIDEO_LUMA ;
		break ;
	case chroma_video_sub_id : 
		wParam0 = WM_USER_VIDEO_CHROMA ;
		break ;
	case hue_video_sub_id : 
		wParam0 = WM_USER_VIDEO_HUE ;
		break ;
	case saturation_video_sub_id : 
		wParam0 = WM_USER_VIDEO_SATURATION ;
		break ;
	case contrast_video_sub_id : 
		wParam0 = WM_USER_VIDEO_CONTRAST ;
		break ;

	}

	if( wParam0 == WM_USER_VIDEO_SIZE ) 
		m_pApp->SendUserMessage( wParam0 , (LPARAM)&m_pVideoSizeNew ) ; 	
	else if( wParam0 != 0 )  
		m_pApp->SendUserMessage( wParam0 , iValue ) ;

}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -