#ifndef GSTREAMERPIPELINEWIDGET_H #define GSTREAMERPIPELINEWIDGET_H #include #include #include #include #include #include "socketclient.h" class GStreamerPipelineWidget : public QWidget { Q_OBJECT public: explicit GStreamerPipelineWidget(SocketClient* socketClient, QWidget *parent = nullptr); private slots: void onSetPipeline(); void onStartStream(); void onStopStream(); void onGetStatus(); void onPipelinePresetChanged(int index); void onQuickStart(); void onFormatsReceived(const QJsonObject& response); private: void setupUI(); void updateStatus(const QString& status, bool streaming); void setFormatAndPipeline(); void fetchAvailableFormats(); SocketClient* m_socketClient; QTextEdit* m_pipelineEdit; QPushButton* m_setPipelineBtn; QPushButton* m_startStreamBtn; QPushButton* m_stopStreamBtn; QPushButton* m_getStatusBtn; QPushButton* m_quickStartBtn; QLabel* m_statusLabel; QLabel* m_infoLabel; QComboBox* m_pipelinePresets; QComboBox* m_formatCombo; }; #endif // GSTREAMERPIPELINEWIDGET_H