当前位置:  技术问答>linux和unix

有分了--高分求救:Linux下如何将声卡输出的声音以波形显示出来?

    来源: 互联网  发布时间:2016-03-11

    本文导语:  我想作成一个类似于win下的播放器的波形条上下跳动的效果? 怎么来采集实时频率信号呀?原理是什么呀? 多谢了! | 这是我做这方面画波形的一段代码,仅供参考。 CDC * pDC   = CDC::Fro...

我想作成一个类似于win下的播放器的波形条上下跳动的效果?
怎么来采集实时频率信号呀?原理是什么呀?
多谢了!

|
这是我做这方面画波形的一段代码,仅供参考。

CDC * pDC   = CDC::FromHandle( lpDrawItemStruct -> hDC );
int erg = pDC->SelectClipRgn(&ShapeDCRegion);

CRect rect = lpDrawItemStruct -> rcItem;
UINT state = lpDrawItemStruct -> itemState;
UINT nStyle = GetStyle( );

int nSavedDC = pDC -> SaveDC( );

COLORREF backcolor = GetSysColor(COLOR_BTNFACE);

CBrush brush;
CMemDC *memDC = new CMemDC(pDC);
CFile myFileW;
CFile myFile;
RECT clipRect;

if(initalized == TRUE)
{
memDC->GetClipBox(&clipRect);
memDC->FillSolidRect(&clipRect,backcolor);

CFont *oldFont;
// int xp, yp, xx, yy;
int xp, yp;
orgBrushOrigin = memDC->GetBrushOrg();
oldFont = memDC->SelectObject(&smallFont);

double scale = (double)TGSize.cy / (double)MaxTrafficAmount;

yp = TrafficDrawRectangle.bottom;
xp = TrafficDrawRectangle.left;

// RECT fillrect;

CString tmp;

// Fill the background
back = memDC->GetBkColor();
brush.CreateSolidBrush(black);//back);
memDC->FillRect(&TrafficDrawRectangle, &brush);

// draw the grid
int xgridlines, ygridlines;

xgridlines = TGSize.cx / gridxresolution;
ygridlines = TGSize.cy / gridyresolution;
CPen* oldPen = memDC->SelectObject(&GridPen);
// Create the vertical lines
for (int x=0; xMoveTo(x*gridxresolution + gridxstartpos, 0 );
memDC->LineTo(x*gridxresolution + gridxstartpos, TGSize.cy );
}
// And the horizontal lines
for (int y=0; yMoveTo(0 , gridystartpos + TGSize.cy - y*gridyresolution - 2);
memDC->LineTo(TGSize.cx , gridystartpos + TGSize.cy - y*gridyresolution - 2);
}

gridxstartpos += gridscrollxspeed;//Grid Move speed
gridystartpos += gridscrollyspeed;
if(gridxstartpos  gridxresolution ) gridxstartpos = 0;
if(gridystartpos  gridyresolution ) gridystartpos = 0;

if (lpDrawItemStruct->CtlID == 1001)
{
CString str;
int temp=0;
if ((myFileW.Open("Rstd.txt",CFile::modeRead)))
{
// Create a loading archive.
myFileW.SeekToBegin();
CArchive arLoadW(&myFileW, CArchive::load);

CPen* oldPenW = memDC->SelectObject(&StadPen );

for (int iw=0; iwMoveTo(iw, 15-temp);
}

arLoadW.ReadString( str );
temp = atoi(str);
memDC->LineTo(iw, 15-temp);
}
arLoadW.Close();
myFileW.Close();
}
if ((myFile.Open("dbOutRight.txt",CFile::modeRead)))
{
// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);

CPen* oldPen1 = memDC->SelectObject(&WavePen);

for (int i=0; iMoveTo(i, 15-temp);
}

arLoad.ReadString( str );
temp = atoi(str);
memDC->LineTo(i, 15-temp);
}
arLoad.Close();
myFile.Close();
}
}
else
{
CString str;
int temp=0;
if ((myFileW.Open("Lstd.txt",CFile::modeRead)))
{
// Create a loading archive.
myFileW.SeekToBegin();
CArchive arLoadW(&myFileW, CArchive::load);

CPen* oldPenW = memDC->SelectObject(&StadPen );

for (int iw=0; iwMoveTo(iw, 15-temp);
}

arLoadW.ReadString( str );
temp = atoi(str);
memDC->LineTo(iw, 15-temp);
}
arLoadW.Close();
myFileW.Close();
}
if ((myFile.Open("dbOutLeft.txt",CFile::modeRead)))
{
// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);

CPen* oldPen1 = memDC->SelectObject(&WavePen);

for (int i=0; iMoveTo(i, 15-temp);
}

arLoad.ReadString( str );
temp = atoi(str);
memDC->LineTo(i, 15-temp);
}
arLoad.Close();
myFile.Close();
}
}
}
delete memDC;
pDC -> RestoreDC( nSavedDC );

|
老渠,我来接分了

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • Linux下无法启动apache 高分求救!在线等待
  • Solaris操作系统在启动的时候出错,急急救命呀 高分求救~~~
  • 高分求救!!!(200)我回多问相同问题来给分的,急急急
  • 高分求救!一个随机数产生的问题
  • 高分求救:有关内嵌汇编!!急!!!
  • 高分求救!jar文件直接双击运行的问题!
  • 大虾们谁有linux desktop 3.0(红旗)的序列号呀,高分求救!500
  • 高分求救:关于gnome/gtk+的问题
  • 高分在线求救!!!
  • 高分求救,关于jbuilder编程
  • 高分求救:简单问题
  • 为做需拟主机,单机架设DNS高分求救
  • 求救,帮忙,谢谢,高分相送!
  • linux 高分求救
  • 高分求救:我的solaris8如何进行网络配置?解决立即送分!
  • 高分求救:Linux下如何改变Ramdisk大小!急!!在线等待!!!
  • 高分求救!!基于http协议的代理图片显示不了
  • 高分求救,请教各位大侠!!!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3