diff --git a/modules/Default/Default.cpp b/modules/Default/Default.cpp index 856e86e..2429314 100644 --- a/modules/Default/Default.cpp +++ b/modules/Default/Default.cpp @@ -10,12 +10,17 @@ class Default : public ScreensaverPlugin { int fps() const override; void update() override; void render() override; + std::string version() const override; }; ScreensaverPlugin* create_instance() { return new Default; } +std::string Default::version() const { + return "1.0.0"; +} + int Default::fps() const { return 2; } diff --git a/modules/FadingRects/FadingRects.cpp b/modules/FadingRects/FadingRects.cpp index c6d4c32..83bf5da 100644 --- a/modules/FadingRects/FadingRects.cpp +++ b/modules/FadingRects/FadingRects.cpp @@ -40,6 +40,7 @@ class FadingRects : public ScreensaverPlugin { int fps() const override; void update () override; void render() override; + std::string version() const override; private: double _hue {0.0}; @@ -53,6 +54,10 @@ ScreensaverPlugin* create_instance() { return new FadingRects; } +std::string FadingRects::version() const { + return "1.1.0"; +} + int FadingRects::fps() const { return 20; } diff --git a/modules/Grid/Grid.cpp b/modules/Grid/Grid.cpp index b7275e0..da4f6a1 100644 --- a/modules/Grid/Grid.cpp +++ b/modules/Grid/Grid.cpp @@ -35,6 +35,7 @@ class Grid : public ScreensaverPlugin { int fps() const override; void update() override; void render() override; + std::string version() const override; private: size_t _h; @@ -109,6 +110,10 @@ void Grid::configure() { setup(_c, _r); } +std::string Grid::version() const { + return "1.0.0"; +} + int Grid::fps() const { return 30; } diff --git a/modules/Huey/Huey.cpp b/modules/Huey/Huey.cpp index 6dc8446..b084a4a 100644 --- a/modules/Huey/Huey.cpp +++ b/modules/Huey/Huey.cpp @@ -12,6 +12,7 @@ class Huey : public ScreensaverPlugin { int fps() const override; void update() override; void render() override; + std::string version() const override; private: double _hue {0}; @@ -21,6 +22,10 @@ ScreensaverPlugin* create_instance() { return new Huey; } +std::string Huey::version() const { + return "1.1.0"; +} + int Huey::fps() const { return 50; } diff --git a/modules/Whirling/Whirling.cpp b/modules/Whirling/Whirling.cpp index cc30ac8..4e64040 100644 --- a/modules/Whirling/Whirling.cpp +++ b/modules/Whirling/Whirling.cpp @@ -35,6 +35,7 @@ class Whirling : public ScreensaverPlugin { void update() override; void render() override; void configure() override; + std::string version() const override; private: std::vector knots; @@ -46,6 +47,10 @@ ScreensaverPlugin* create_instance() { return new Whirling; } +std::string Whirling::version() const { + return "1.0.0"; +} + int Whirling::fps() const { return 30; } diff --git a/src/main.cpp b/src/main.cpp index eacc390..ecf1c1a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,8 +41,9 @@ void print_help() { } void list_plugins() { - for (const std::string& name : sc::plugin::names()) { - std::cout << name << '\n'; + for (const auto& elem : sc::plugin::all()) { + + std::cout << elem.first << " (" << elem.second()->version() << ")\n"; } }