рефераты рефераты
Главная страница > Дипломная работа: Разработка программного обеспечения для голосового управления трехмерными моделями функционирования промышленных роботов  
Дипломная работа: Разработка программного обеспечения для голосового управления трехмерными моделями функционирования промышленных роботов
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Дипломная работа: Разработка программного обеспечения для голосового управления трехмерными моделями функционирования промышленных роботов

void BuildFormat(PCMWAVEFORMAT& fmt, DWORD dwFormat); protected:

virtual void DoDataExchange(CDataExchange* pDX);

virtual BOOL OnlnitDialogO;

afxmsg void OnSelchangeFormat();

afxmsg void OnClickedPlay();

afxjmsg void OnClickedRecordO;

afxmsg void OnClickedStop();

afxmsg void OnSelchangeSource();

virtual void OnCancel();

virtual void OnOK();

afxmsg void OnDrawItem(int nlDCtl, LPDRAW1TEMSTRUCT IpDrawItemStruct); afxmsg void OnMeasureItem(int rJDCtl, LPMEASUREITEMSTRUCT IpMeasureltemStruct); afxmsg void OnClickedOpenData(); afxmsg void OnUpdate();

afxmsg void OnHScroll(UTNT nSBCode, UINT nPos, CScrollBar* pScrollBar);

afx_msg void OnGraphicQ;

afxmsg void OnHamming();

afxmsg void OnFilterQ;

afxmsg void OnFurjeQ;

afx_msg void OnObrfurje();

afxmsg void OnClip();

DECLARE_MESSAGE_MAP()};

class CGraphicDlg: public CDialog

{public:

CWaveOutDevice* mjOutDev; CGraphicDlg(CWnd* pParent = NULL); enum { IDD = IDD GRAPHIC };

protected:

virtual void DoDataExchange(CDataExchange* pDX); protected:

afxmsg void OnGraphicQ; DECLAREMESS AGE_MAP()}; class CHammingDlg: public CDialog {public:

CWaveOutDevice* m_pOutDev; CHammingDlg(CWnd* pParent = NULL); enum {IDD = IDD HAMMING }; protected:

virtual void DoDataExchange(CDataExchange* pDX); protected:

afxmsg void OnHammingO; DECLAREMESSAGEMAPO); class CFurjeDlg. public CDialog {public:

CWaveOutDevice* m_pOutDev; CFurjeDlg(CWnd* pParent = NULL); enum {IDD = IDDFURJE }; protected:

virtual void DoDataExchange(CDataExchange* pDX); protected:

afxmsg void OnFurjeO; DECLAREMESSAGEMAPO}; class CObrFurjeDlg: public CDialog {public:

CWaveOutDevice* m_pOutDev; CObrFurjeDlg(CWnd* pParent = NULL); enum { IDD = IDD OBRFURJE }; protected:

virtual void DoDataExchange(CDataExchange* pDX); protected:

afxmsg void OnObrfurje(); DECLAREMESSAGEMAPO}; class CClipDlg. public CDialog {public:

CWaveOutDevice* m_pOutDev; CClipDlg(CWnd* pParent = NULL); enum { IDD = EDDCLIP }; protected:

virtual void DoDataExchange(CDataExchange* pDX);

ON_BN_CLICKED(IDC_GRAPHIC, OnGraphic) ON_BN_CLICKED(IDC_HAMMrNG, OnHamming) ON_BN_CLICKED(IDC_FILTER OnFilter) ON_BN_CLICKED(IDC_FURJE, OnFurje) ON_BN_CLICKED(IDC_OBRFURJE, OnObrfurje) ON_BN_CLICKED(IDC_CLIP, OnClip) END_MESSAGE_MAP() BOOL CRecordDlg::OnInitDialog()

void CRecordDlg::OnSelchangeFormatO

{OnClickedStopO;}

void CRecordDlg::OnClickedPIayO

{SetMode(PLAYING);

CClientDCdc(this);}

void CRecordDlg. OnClickedRecordO

{ SetMode(RECORDLNG);}

void CRecordDlg. OnClickedStopO

{SetMode(S AMPLING);}

void CRecordDlg::OnSelchangeSource()

{OnClickedStopO;

FillFormatListO;}

void CRecordDlg::OnCancelO

{ OnClickedStopO;

SetMode(IDLE);

mVU.DestroyWindowO;

if (m_pWave) {delete m_pWave;

m_pWave = NULL;}

CDialog::OnCancel();}

void CRecordDlg. OnOKO

{ OnClickedStopO;

SetMode(IDLE);

mVU.DestroyWindowO;

CDialog::OnOK();}

void CRecordDlg::FillDeviceList()

{miNumDevs = wavelnGetNumDevsO;

if (miNumDevs == 0) {

AfxMessageBox("There are no suitable input devices");

EndDialog(IDCANCEL);

return;}

if (m_pDevCaps) delete m_pDevCaps;

m_pDevCaps = new WAVEINCAPSfmiNumDevs];

m_cbSource.ResetContent();

for (int i=0; KmiNumDevs; i++) {

waveInGetDevCaps(i,&m_pDevCaps[i],sizeof(WAVEINCAPS)); m_pDevCaps[i].wMid = i;

m_cbSource.AddString((LPCSTR)&m_pDevCaps[i]);}

mcbSource. SetCurSel(0);}

