#ifndef DEVICESTATUSWIDGET_H #define DEVICESTATUSWIDGET_H #include #include #include struct ChannelStatus { QString name; bool connected; QString type; // input, output }; class DeviceStatusWidget : public QWidget { Q_OBJECT public: explicit DeviceStatusWidget(QWidget *parent = nullptr); ~DeviceStatusWidget(); void setChannelStatus(int channel, bool connected); void updateChannels(const QVector &channels); protected: void paintEvent(QPaintEvent *event) override; void resizeEvent(QResizeEvent *event) override; private: void setupUI(); void drawCableDiagram(QPainter &painter); void drawChannelIndicator(QPainter &painter, int x, int y, const QString &label, bool connected); QVector m_channels; QVector m_channelLabels; }; #endif // DEVICESTATUSWIDGET_H