Форум программистов, компьютерный форум CyberForum.ru

Перехват аудио потока - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, меняющую первую букву каждого слова на эту же букву верхнего регистра http://www.cyberforum.ru/cpp-beginners/thread758933.html
Дан массив из 10 строк по 80 символов, требуется заменить первую букву в каждом слове на эту же букву верхнего регистра(например: вводим "hello, world!", а вывести требуется "Hello, World!") Помогите пожалуйста, есть решение с помощью Char, но надо с помощью string. Помогиииите пожалуйста! могу дать свой код на редактуру
C++ Что-то не так с классом Решил попробовать себя в объектно-ориентированном программировании. Начал писать простую программку, но встретился с проблемой: не работает ничерта. Программа ещё не дописана, а ввод чисел не работает уже. Я понимаю, объяснение кривое, поэтому вот код, а чуть ниже результат (осторожно! быдлокод): #include <iostream> #include <string> using namespace std; class Notation { int radix;... http://www.cyberforum.ru/cpp-beginners/thread758929.html
Добавление в таблицу C++
Ночи доброй ;> Помогите с програмиой. Во входном потоке встречаются в произвольном порядке подцепочки a1a1+a1a1a1( a1 a1a1a1 … Выделить все такие подцепочки и включить их в таблицу в порядке убывания длин цепочек. Не получается осилить. Точнее, не успеваю. Через пару часов сдавать надо. Заранее спасибо.
Напишите программу, которая заполняет массив из 30 элементов случайными числами в диапазоне от 0 до 100, и выводит значения элементов массива на экран C++
2. Напишите программу, которая заполняет массив из 30 элементов случайными числами в диапазоне от 0 до 100, и выводит значения элементов массива на экран.
C++ Что означает const после круглых скобок функции http://www.cyberforum.ru/cpp-beginners/thread758921.html
всем привет. скажите, а что здесь значит const? int func(int var) const { return get; }
C++ Напишите программу, которая заполняет массив из 15 элементов. Данные вводятся с клавиатуры. 1. Напишите программу, которая заполняет массив из 15 элементов. Данные вводятся с клавиатуры. подробнее

Показать сообщение отдельно
Razangann
11 / 11 / 0
Регистрация: 11.01.2013
Сообщений: 135
12.01.2013, 19:53  [ТС]     Перехват аудио потока
Проблема как раз в том, что проект открыть не могу) Просто недавно сам начал изучать программирование, не многое понимаю ещё=) Открыл исходный код, закинул в .ccp, а к нему ещё что-то на подобии ресурсов же нужно?=) а то 75% кода Visual не воспринимает, и как я понял, Вы писали на паскале?=)

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#include <windows.h>
#include <stdio.h>
#include <math.h>
#include "bass.h"
 
#define SPECWIDTH 320   // display width
#define SPECHEIGHT 127  // height (changing requires palette adjustments too)
 
HINSTANCE inst;
HWND win=NULL;
DWORD timer=0;
 
DWORD chan;
 
HDC specdc=0;
HBITMAP specbmp=0;
BYTE *specbuf;
 
int specmode=0,specpos=0; // spectrum mode (and marker pos for 2nd mode)
 
/* display error messages */
void Error(char *es)
{
    char mes[200];
    sprintf(mes,"%s\n(error code: %d)",es,BASS_ErrorGetCode());
    MessageBox(win,mes,"Error",0);
}
 
 
 
