Sayonara Player
AudioDataProvider.h
1 #ifndef AUDIODATAPROVIDER_H
2 #define AUDIODATAPROVIDER_H
3 
4 #include <QObject>
5 #include <QList>
6 
7 #include "Utils/Pimpl.h"
8 #include <gst/gst.h>
9 
10 class AudioDataProvider : public QObject
11 {
12  Q_OBJECT
13  PIMPL(AudioDataProvider)
14 
15 signals:
16  void sigSpectrumDataAvailable(const QList<float>& spectrum, MilliSeconds percent);
17  void sigFinished();
18  void sigStarted();
19 
20 public:
21  explicit AudioDataProvider(QObject* parent = nullptr);
22  ~AudioDataProvider() override;
23 
24  void setSpectrum(const QList<float>& spectrum, NanoSeconds clock_time);
25  GstElement* getAudioconverter() const;
26 
27  void start(const QString& filename);
28  void stop();
29 
30  uint binCount() const;
31  void setBinCount(uint num_bins);
32 
33  MilliSeconds intervalMs() const;
34  void setIntervalMs(MilliSeconds ms);
35 
36  int threshold() const;
37  void setThreshold(int threshold);
38 
39  void setSamplerate(uint samplerate);
40  uint samplerate() const;
41 
42  float frequency(int bin);
43 
44  bool isRunning() const;
45  void setRunning(bool b);
46 
47  bool isFinished(const QString& filename) const;
48  void setFinished(bool b);
49 };
50 
51 #endif // AUDIODATAPROVIDER_H
QList
Definition: EngineUtils.h:33
AudioDataProvider
Definition: AudioDataProvider.h:11