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

📄 runfir.cpp

📁 Intel开发的IPP库的应用例程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright(c) 1999-2006 Intel Corporation. All Rights Reserved.
//
*/

// RunFir.cpp : implementation of the CRunFir class.
// CRunFir class processes vectors by ippSP functions listed in
// CallIppFunction member function.
// See CRun & CippsRun classes for more information.
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ippsDemo.h"
#include "ippsDemoDoc.h"
#include "Histo.h"
#include "RunFir.h"
#include "ParmFirDlg.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CRunFir::CRunFir()
{
   m_pState = NULL;
}

CRunFir::~CRunFir()
{

}

BOOL CRunFir::Open(CFunc func) 
{
   if (!CippsRun::Open(func)) return FALSE;

   m_pDelay.Init(m_Func.DstType());

   m_InitName = "";
   m_FreeName = "";
   return TRUE;
}

CParamDlg* CRunFir::CreateDlg()
{
   return new CParmFirDlg;
}

void CRunFir::UpdateData(CParamDlg* parmDlg, BOOL save)
{
   CRunFirD::UpdateData(parmDlg,save);
   CParmFirDlg *pDlg = (CParmFirDlg*)parmDlg;
   if (save) {
      m_MR = pDlg->m_MR;
   } else {
      pDlg->m_MR = m_MR;
   }
}

void CRunFir::SetInitFreeNames()
{
   CString tapsTypeStr = CFunc::TypeToString(m_Func.BaseType()) + "_" + m_Func.TypeName();
   m_FreeName = "ippsFIRFree" + tapsTypeStr;
   if (((m_Func.BaseType()|PP_CPLX) == pp32sc) && 
      ((m_pDocTaps->GetVector()->Type()|PP_CPLX) == pp32fc))
      tapsTypeStr += m_pDocTaps->GetVector()->TypeString();
   m_InitName = (m_MR ? "ippsFIRMRInitAlloc" : "ippsFIRInitAlloc") + tapsTypeStr;
}

BOOL CRunFir::BeforeCall()
{
   CRunFirD::BeforeCall();

   SetInitFreeNames();

   IppStatus status = CallInit();
   IppErrorMessage(m_InitName, status);

   m_pDelay.Deallocate();
   if (status < 0) return FALSE;
   return TRUE;
}

BOOL CRunFir::AfterCall(BOOL bOk)
{
   IppStatus status = CallFree(); m_pState = NULL;
   IppErrorMessage(m_FreeName, status);
   return TRUE;
}

IppStatus CRunFir::CallInit()
{
   MATE_CALL(m_InitName, ippsFIRInitAlloc32s_16s32f, ((IppsFIRState32s_16s**)&m_pState,
      (const Ipp32f*)m_pTaps, m_tapsLen, (const Ipp16s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc32s_16s32f, ((IppsFIRState32s_16s**)&m_pState,
      (const Ipp32f*)m_pTaps, m_tapsLen, m_upFactor, m_upPhase,
      m_downFactor, m_downPhase, (const Ipp16s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc32sc_16sc, ((IppsFIRState32sc_16sc**)&m_pState,
      (const Ipp32sc*)m_pTaps, m_tapsLen, m_tapsFactor, (const Ipp16sc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc32sc_16sc, ((IppsFIRState32sc_16sc**)&m_pState,
      (const Ipp32sc*)m_pTaps, m_tapsLen, m_tapsFactor, m_upFactor,
      m_upPhase, m_downFactor, m_downPhase, (const Ipp16sc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc32sc_16sc32fc, ((IppsFIRState32sc_16sc**)&m_pState,
      (const Ipp32fc*)m_pTaps, m_tapsLen, (const Ipp16sc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc32sc_16sc32fc, ((IppsFIRState32sc_16sc**)&m_pState,
      (const Ipp32fc*)m_pTaps, m_tapsLen, m_upFactor, m_upPhase,
      m_downFactor, m_downPhase, (const Ipp16sc*)m_pDelay))

   MATE_CALL(m_InitName, ippsFIRInitAlloc_32s, ((IppsFIRState_32s**)&m_pState, (Ipp32s*)m_pTaps, m_tapsLen,
       (Ipp32s*)m_pDelay))

   MATE_CALL(m_InitName, ippsFIRInitAlloc_32f, ((IppsFIRState_32f**)&m_pState, (Ipp32f*)m_pTaps, m_tapsLen,
       (Ipp32f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc_32f, ((IppsFIRState_32f**)&m_pState, (Ipp32f*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp32f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc_32fc, ((IppsFIRState_32fc**)&m_pState, (Ipp32fc*)m_pTaps, m_tapsLen,
       (Ipp32fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc_32fc, ((IppsFIRState_32fc**)&m_pState, (Ipp32fc*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp32fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc32f_16s, ((IppsFIRState32f_16s**)&m_pState, (Ipp32f*)m_pTaps, m_tapsLen,
       (Ipp16s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc32f_16s, ((IppsFIRState32f_16s**)&m_pState, (Ipp32f*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp16s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc32fc_16sc, ((IppsFIRState32fc_16sc**)&m_pState, (Ipp32fc*)m_pTaps, m_tapsLen,
       (Ipp16sc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc32fc_16sc, ((IppsFIRState32fc_16sc**)&m_pState, (Ipp32fc*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp16sc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc_64f, ((IppsFIRState_64f**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       (Ipp64f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc_64f, ((IppsFIRState_64f**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp64f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc_64fc, ((IppsFIRState_64fc**)&m_pState, (Ipp64fc*)m_pTaps, m_tapsLen,
       (Ipp64fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc_64fc, ((IppsFIRState_64fc**)&m_pState, (Ipp64fc*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp64fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc64f_32f, ((IppsFIRState64f_32f**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       (Ipp32f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc64f_32f, ((IppsFIRState64f_32f**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp32f*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc64fc_32fc, ((IppsFIRState64fc_32fc**)&m_pState, (Ipp64fc*)m_pTaps, m_tapsLen,
       (Ipp32fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc64fc_32fc, ((IppsFIRState64fc_32fc**)&m_pState, (Ipp64fc*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp32fc*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc64f_32s, ((IppsFIRState64f_32s**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       (Ipp32s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRMRInitAlloc64f_32s, ((IppsFIRState64f_32s**)&m_pState, (Ipp64f*)m_pTaps, m_tapsLen,
       m_upFactor, m_upPhase, m_downFactor, m_downPhase,
       (Ipp32s*)m_pDelay))
   MATE_CALL(m_InitName, ippsFIRInitAlloc64fc_32sc, ((IppsFIRState64fc_32sc**)&m_pState, (Ipp64fc*)m_pTaps, m_tapsLen,

⌨️ 快捷键说明

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