/* update the spectrum display - the interesting bit :) */
void CALLBACK UpdateSpectrum(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
    static DWORD quietcount=0;
    HDC dc;
    int x,y,y1;
    float fft[1024]; // get the FFT data
    BASS_ChannelGetData(RECORDCHAN,fft,BASS_DATA_FFT2048);
 
    if (!specmode) 
    {
        memset(specbuf,0,SPECWIDTH*SPECHEIGHT);
        for (x=0;x<SPECWIDTH/2;x++) 
        {
    #if 1
            y=sqrt(fft[x+1])*3*SPECHEIGHT-4; // scale it (sqrt to make low values more visible)
#else
            y=fft[x+1]*10*SPECHEIGHT; // scale it (linearly)
#endif
            if (y>SPECHEIGHT) y=SPECHEIGHT; // cap it
            if (x && (y1=(y+y1)/2)) // interpolate from previous to make the display smoother
                while (--y1>=0) specbuf[y1*SPECWIDTH+x*2-1]=y1+1;
            y1=y;
            while (--y>=0) specbuf[y*SPECWIDTH+x*2]=y+1; // draw level
        }
    } else
    {
        for (x=0;x<SPECHEIGHT;x++)
        {
            y=sqrt(fft[x+1])*3*127; // scale it (sqrt to make low values more visible)
            if (y>127) y=127; // cap it
            specbuf[x*SPECWIDTH+specpos]=128+y; // plot it
        }
        // move marker onto next position
        specpos=(specpos+1)%SPECWIDTH;
        for (x=0;x<SPECHEIGHT;x++) specbuf[x*SPECWIDTH+specpos]=255;
    }
 
    // update the display
    dc=GetDC(win);
    BitBlt(dc,0,0,SPECWIDTH,SPECHEIGHT,specdc,0,0,SRCCOPY);
    if (LOWORD(BASS_ChannelGetLevel(RECORDCHAN))<3) 
    { // check if it's quiet
        quietcount++;
        if (quietcount>40 && (quietcount&16))
        { // it's been quiet for over a second
            RECT r={0,0,SPECWIDTH,SPECHEIGHT};
            SetTextColor(dc,0xffffff);
            SetBkMode(dc,TRANSPARENT);
            DrawText(dc,"make some noise!",-1,&r,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
        }
    } else
        quietcount=0; // not quiet
    ReleaseDC(win,dc);
}
 
// Recording callback - not doing anything with the data
BOOL CALLBACK DuffRecording(void *buffer, DWORD length, DWORD user)
{
    return TRUE; // continue recording
}
 
/* window procedure */
long FAR PASCAL SpectrumWindowProc(HWND h, UINT m, WPARAM w, LPARAM l)
{
    switch (m) 
    {
        case WM_PAINT:
            if (GetUpdateRect(h,0,0))
            {
                PAINTSTRUCT p;
                HDC dc;
                if (!(dc=BeginPaint(h,&p))) 
                    return 0;
                BitBlt(dc,0,0,SPECWIDTH,SPECHEIGHT,specdc,0,0,SRCCOPY);
                EndPaint(h,&p);
            }
            return 0;
 
        case WM_LBUTTONUP:
            specmode^=1; // swap spectrum mode
            memset(specbuf,0,SPECWIDTH*SPECHEIGHT); // clear display
            return 0;
 
        case WM_CREATE:
            win=h;
            // initialize BASS recording (default device)
            if (!BASS_RecordInit(-1))
            {
                Error("Can't initialize device");
                return -1;
            }
            // start recording (44100hz mono 16-bit)
            if (!BASS_RecordStart(44100,BASS_SAMPLE_MONO,&DuffRecording,0))
            {
                Error("Can't start recording");
                return -1;
            }
            { // create bitmap to draw spectrum in - 8 bit for easy updating :)
                BYTE data[2000]={0};
                BITMAPINFOHEADER *bh=(BITMAPINFOHEADER*)data;
                RGBQUAD *pal=(RGBQUAD*)(data+sizeof(*bh));
                int a;
                bh->biSize=sizeof(*bh);
                bh->biWidth=SPECWIDTH;
                bh->biHeight=SPECHEIGHT; // upside down (line 0=bottom)
                bh->biPlanes=1;
                bh->biBitCount=8;
                bh->biClrUsed=bh->biClrImportant=256;
                // setup palette
                for (a=1;a<128;a++)
                {
                    pal[a].rgbBlue=255-2*a;
                    pal[a].rgbGreen=2*a;
                }
                for (a=0;a<32;a++) 
                {
                    pal[128+a].rgbBlue=8*a;
                    pal[128+32+a].rgbBlue=255;
                    pal[128+32+a].rgbRed=8*a;
                    pal[128+64+a].rgbRed=255;
                    pal[128+64+a].rgbBlue=8*(31-a);
                    pal[128+64+a].rgbGreen=8*a;
                    pal[128+96+a].rgbRed=255;
                    pal[128+96+a].rgbGreen=255;
                    pal[128+96+a].rgbBlue=8*a;
                }
                // create the bitmap
                specbmp=CreateDIBSection(0,(BITMAPINFO*)bh,DIB_RGB_COLORS,&specbuf,NULL,0);
                specdc=CreateCompatibleDC(0);
                SelectObject(specdc,specbmp);
            }
            // setup update timer (40hz)
            timer=timeSetEvent(25,25,(LPTIMECALLBACK)&UpdateSpectrum,0,TIME_PERIODIC);
            break;
 
        case WM_DESTROY:
            if (timer) timeKillEvent(timer);
            BASS_RecordFree();
            if (specdc) DeleteDC(specdc);
            if (specbmp) DeleteObject(specbmp);
            PostQuitMessage(0);
            break;
    }
    return DefWindowProc(h, m, w, l);
}
 
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc={0};
    MSG msg;
 
    inst=hInstance;
 
    // check that BASS 1.8 was loaded
    if (BASS_GetVersion()!=MAKELONG(1,8))
    {
        MessageBox(0,"BASS version 1.8 was not loaded","Incorrect BASS.DLL",0);
        return 0;
    }
 
    // register window class and create the window
    wc.lpfnWndProc = SpectrumWindowProc;
    wc.hInstance = inst;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.lpszClassName = "BASS-Spectrum";
    if (!RegisterClass(&wc) || !CreateWindow("BASS-Spectrum","BASS \"live\" spectrum (click to toggle mode)",WS_POPUPWINDOW|WS_CAPTION|WS_VISIBLE, 200, 200,SPECWIDTH+2*GetSystemMetrics(SM_CXDLGFRAME),SPECHEIGHT+GetSystemMetrics(SM_CYCAPTION)+2*GetSystemMetrics(SM_CYDLGFRAME),NULL, NULL, inst, NULL))
    {
        Error("Can't create window");
        return 0;
    }
    ShowWindow(win, SW_SHOWNORMAL);
 
    while (GetMessage(&msg,NULL,0,0)>0) 
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return 0;
}
Вот код программы, где считывает с микрофона, как можно его подкоректировать для моего случая? =Ъ
P.S. Ознакомился по ближе с программой, она для XP? На 8ке не работает кажется=)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru