File indexing completed on 2024-04-14 04:37:59
0001 #pragma once 0002 0003 #include <QObject> 0004 #include <QAudioInput> 0005 #include <QFile> 0006 #include "controller.h" 0007 #include <QRandomGenerator> 0008 0009 class Controller; 0010 class AudioTranscribe : public QObject 0011 { 0012 Q_OBJECT 0013 Q_PROPERTY(Status status READ status NOTIFY transcribeStatusChanged) 0014 Q_ENUMS(Status) 0015 0016 public: 0017 //static AudioTranscribe* instance(); 0018 enum Status { 0019 Inactive, 0020 Active 0021 }; 0022 Status status() const; 0023 explicit AudioTranscribe(QObject *parent = nullptr); 0024 0025 public Q_SLOTS: 0026 void start(); 0027 void stop(); 0028 void generateRequestIdentifier(); 0029 QString getRequestIdentifier(); 0030 0031 Q_SIGNALS: 0032 void transcribeStatusChanged(); 0033 void responseReceived(const QString &response); 0034 void startRequested(); 0035 void endRequested(); 0036 void recordingStarted(); 0037 void recordingEnded(); 0038 void requestIdentifierGenerated(); 0039 0040 private: 0041 void onMainSocketMessageReceived(const QString &message); 0042 void startRecording(); 0043 void endRecording(); 0044 void sendData(); 0045 qint32 m_requestIdentifier; 0046 Controller *m_controller; 0047 QFile destinationFile; 0048 QAudioInput *m_audioInput; 0049 QIODevice *device; 0050 qint32 m_stage; 0051 };