/** * 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 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