summaryrefslogtreecommitdiffstats
path: root/sysfs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'sysfs.hpp')
-rw-r--r--sysfs.hpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/sysfs.hpp b/sysfs.hpp
new file mode 100644
index 0000000..290c97f
--- /dev/null
+++ b/sysfs.hpp
@@ -0,0 +1,55 @@
+/**
+ * Copyright © 2019 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+#include <experimental/filesystem>
+
+namespace phosphor
+{
+namespace led
+{
+class SysfsLed
+{
+ public:
+ SysfsLed(std::experimental::filesystem::path&& root) : root(std::move(root))
+ {
+ }
+ SysfsLed() = delete;
+ SysfsLed(const SysfsLed& other) = delete;
+
+ virtual ~SysfsLed() = default;
+
+ virtual unsigned long getBrightness();
+ virtual void setBrightness(unsigned long value);
+ virtual unsigned long getMaxBrightness();
+ virtual std::string getTrigger();
+ virtual void setTrigger(const std::string& trigger);
+ virtual unsigned long getDelayOn();
+ virtual void setDelayOn(unsigned long ms);
+ virtual unsigned long getDelayOff();
+ virtual void setDelayOff(unsigned long ms);
+
+ protected:
+ static constexpr char BRIGHTNESS[] = "brightness";
+ static constexpr char MAX_BRIGHTNESS[] = "max_brightness";
+ static constexpr char TRIGGER[] = "trigger";
+ static constexpr char DELAY_ON[] = "delay_on";
+ static constexpr char DELAY_OFF[] = "delay_off";
+
+ std::experimental::filesystem::path root;
+};
+} // namespace led
+} // namespace phosphor
OpenPOWER on IntegriCloud