From a565190e6f4acd81aec2a8638fef1c3433b86afa Mon Sep 17 00:00:00 2001 From: Hane Date: Sat, 12 Aug 2023 17:29:01 +0200 Subject: [PATCH] reverted failed attempt, fixed callback release --- src/back/backlasses.cpp | 2 +- src/back/backlasses.h | 1 - src/cont/contclasses.cpp | 23 +++++++++++++++-------- src/cont/contclasses.h | 13 +++++++++++-- src/qt/qtclasses.cpp | 18 ++++++------------ src/qt/qtclasses.h | 21 +++++++++++++++------ src/qtestmain.cpp | 3 +++ 7 files changed, 51 insertions(+), 30 deletions(-) diff --git a/src/back/backlasses.cpp b/src/back/backlasses.cpp index e56da14..36dc9bf 100644 --- a/src/back/backlasses.cpp +++ b/src/back/backlasses.cpp @@ -42,7 +42,7 @@ HRESULT EndpointCallback::OnNotify(PAUDIO_VOLUME_NOTIFICATION_DATA pNotify) { AUDIO_VOLUME_NOTIFICATION_DATA eventData = *pNotify; NGuid* guid = osh->getGuid(); - if (memcmp(guid, &eventData, sizeof(guid)) == 0) { + if (memcmp(guid, &eventData, sizeof(*guid)) == 0) { log_debugcpp("perlitas"); } else { log_debugcpp("Onnanokotify says Stored: " << guid->data1); diff --git a/src/back/backlasses.h b/src/back/backlasses.h index 3be9f2d..0176ebf 100644 --- a/src/back/backlasses.h +++ b/src/back/backlasses.h @@ -65,7 +65,6 @@ class EndpointCallback : public IAudioEndpointVolumeCallback { private: ULONG ref = 1; Endpoint* ep; - //PAUDIO_VOLUME_NOTIFICATION_DATA update; }; class Overseer { diff --git a/src/cont/contclasses.cpp b/src/cont/contclasses.cpp index 85bb2fb..1b58317 100644 --- a/src/cont/contclasses.cpp +++ b/src/cont/contclasses.cpp @@ -1,6 +1,9 @@ #include "backlasses.h" +#include "qtclasses.h" #include "contclasses.h" +//TODO: pragma once +//TODO: ????? Overseer OverseerHandler::os; EndpointHandler::EndpointHandler(uint64_t idx) { @@ -49,12 +52,12 @@ bool EndpointHandler::getMute(){ EndpointHandler::~EndpointHandler() { ep->removeCallback(epc); - delete epc; + epc->Release(); delete ep; } std::vector OverseerHandler::getPlaybackEndpoints() { - return os.getPlaybackEndpoints(); + return this->os.getPlaybackEndpoints(); } /* @@ -69,7 +72,7 @@ std::vector OverseerHandler::getEndpointHandlers(){ } uint64_t OverseerHandler::getPlaybackEndpointsCount(){ - return os.getPlaybackEndpoints().size(); + return this->os.getPlaybackEndpoints().size(); } void OverseerHandler::reloadEndpointHandlers(){ @@ -83,7 +86,6 @@ void OverseerHandler::reloadEndpointHandlers(){ this->endpointHandlers.at(i) != nullptr) delete endpointHandlers.at(i); - EndpointHandler* eph = new EndpointHandler(i); log_debugcpp("Created handler " << i << ", adding to vector. " << " VSize: " << this->getPlaybackEndpointsCount()); @@ -96,11 +98,16 @@ void OverseerHandler::reloadEndpointHandlers(){ NGuid* OverseerHandler::getGuid() { - return os.getGuid(); + return this->os.getGuid(); } - -void OverseerHandler::setEndpointHandlers(std::vector ews){ - this->endpointHandlers = ews; +void OverseerHandler::setEndpointHandlers(std::vector ephs){ + this->endpointHandlers = ephs; } +/* + * void OverseerHandler::setEndpointWidgets(std::vector ews){ + * this->endpointWidgets = ews; + * } + */ + diff --git a/src/cont/contclasses.h b/src/cont/contclasses.h index c7e7ecf..2a27a2e 100644 --- a/src/cont/contclasses.h +++ b/src/cont/contclasses.h @@ -1,5 +1,13 @@ #pragma once +/* #ifndef QTBLESSED */ +/* //#define Q_OBJECT */ +/* class QWidget{}; */ +/* class QMainWindow{}; */ +/* #endif */ + +/* class EndpointWidget; */ + class Endpoint; class EndpointCallback; class Overseer; @@ -45,7 +53,8 @@ class OverseerHandler { public: //OverseerHandler(); - void setEndpointHandlers(std::vector ews); + void setEndpointHandlers(std::vector ephs); + /* void setEndpointWidgets(std::vector ews); */ std::vector getEndpointHandlers(); std::vector getPlaybackEndpoints(); uint64_t getPlaybackEndpointsCount(); @@ -58,5 +67,5 @@ public: private: static Overseer os; std::vector endpointHandlers; - + /* std::vector endpointWidgets; */ }; diff --git a/src/qt/qtclasses.cpp b/src/qt/qtclasses.cpp index d675be1..9f10764 100644 --- a/src/qt/qtclasses.cpp +++ b/src/qt/qtclasses.cpp @@ -1,6 +1,5 @@ #include "qtclasses.h" - EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent) : QWidget(parent){ this->eph = eph; layout = new QGridLayout(); @@ -71,8 +70,6 @@ uint64_t EndpointWidget::getIndex(){ return idx; } - - MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // setWindowState(Qt::WindowFullScreen); // setCentralWidget(centralWidget); @@ -84,10 +81,11 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { //layout->addWidget(pintas, 0, 0); setWindowTitle("slidea resbala nu c"); + + reloadEndpointWidgets(); +} - /*s - * setEndpointHandlers(ephs); - */ +void MainWindow::reloadEndpointWidgets() { unsigned int i = 0; for (; i < (osh->getEndpointHandlers().size()); i++) { log_debugcpp("EPWidget creation"); @@ -95,15 +93,11 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ews.push_back(epw); layout->addWidget(epw, i, 0); } + //osh->setEndpointWidgets(ews); layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), i, 0); } -/* - * void MainWindow::setEndpointHandlers(std::vector *ephs){ - * this->ephs = ephs; - */ - - +//#include "qtclosemwh.h" /* * void MainWindow::setPlotButton() { diff --git a/src/qt/qtclasses.h b/src/qt/qtclasses.h index a543c25..0a18ac9 100644 --- a/src/qt/qtclasses.h +++ b/src/qt/qtclasses.h @@ -1,8 +1,8 @@ #pragma once + #ifndef MAINWINDOW_H #define MAINWINDOW_H -//#include #include #include #include @@ -10,12 +10,20 @@ #include #include -//#include "debug.h" +/* + * #else + * class QSlider; + * class QLabel; + * class QGridLayout; + * class QPushButton; + * class QWidget; + * class QMainWindow; + * #endif + */ + #include "global.h" #include "contclasses.h" -//#include -//#include - +//class EndpointHandler; class EndpointWidget : public QWidget { Q_OBJECT @@ -59,6 +67,8 @@ class MainWindow : public QMainWindow { public: MainWindow(QWidget *parent = nullptr); + void reloadEndpointWidgets(); + //TODO: destroy/empty existing EndpointWidgets //void setEndpointHandlers(std::vector *ephs); private: @@ -77,4 +87,3 @@ private: }; #endif - diff --git a/src/qtestmain.cpp b/src/qtestmain.cpp index 453cce6..15d18fc 100644 --- a/src/qtestmain.cpp +++ b/src/qtestmain.cpp @@ -2,9 +2,12 @@ //#include //#include + +//#define QTBLESSED #include #include +//#include "contclasses.h" #include "qtclasses.h" #include "global.h"