void CRecordDlg.:FillFormatList()

{ mcbFormat.ResetContentO;

int iSel = m_cbSource.GetCurSel();

if(iSel = CBERR) return;

WAVEINCAPS* pCaps = (WAVEINCAPS*) m_cbSource.GetItemData(iSel);

ASSERT(pCaps);

DWORD dwMask = 0x00000001;

for(inti=0; i<12; i++) {

if (pCaps->dwFormats & dwMask) {

m_cbFormat.AddString((LPCSTR)dwMask);}

dwMask = dwMask « 1; }

mcbFormat. SetCurSel(O);}

void CRecordDlg.OnDrawItem(int nlDCtl, LPDRAWITEMSTRUCT pDI) {char* pszText = NULL; switch (nlDCtl) { case IDC_SOURCE: {

WAVEINCAPS* pCaps = (WAVEINCAPS*)(pDI->itemData); pszText = pCaps->szPname; } break;

case IDC FORMAT: { switch(pDI->itemData) { case WAVE_FORMAT_1M08: pszText = "11.025 kHz, 8 bit, mono"; break;

case WAVE_FORMAT_1S08: pszText = "11.025 kHz, 8 bit, stereo"; break;

case WAVE_FORMAT_lM16: pszText = "11.025 kHz, 16 bit, mono"; break;

case WAVE_F0RMAT_1S16. pszText = "22.05 kHz, 16 bit, stereo"; break;

case WAVE_FORMAT_2M08: pszText = "22.05 kHz, 8 bit, mono"; break;

case WAVE_FORMAT_2S08: pszText = "22.05 kHz, 8 bit, stereo"; break;

case WAVE_FORMAT_2M16: pszText = "22.05 kHz, 16 bit, mono"; break;

case WAVEJFORMATJ2S16. pszText = "22.05 kHz, 16 bit, stereo"; break;

case WAVEJ?ORMAT_4M08: pszText = "44.1 kHz, 8 bit, mono"; break;

case WAVE_FORMAT_4S08: pszText = "44.1 kHz, 8 bit, stereo"; break;

case WAVE_FORMAT_4M16: pszText = "44.1 kHz, 16 bit, mono"; break;

case WAVE_FORMAT_4S16:

pszText = "44.1 kHz, 16 bit, stereo";

break; default:

pszText = "Unknown";

break;} } break; default:

break;} if (IpszText) return;

: ^rawTextCpDI^hDC^szText.-L&CpDI^rcItem), DTLEFT | DTVCENTER); if (pDI->itemState & ODSSELECTED) {

::InvertRect(pDI->hDC, &(pDI->rcItem));} if (PDI->itemState & ODS_FOCUS) {

::DrawFocusRect(pDI->hDC, &(pDI->rdtem)); }}

