Skip to content

Commit

Permalink
core: allow specifying names for outputs
Browse files Browse the repository at this point in the history
  • Loading branch information
vaxerski committed Jul 1, 2024
1 parent 51cd6f4 commit 13f9411
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 24 deletions.
20 changes: 10 additions & 10 deletions include/aquamarine/backend/Backend.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,16 +66,16 @@ namespace Aquamarine {
AQ_BACKEND_CAPABILITY_POINTER = (1 << 0),
};

virtual eBackendType type() = 0;
virtual bool start() = 0;
virtual std::vector<Hyprutils::Memory::CSharedPointer<SPollFD>> pollFDs() = 0;
virtual int drmFD() = 0;
virtual bool dispatchEvents() = 0;
virtual uint32_t capabilities() = 0;
virtual void onReady() = 0;
virtual std::vector<SDRMFormat> getRenderFormats() = 0;
virtual std::vector<SDRMFormat> getCursorFormats() = 0;
virtual bool createOutput() = 0;
virtual eBackendType type() = 0;
virtual bool start() = 0;
virtual std::vector<Hyprutils::Memory::CSharedPointer<SPollFD>> pollFDs() = 0;
virtual int drmFD() = 0;
virtual bool dispatchEvents() = 0;
virtual uint32_t capabilities() = 0;
virtual void onReady() = 0;
virtual std::vector<SDRMFormat> getRenderFormats() = 0;
virtual std::vector<SDRMFormat> getCursorFormats() = 0;
virtual bool createOutput(const std::string& name = "") = 0; // "" means auto
};

class CBackend {
Expand Down
2 changes: 1 addition & 1 deletion include/aquamarine/backend/DRM.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ namespace Aquamarine {
virtual void onReady();
virtual std::vector<SDRMFormat> getRenderFormats();
virtual std::vector<SDRMFormat> getCursorFormats();
virtual bool createOutput();
virtual bool createOutput(const std::string& name = "");

Hyprutils::Memory::CWeakPointer<CDRMBackend> self;

Expand Down
2 changes: 1 addition & 1 deletion include/aquamarine/backend/Headless.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ namespace Aquamarine {
virtual void onReady();
virtual std::vector<SDRMFormat> getRenderFormats();
virtual std::vector<SDRMFormat> getCursorFormats();
virtual bool createOutput();
virtual bool createOutput(const std::string& name = "");

Hyprutils::Memory::CWeakPointer<CHeadlessBackend> self;

Expand Down
3 changes: 1 addition & 2 deletions include/aquamarine/backend/Wayland.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ namespace Aquamarine {
virtual void onReady();
virtual std::vector<SDRMFormat> getRenderFormats();
virtual std::vector<SDRMFormat> getCursorFormats();
virtual bool createOutput();
virtual bool createOutput(const std::string& name = "");

Hyprutils::Memory::CWeakPointer<CWaylandBackend> self;

Expand All @@ -142,7 +142,6 @@ namespace Aquamarine {
void initSeat();
void initShell();
bool initDmabuf();
void createOutput(const std::string& szName);

//
Hyprutils::Memory::CWeakPointer<CBackend> backend;
Expand Down
4 changes: 2 additions & 2 deletions src/backend/Headless.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ std::vector<SDRMFormat> Aquamarine::CHeadlessBackend::getCursorFormats() {
return {}; // No cursor support
}

bool Aquamarine::CHeadlessBackend::createOutput() {
auto output = SP<CHeadlessOutput>(new CHeadlessOutput(std::format("HEADLESS-{}", ++outputIDCounter), self.lock()));
bool Aquamarine::CHeadlessBackend::createOutput(const std::string& name) {
auto output = SP<CHeadlessOutput>(new CHeadlessOutput(name.empty() ? std::format("HEADLESS-{}", ++outputIDCounter) : name, self.lock()));
outputs.emplace_back(output);
output->swapchain = CSwapchain::create(backend->allocator, self.lock());
output->self = output;
Expand Down
10 changes: 3 additions & 7 deletions src/backend/Wayland.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,11 @@ int Aquamarine::CWaylandBackend::drmFD() {
return drmState.fd;
}

void Aquamarine::CWaylandBackend::createOutput(const std::string& szName) {
auto o = outputs.emplace_back(SP<CWaylandOutput>(new CWaylandOutput(szName, self)));
bool Aquamarine::CWaylandBackend::createOutput(const std::string& szName) {
auto o = outputs.emplace_back(SP<CWaylandOutput>(new CWaylandOutput(szName.empty() ? std::format("WAYLAND-{}", ++lastOutputID) : szName, self)));
o->self = o;
idleCallbacks.emplace_back([this, o]() { backend->events.newOutput.emit(SP<IOutput>(o)); });
return true;
}

std::vector<Hyprutils::Memory::CSharedPointer<SPollFD>> Aquamarine::CWaylandBackend::pollFDs() {
Expand Down Expand Up @@ -431,11 +432,6 @@ std::vector<SDRMFormat> Aquamarine::CWaylandBackend::getCursorFormats() {
return dmabufFormats;
}

bool Aquamarine::CWaylandBackend::createOutput() {
createOutput(std::format("WAYLAND-{}", ++lastOutputID));
return true;
}

Aquamarine::CWaylandOutput::CWaylandOutput(const std::string& name_, Hyprutils::Memory::CWeakPointer<CWaylandBackend> backend_) : backend(backend_) {
name = name_;

Expand Down
2 changes: 1 addition & 1 deletion src/backend/drm/DRM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ std::vector<SDRMFormat> Aquamarine::CDRMBackend::getCursorFormats() {
return {};
}

bool Aquamarine::CDRMBackend::createOutput() {
bool Aquamarine::CDRMBackend::createOutput(const std::string&) {
return false;
}

Expand Down

0 comments on commit 13f9411

Please sign in to comment.