#include "mainwindow.h" #include "ui_mainwindow.h" #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)//, buf(&tmp) { ui->setupUi(this); //avcodec_register_all(); QAudioFormat format; format.setSampleRate(44100); format.setChannelCount(2); //format.setFrequency(48000); //format.setChannels(2); format.setSampleSize(128000); format.setCodec("audio/pcm"); format.setByteOrder(QAudioFormat::LittleEndian); format.setSampleType(QAudioFormat::SignedInt); QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); if (!info.isFormatSupported(format)) format = info.nearestFormat(format); qDebug() << format; output=new QAudioOutput(format, this); out=output->start(); currentRadio = 0; nrj = new NRJ(this); connect(nrj, SIGNAL(setupFinished()), this, SLOT(setupFinished())); nrj->setupPlayer(); } MainWindow::~MainWindow() { delete ui; } void MainWindow::setupFinished() { int i = 0; foreach(Radio* r, nrj->getRadios()) { RadioWidget* w = new RadioWidget(); ui->layRadios->addWidget(w, i / 2, i % 2); connect(w, SIGNAL(clicked(Radio*)), this, SLOT(radioChanged(Radio*))); w->setRadio(r); ++i; } nrj->getAllCur(); } void MainWindow::radioChanged(Radio *r) { if(currentRadio != 0) { currentRadio->stopStream(); currentRadio->disconnect(this); } currentRadio = r; if(currentRadio != 0) { connect(currentRadio, SIGNAL(streamData(QByteArray)), this, SLOT(radioData(QByteArray))); currentRadio->startStream(); } } void MainWindow::radioData(QByteArray data) { out->write(data); //streamData.append(data); }