barritas de canal que funcionan weeeee

This commit is contained in:
Hane 2023-02-15 12:40:43 +01:00
commit eaa935fb39
7 changed files with 52 additions and 18 deletions

View file

@ -15,28 +15,38 @@ LPWSTR Endpoint::getName(){
return friendlyName; return friendlyName;
} }
float Endpoint::getVolume(){ float Endpoint::getVolume(int channel){
float volume; float volume;
if (channel == ENDPOINT_MASTER_VOLUME) {
if(FAILED(endpointVolume->GetMasterVolumeLevelScalar(&volume))) { log_debugcpp("si");} if(FAILED(endpointVolume->GetMasterVolumeLevelScalar(&volume))) { log_debugcpp("si");}
} else {
if(FAILED(endpointVolume->GetChannelVolumeLevelScalar(channel, &volume))) { log_debugcpp("si");}
}
return volume; return volume;
} }
/* /*
* float Endpoint::getLeftChannelVolume(){ * float Endpoint::getLeftChannelVolume(){
* float volume; * float volume;
* if(FAILED(endpointVolume->GetMasterVolumeLevelScalar(&volume))) { log_debugcpp("si");} * if(FAILED(endpointVolume-> GetChannelVolumeLevelScalar(0, &volume)) { log_debugcpp("si"); } );
* return volume; * return volume;
* } * }
* *
* float Endpoint::getRightChannelVolume(){ * float Endpoint::getRightChannelVolume(){
* float volume; * float volume;
* if(FAILED(endpointVolume->GetMasterVolumeLevelScalar(&volume))) { log_debugcpp("si");} * if(FAILED(endpointVolume-> GetChannelVolumeLevelScalar(1, &volume)) { log_debugcpp("si");}
* return volume; * return volume;
* } * }
*/ */
void Endpoint::setVolume(float volume) {
void Endpoint::setVolume(int channel, float volume) {
if (channel == ENDPOINT_MASTER_VOLUME) {
if(FAILED(endpointVolume->SetMasterVolumeLevelScalar(volume, NULL))) { log_debugcpp("si"); }; if(FAILED(endpointVolume->SetMasterVolumeLevelScalar(volume, NULL))) { log_debugcpp("si"); };
} else {
if(FAILED(endpointVolume->SetChannelVolumeLevelScalar(channel, volume, NULL))) { log_debugcpp("si"); };
}
} }
Endpoint::~Endpoint(){ Endpoint::~Endpoint(){

View file

@ -23,8 +23,10 @@ class Endpoint {
public: public:
Endpoint(IMMDevice* endpoint); Endpoint(IMMDevice* endpoint);
void setVolume(float volume); void setVolume(int channel, float volume);
float getVolume(); /* float getLeftChannelVolume(); */
/* float getRightChannelVolume(); */
float getVolume(int channel);
LPWSTR getName(); LPWSTR getName();
~Endpoint(); ~Endpoint();

View file

@ -6,17 +6,21 @@ EndpointHandler::EndpointHandler(Endpoint *ept, QObject *parent) : QObject(paren
this->ept = ept; this->ept = ept;
eptName = QString::fromStdWString(ept->getName()); eptName = QString::fromStdWString(ept->getName());
} }
/*
void EndpointHandler::setValue(int value){ * -1 for master volume
ept->setVolume((float)value / 100); */
void EndpointHandler::setValue(int channel, int value){
if (channel == ENDPOINT_MASTER_VOLUME)
ept->setVolume(channel, (float)value / 100);
else ept->setVolume(channel, (float)value / 100);
} }
QString EndpointHandler::getName(){ QString EndpointHandler::getName(){
return eptName; return eptName;
} }
float EndpointHandler::getVolume(){ float EndpointHandler::getVolume(int channel){
return ept->getVolume(); return ept->getVolume(channel);
} }
Overseer* OverseerHandler::getOverseer(){ Overseer* OverseerHandler::getOverseer(){

View file

@ -9,7 +9,7 @@ class EndpointHandler : public QObject {
public: public:
EndpointHandler(Endpoint *ept, QObject *parent = nullptr); EndpointHandler(Endpoint *ept, QObject *parent = nullptr);
QString getName(); QString getName();
float getVolume(); float getVolume(int channel);
private: private:
Endpoint *ept; Endpoint *ept;
@ -17,7 +17,7 @@ private:
//QSlider *slidy; //QSlider *slidy;
public slots: public slots:
void setValue(int value); void setValue(int channel, int value);
//signals: //signals:

View file

@ -1,6 +1,11 @@
#pragma once #pragma once
//TODO enum capullo
#define ENDPOINT_MASTER_VOLUME -1
#define ENDPOINT_LEFT_CHANNEL_VOLUME 0
#define ENDPOINT_RIGHT_CHANNEL_VOLUME 1
//INIT BACK //INIT BACK
class OverseerHandler; class OverseerHandler;
extern OverseerHandler *osh; extern OverseerHandler *osh;

View file

@ -2,6 +2,7 @@
EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent) : QWidget(parent){ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent) : QWidget(parent){
this->eph = eph;
layout = new QGridLayout(); layout = new QGridLayout();
this->setLayout(layout); this->setLayout(layout);
log_debugcpp("olaW"); log_debugcpp("olaW");
@ -27,8 +28,14 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent) : QWidget(
rightChannelSlider->setSingleStep(1); rightChannelSlider->setSingleStep(1);
rightChannelSlider->setRange(0,100); rightChannelSlider->setRange(0,100);
float volume = eph->getVolume() * 100; float volume = eph->getVolume(ENDPOINT_MASTER_VOLUME) * 100;
mainSlider->setValue((int)volume); mainSlider->setValue((int)volume);
volume = eph->getVolume(ENDPOINT_LEFT_CHANNEL_VOLUME) * 100;
leftChannelSlider->setValue((int)volume);
leftChannelLabel->setText(QString::number(volume));
volume = eph->getVolume(ENDPOINT_RIGHT_CHANNEL_VOLUME) * 100;
rightChannelSlider->setValue((int)volume);
rightChannelLabel->setText(QString::number(volume));
log_debugcpp("ENDPOINT SET WITH VOLUME " << volume); log_debugcpp("ENDPOINT SET WITH VOLUME " << volume);
layout->addWidget(mainLabel, 0, 0); layout->addWidget(mainLabel, 0, 0);
@ -40,7 +47,12 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent) : QWidget(
layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 3, 0); layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 3, 0);
layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 3, 1); layout->addItem(new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding), 3, 1);
connect(mainSlider, &QSlider::valueChanged, eph, &EndpointHandler::setValue); /*
* connect(mainSlider, &QSlider::valueChanged, eph, &EndpointHandler::setValue);
*/
connect(mainSlider, &QSlider::valueChanged, [this](int newValue){this->eph->setValue(ENDPOINT_MASTER_VOLUME, newValue); });
connect(leftChannelSlider, &QSlider::valueChanged, [this](int newValue){ this->eph->setValue(ENDPOINT_LEFT_CHANNEL_VOLUME, newValue); this->leftChannelLabel->setText(QString::number(newValue)); });
connect(rightChannelSlider, &QSlider::valueChanged, [this](int newValue){ this->eph->setValue(ENDPOINT_RIGHT_CHANNEL_VOLUME, newValue); this->rightChannelLabel->setText(QString::number(newValue)); });
log_debugcpp("ENDPOINT_WIDGETED"); log_debugcpp("ENDPOINT_WIDGETED");
} }

View file

@ -22,6 +22,7 @@ public:
//void setEndpointHandlers(std::vector<EndpointHandler*> *ephs); //void setEndpointHandlers(std::vector<EndpointHandler*> *ephs);
private: private:
EndpointHandler* eph;
QLabel *mainLabel = nullptr, *leftChannelLabel = nullptr, *rightChannelLabel = nullptr; QLabel *mainLabel = nullptr, *leftChannelLabel = nullptr, *rightChannelLabel = nullptr;
QSlider *mainSlider = nullptr; QSlider *mainSlider = nullptr;
QSlider *leftChannelSlider = nullptr; QSlider *leftChannelSlider = nullptr;