void CRecordDlg::OnMeasureItem(int ruDCtl, LPMEASUREITEMSTRUCT lpMeasureltemStruct) { CClientDC dc (this);

TEXTMETRIC tm;

dc. GetTextMetrics(&tm);

lpMeasureItemStruct->itemHeight = tm.tmHeight;} void CRecordDlg::SetMode(MODE m) { CClientDC dc(this); if (m = miMode) return; if (m_pWave) m_pWave->Stop(); switch (miMode) {case SAMPLING: case RECORDING: mlnDev.ResetO; m_InDev.Close(); break; case PLAYING: break;

case OPEN:

break;}

miMode = IDLE;

switch (m) {case SAMPLING:

f                    case RECORDING.

{int iSel = m_cbSource.GetCurSel(); if(iSel = CBERR) return;

WAVEINCAPS* pCaps = (WAVEINCAPS*) m_cbSource.GetItemData(iSeI);

ASSERT(pCaps);

UINT uiBD = pCaps->wMid;

iSel = m_cbFormat.GetCurSel();

if(iSel == CBERR) return;

DWORD dwFormat = mcbFormat.GetltemData(iSel);

ASSERT(dwFormat);

PCMWAVEFORMAT fmt;

BuildFormat(fmt, dwFormat);

if (!m_InDev.Open(uiID, &fmt)) return;

if (m = SAMPLING) {

mSampleWave.DeleteAllO;

mSampleWave. Create(&frnt);

m_SampleWave.Record(&m_InDev, 1024,&m_NotifyObj); } else if (m — RECORDING) { if (!m_pWave) m_pWave = new CWave; ASSERT(m_pWave); mjpWave->Create(&fmt);

m_pWave->Record(&mJnDev,4096,&m_NotifyObj);}

case PLAYING, if (m_pWave) m_pWave->Play(NULL, &m_NotifyObj); break;

case OPEN.

if (m_pWave) m_pWave->OpenData(NULL, &m_NotifyObj,&dc); break;} miMode = m,

if ((mjMode = PLAYING) || (mjMode = RECORDING)! |(m_iMode btnStop.EnableWindow(TRUE);

} else {m_btnStop.EnableWindow(FALSE);}

if (mjMode = PLAYING) { m_btnPlay.EnableWindow(FALSE); } else {mbtnPlay.EnableWindow(TRUE);}

if (m_iMode = OPEN) {mbtnOpenData.EnableWindow(FALSE); } else {mbtnOpenData.EnableWindow(TRUE);} if (mjMode = RECORDING) {m_btnRecord.EnableWindow(FALSE); } else {m_btnRecord.EnableWindow(TRUE);}} void CRecordDlg::NewData(CWave *pWave, CWaveBlock* pBlock) { ASSERT(pWave); ASSERT(pBlock);

PCMWAVEFORMAT* pwf = (PCMWAVEFORMAT*) pWave->GetFormat(); ASSERT(pwf->wf.wFormatTag = WAVEFORMATPCM); int iCount = pBlock->GefNumSamples(); if (pwf->wBitsPerSample = 8) {

BYTE* pData = (BYTE*)pBlock->GetSamplesO; BYTE bMax - 0; while (iCount—) {

if (*pData > bMax) bMax = *pData; pData++;}

if (bMax < 128) { bMax = 0;} else {bMax -= 128;} m_VU.SetValue(bMax « 8, bMax « 8); } else {ASSERT(sizeof(short int) = 2); short int* pData = (short int*) pBlock->GetSamples(); int iMax = 0;

while (iCount—) {if (*pData > iMax) iMax = *pData;

pData++;} m_VU.SetValue(iMax, iMax);} if(m_iMode!= RECORDING) { pWave->GetBlockList()->FreeAll();}} void CRecordDlg::EndPlayback(CWave *pWave) { ASSERT(pWave); SetMode(SAMPLjrNG);}

void CRecordDlg::BuildFormat(PCMWAVEFORMAT& fmt, DWORD dwFormat) { ASSERT(dwFormat); fmt.wf.wFormatTag = WAVEFORMATPCM; switch (dwFormat) { case WAVE_FORMAT_1M08: fmt.wf.nChannels = 1; rmtwf.nSamplesPerSec = 11025; fmtwBitsPerSample = 8; break;

case WAVE_F0RMAT_1M16: fmt.wf.nChannels = 1; fmt.wf.nSamplesPerSec = 11025; fmt.wBitsPerSample = 16; break;

case WAVE_FORMAT_1S08: fmt.wf.nChannels = 2; fmt.wf.nSamplesPerSec = 11025; fmt.wBitsPerSample = 8; break;

case WAVE_F0RMAT_1S16: fmt.wf.nChannels = 2; fmtwf.nSamplesPerSec = 11025; fmt.wBitsPerSample = 16; break;

case WAVE_FORMAT_2M08: fmt.wf.nChannels = 1; fmt.wf.nSamplesPerSec = 22050; fmt.wBitsPerSample = 8; break;

case WAVE FORMAT 2M16 fmt.wf.nChannels = 1; fmt.wf.nSamplesPerSec = 22050; fmt.wBitsPerSample = 16; break;

case WAVE_FORMAT_2S08: fmt.wf.nChannels = 2; fmt.wf.nSamplesPerSec = 22050; fmt.wBitsPerSample = 8; break;

case WAVE_FORMAT_2S16: fmt.wfnChannels = 2; fmt.wf.nSamplesPerSec = 22050;

fmt.wBitsPerSatnple = 16; break;

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21

рефераты
Новости