Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

mainwindow.cpp 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <yaml-cpp/yaml.h>
  4. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)//, buf(&tmp)
  5. {
  6. ui->setupUi(this);
  7. //avcodec_register_all();
  8. QAudioFormat format;
  9. format.setSampleRate(44100);
  10. format.setChannelCount(2);
  11. //format.setFrequency(48000);
  12. //format.setChannels(2);
  13. format.setSampleSize(128000);
  14. format.setCodec("audio/pcm");
  15. format.setByteOrder(QAudioFormat::LittleEndian);
  16. format.setSampleType(QAudioFormat::SignedInt);
  17. QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
  18. if (!info.isFormatSupported(format))
  19. format = info.nearestFormat(format);
  20. qDebug() << format;
  21. output=new QAudioOutput(format, this);
  22. out=output->start();
  23. currentRadio = 0;
  24. nrj = new NRJ(this);
  25. connect(nrj, SIGNAL(setupFinished()), this, SLOT(setupFinished()));
  26. nrj->setupPlayer();
  27. }
  28. MainWindow::~MainWindow()
  29. {
  30. delete ui;
  31. }
  32. void MainWindow::setupFinished()
  33. {
  34. int i = 0;
  35. foreach(Radio* r, nrj->getRadios())
  36. {
  37. RadioWidget* w = new RadioWidget();
  38. ui->layRadios->addWidget(w, i / 2, i % 2);
  39. connect(w, SIGNAL(clicked(Radio*)), this, SLOT(radioChanged(Radio*)));
  40. w->setRadio(r);
  41. ++i;
  42. }
  43. nrj->getAllCur();
  44. }
  45. void MainWindow::radioChanged(Radio *r)
  46. {
  47. if(currentRadio != 0)
  48. {
  49. currentRadio->stopStream();
  50. currentRadio->disconnect(this);
  51. }
  52. currentRadio = r;
  53. if(currentRadio != 0)
  54. {
  55. connect(currentRadio, SIGNAL(streamData(QByteArray)), this, SLOT(radioData(QByteArray)));
  56. currentRadio->startStream();
  57. }
  58. }
  59. void MainWindow::radioData(QByteArray data)
  60. {
  61. out->write(data);
  62. //streamData.append(data);
  63. }