📄 audiocodecmanage_dlg.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 + -