Changeset 651 for trunk/examples/multimedia/audioinput/audioinput.cpp
- Timestamp:
- Mar 8, 2010, 12:52:58 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.6.2 (added) merged: 650 /branches/vendor/nokia/qt/current merged: 649 /branches/vendor/nokia/qt/4.6.1 removed
- Property svn:mergeinfo changed
-
trunk/examples/multimedia/audioinput/audioinput.cpp
r561 r651 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 20 09Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation (qt-info@nokia.com) … … 53 53 #define BUFFER_SIZE 4096 54 54 55 AudioInfo::AudioInfo(QObject * parent, QAudioInput*device)56 :QIODevice( parent)55 AudioInfo::AudioInfo(QObject *parent, QAudioInput *device) 56 :QIODevice(parent) 57 57 { 58 58 input = device; … … 91 91 m_maxValue = 0; 92 92 93 qint16 *s = (qint16*)data;93 qint16 *s = (qint16*)data; 94 94 95 95 // sample format is S16LE, only! 96 96 97 for (int i=0;i<samples;i++) {97 for (int i = 0; i < samples; ++i) { 98 98 qint16 sample = *s; 99 99 s++; 100 if (abs(sample) > m_maxValue) m_maxValue = abs(sample);100 if (abs(sample) > m_maxValue) m_maxValue = abs(sample); 101 101 } 102 102 // check for clipping 103 if(m_maxValue>=(maxAmp-1)) clipping = true; 103 if (m_maxValue >= (maxAmp - 1)) 104 clipping = true; 104 105 105 106 float value = ((float)m_maxValue/(float)maxAmp); 106 if(clipping) m_maxValue = 100; 107 else m_maxValue = (int)(value*100); 107 if (clipping) 108 m_maxValue = 100; 109 else 110 m_maxValue = (int)(value*100); 108 111 109 112 emit update(); … … 133 136 134 137 painter.setPen(Qt::black); 135 painter.drawRect(QRect(painter.viewport().left()+10, painter.viewport().top()+10, 136 painter.viewport().right()-20, painter.viewport().bottom()-20)); 137 138 if(level == 0) 138 painter.drawRect(QRect(painter.viewport().left()+10, 139 painter.viewport().top()+10, 140 painter.viewport().right()-20, 141 painter.viewport().bottom()-20)); 142 if (level == 0) 139 143 return; 140 144 … … 142 146 143 147 int pos = ((painter.viewport().right()-20)-(painter.viewport().left()+11))*level/100; 144 int x1,y1,x2,y2; 145 for(int i=0;i<10;i++) { 146 x1 = painter.viewport().left()+11; 147 y1 = painter.viewport().top()+10+i; 148 x2 = painter.viewport().left()+20+pos; 149 y2 = painter.viewport().top()+10+i; 150 if(x2 < painter.viewport().left()+10) 148 for (int i = 0; i < 10; ++i) { 149 int x1 = painter.viewport().left()+11; 150 int y1 = painter.viewport().top()+10+i; 151 int x2 = painter.viewport().left()+20+pos; 152 int y2 = painter.viewport().top()+10+i; 153 if (x2 < painter.viewport().left()+10) 151 154 x2 = painter.viewport().left()+10; 152 155 153 painter.drawLine(QPoint(x1, y1),QPoint(x2,y2));156 painter.drawLine(QPoint(x1, y1),QPoint(x2, y2)); 154 157 } 155 158 } … … 172 175 deviceBox = new QComboBox(this); 173 176 QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput); 174 for(int i = 0; i < devices.size(); ++i) {177 for(int i = 0; i < devices.size(); ++i) 175 178 deviceBox->addItem(devices.at(i).deviceName(), qVariantFromValue(devices.at(i))); 176 } 177 connect(deviceBox, SIGNAL(activated(int)),SLOT(deviceChanged(int)));179 180 connect(deviceBox, SIGNAL(activated(int)), SLOT(deviceChanged(int))); 178 181 layout->addWidget(deviceBox); 179 182 180 183 button = new QPushButton(this); 181 184 button->setText(tr("Click for Push Mode")); 182 connect(button, SIGNAL(clicked()),SLOT(toggleMode()));185 connect(button, SIGNAL(clicked()), SLOT(toggleMode())); 183 186 layout->addWidget(button); 184 187 185 188 button2 = new QPushButton(this); 186 189 button2->setText(tr("Click To Suspend")); 187 connect(button2, SIGNAL(clicked()),SLOT(toggleSuspend()));190 connect(button2, SIGNAL(clicked()), SLOT(toggleSuspend())); 188 191 layout->addWidget(button2); 189 192 … … 211 214 if(format.sampleSize() != 16) { 212 215 qWarning()<<"audio device doesn't support 16 bit samples, example cannot run"; 216 audioInput = 0; 217 button->setDisabled(true); 218 button2->setDisabled(true); 213 219 return; 214 220 } 215 221 216 222 audioInput = new QAudioInput(format,this); 217 connect(audioInput, SIGNAL(notify()),SLOT(status()));218 connect(audioInput, SIGNAL(stateChanged(QAudio::State)),SLOT(state(QAudio::State)));223 connect(audioInput, SIGNAL(notify()), SLOT(status())); 224 connect(audioInput, SIGNAL(stateChanged(QAudio::State)), SLOT(state(QAudio::State))); 219 225 audioinfo = new AudioInfo(this,audioInput); 220 connect(audioinfo, SIGNAL(update()),SLOT(refreshDisplay()));226 connect(audioinfo, SIGNAL(update()), SLOT(refreshDisplay())); 221 227 audioinfo->start(); 222 228 audioInput->start(audioinfo); … … 251 257 button->setText(tr("Click for Pull Mode")); 252 258 input = audioInput->start(); 253 connect(input, SIGNAL(readyRead()),SLOT(readMore()));259 connect(input, SIGNAL(readyRead()), SLOT(readMore())); 254 260 pullMode = false; 255 261 } else { … … 264 270 // toggle suspend/resume 265 271 if(audioInput->state() == QAudio::SuspendedState) { 266 qWarning() <<"status: Suspended, resume()";272 qWarning() << "status: Suspended, resume()"; 267 273 audioInput->resume(); 268 274 button2->setText("Click To Suspend"); 269 275 } else if (audioInput->state() == QAudio::ActiveState) { 270 qWarning() <<"status: Active, suspend()";276 qWarning() << "status: Active, suspend()"; 271 277 audioInput->suspend(); 272 278 button2->setText("Click To Resume"); 273 279 } else if (audioInput->state() == QAudio::StoppedState) { 274 qWarning() <<"status: Stopped, resume()";280 qWarning() << "status: Stopped, resume()"; 275 281 audioInput->resume(); 276 282 button2->setText("Click To Suspend"); 277 283 } else if (audioInput->state() == QAudio::IdleState) { 278 qWarning() <<"status: IdleState";284 qWarning() << "status: IdleState"; 279 285 } 280 286 } … … 282 288 void InputTest::state(QAudio::State state) 283 289 { 284 qWarning() <<" state="<<state;290 qWarning() << " state=" << state; 285 291 } 286 292 … … 300 306 device = deviceBox->itemData(idx).value<QAudioDeviceInfo>(); 301 307 audioInput = new QAudioInput(device, format, this); 302 connect(audioInput, SIGNAL(notify()),SLOT(status()));303 connect(audioInput, SIGNAL(stateChanged(QAudio::State)),SLOT(state(QAudio::State)));308 connect(audioInput, SIGNAL(notify()), SLOT(status())); 309 connect(audioInput, SIGNAL(stateChanged(QAudio::State)), SLOT(state(QAudio::State))); 304 310 audioinfo->start(); 305 311 audioInput->start(audioinfo);
Note:
See TracChangeset
for help on using the changeset viewer.