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

📄 audiocodecmanage_dlg.cpp

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

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

// audiocodecmanage_dlg.cpp : implementation file
//

#include "stdafx.h"
#include "..\H265V.h"
#include "audiocodecmanage_dlg.h"

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

#include "AudioCodecManage_Dlg1.cpp"

/////////////////////////////////////////////////////////////////////////////
// CAudioCodecManage_Dlg property page

IMPLEMENT_DYNCREATE(CAudioCodecManage_Dlg, CPropertyPage)

CAudioCodecManage_Dlg::CAudioCodecManage_Dlg() : CPropertyPage(CAudioCodecManage_Dlg::IDD)
{
	//{{AFX_DATA_INIT(CAudioCodecManage_Dlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT

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

	LoadItemValue( TRUE ) ;

}

CAudioCodecManage_Dlg::~CAudioCodecManage_Dlg()
{
}

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


BEGIN_MESSAGE_MAP(CAudioCodecManage_Dlg, CPropertyPage)
	//{{AFX_MSG_MAP(CAudioCodecManage_Dlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST_MANAGE_AUDIO_CODEC, OnClickListManageAudioCodec)
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_BUTTON_DEFAULT, OnButtonDefault)
	ON_BN_CLICKED(IDC_BUTTON_ALL, OnButtonAll)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAudioCodecManage_Dlg message handlers

BOOL CAudioCodecManage_Dlg::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	m_pListCtrl.ListSetInfo( m_pColumnTitle , sizeof(m_pColumnTitle)/sizeof(CString) );

	m_pListCtrl.SetColumnWidth(name_audio_codec_sub_id , 80 );
	m_pListCtrl.SetColumnWidth(sps_audio_codec_sub_id , 80 ); 

	//m_pButtonDefault.ShowWindow( SW_HIDE );
	//m_pButtonAll.ShowWindow( SW_HIDE );

	//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 CAudioCodecManage_Dlg::OnSetActive() 
{

	LoadItemValue( FALSE ) ;

	AddStringList( &m_pListCtrl );

	//m_iItem = 0 ; 
	m_iSubItem = name_audio_codec_sub_id ; 

	SetItemControlContext() ;

	return CPropertyPage::OnSetActive();
}


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

	lpList->DeleteItem(  nItem );

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

	int iSubItem = name_audio_codec_sub_id+1 ;

	lpList ->ListAddString( m_pAudioCodecName[nItem] , nItem,  name_audio_codec_sub_id );

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

		lpList ->ListAddString( lpStr , nItem,  iSubItem );
	}
	
	lpList->SetCheck( nItem , nItem==m_iItem ); //check 

}


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

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


void CAudioCodecManage_Dlg::OnClickListManageAudioCodec(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 >= AudioCodecManage_Items ) ) return ;

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

	SetItemControlContext() ;

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


void CAudioCodecManage_Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	
	if( m_iSubItem != name_audio_codec_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 );
			
			SetAudioCodecRegItemValue() ;
		}
		
	}
	
	CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}


void CAudioCodecManage_Dlg::OnButtonDefault() 
{
	
	if( m_iSubItem != name_audio_codec_sub_id ) 
	{
		
		int iValue = m_iItemValue[AudioCodecManage_Items][ m_iSubItem ] ;
		
		m_pCurItemText = GetCurSubItemText( m_iSubItem , iValue )  ;
		
		m_pEditItem.SetWindowText( m_pCurItemText  ); 
		
		int nItem = m_iItem ;
		//for( nItem=0 ; nItem < AudioCodecManage_Items ; nItem++)
		{		
			LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );
		}
		
		m_pSliderItem.SetPos( iValue / m_iItemStep );

		SetAudioCodecRegItemValue() ;
		
	}
	
}

void CAudioCodecManage_Dlg::OnButtonAll() 
{
	
	if( m_iSubItem != name_audio_codec_sub_id ) 
	{
		
		int iValue = m_iItemValue[m_iItem][ m_iSubItem ] ;
			
		m_pEditItem.SetWindowText( m_pCurItemText  ); 
		
		for( int nItem=0 ; nItem < AudioCodecManage_Items ; nItem++)
		{		
			LoadSubItemValue( nItem, m_iSubItem, m_pCurItemText, iValue );
		}
		
		SetAudioCodecRegItemValue() ;
		
	}
	
}


CString CAudioCodecManage_Dlg::GetCurSubItemText( int nSubItem , int iValue )
{
	
	CString lpStr; lpStr.Format( TEXT("%d"), iValue ); 
	
	return lpStr ;
}

void CAudioCodecManage_Dlg::SetItemControlContext()
{

	if( m_iSubItem == name_audio_codec_sub_id ) 
	{
		m_pNameCtrl.SetWindowText( m_pAudioCodecName[m_iItem]  );
	}
	else 
	{
		
		TCHAR lpCurItemText1[200] ; 
		
		m_pCurItemText = TEXT("") ; 
		if( m_pListCtrl.GetItemText( m_iItem, m_iSubItem ,  
			lpCurItemText1 , 100) != CB_ERR ) m_pCurItemText = lpCurItemText1 ; 
			
		m_pNameCtrl.SetWindowText( m_pAudioCodecName[m_iItem]  );

		m_pItemCtrl.SetWindowText(m_pColumnTitleText[m_iSubItem]  );	
		m_pEditItem.SetWindowText( m_pCurItemText  ); 
		
		m_iItemStep = 1 ; 
		switch( m_iSubItem )
		{
						
		case bps_audio_codec_sub_id : m_iItemStep =4 ; /* bit rate */ 
			m_pSliderItem.SetRange( 4/m_iItemStep, 128/m_iItemStep, TRUE ) ; break ;

		case sps_audio_codec_sub_id :  m_iItemStep =1000 ;  /* sample rate */
			m_pSliderItem.SetRange( 8*1000/m_iItemStep, 48*1000/m_iItemStep, TRUE ) ; break ;
		
		case channels_audio_codec_sub_id :  /* channels */
			m_pSliderItem.SetRange( 1, 2, TRUE ) ; break ;
		
		case prp_audio_codec_sub_id :  /* previous process */
			m_pSliderItem.SetRange( 0, 3, TRUE ); break ;
		
		case pop_audio_codec_sub_id  :  /* post process */ 
			m_pSliderItem.SetRange( 0, 3, TRUE ); break ;
	
		}
		m_pSliderItem.SetPos( m_iItemValue[m_iItem][ m_iSubItem ] / m_iItemStep ) ;
		
	}
	
}

void CAudioCodecManage_Dlg::SetAudioCodec( void* lp_dap_ctx0 ) 
{

	dap_ctx* lp_dap_ctx = (dap_ctx*) lp_dap_ctx0 ;

	int nItem = lp_dap_ctx->wavelets ;
	
	lp_dap_ctx->bps = m_audio_bps(nItem)*1000 ; /* bits/second */ /* 8 ~~~ 256 kbit/s */

	//lp_dap_ctx->sps = m_audio_sps(nItem) ; /* samples/second */ /* 8k ~~~ 48k */
	//lp_dap_ctx->ch  = m_audio_channels(nItem) ; /* channels */ /* 1, 2 */

	lp_dap_ctx->prp = (int)(m_audio_prp(nItem)) ; /* previous process */ /* <0,1,2,3> */
	lp_dap_ctx->pop = (int)(m_audio_pop(nItem)) ; /* post process */ /* <0,1,2,3> */

}

void CAudioCodecManage_Dlg::SetAudioCodec1( void* lp_dap_ctx0 ) 
{

	dap_ctx* lp_dap_ctx = (dap_ctx*) lp_dap_ctx0 ;

	int nItem = 0 ;

	for( ; nItem < AudioCodecManage_Items ; nItem ++)
	{
		m_audio_sps(nItem)      = lp_dap_ctx->sps ;
		m_audio_channels(nItem) = lp_dap_ctx->ch ;
	}

	SetAudioCodecRegItemValue() ;

}


⌨️ 快捷键说明

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