Skip to content

File gpio.h#

File List > include > pisound-micro > gpio.h

Go to the documentation of this file

// SPDX-License-Identifier: LGPL-2.1-only
//
// libpisoundmicro - a utility library for Pisound Micro I/O expander capabilities.
// Copyright (c) 2017-2025 Vilniaus Blokas UAB, https://blokas.io/
//
// This file is part of libpisoundmicro.
//
// libpisoundmicro is free software: you can redistribute it and/or modify it under the terms of the
// GNU Lesser General Public License as published by the Free Software Foundation, version 2.1 of the License.
//
// libpisoundmicro is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
// for more details.
//
// You should have received a copy of the GNU Lesser General Public License along with libpisoundmicro. If not, see <https://www.gnu.org/licenses/>.

#ifndef PISOUND_MICRO_GPIO_H
#define PISOUND_MICRO_GPIO_H

#ifndef PISOUND_MICRO_H
#   error Please #include <pisound-micro.h>!
#endif

namespace upisnd
{

class UPISND_API Gpio : public Element
{
public:
    using Element::Element;

    static Gpio setupInput(ElementName name, upisnd_pin_t pin, upisnd_pin_pull_e pull);
    static Gpio setupOutput(ElementName name, upisnd_pin_t pin, bool high);

    upisnd_pin_direction_e getDirection() const;
    upisnd_pin_pull_e getPull() const;

    int get() const;

    int set(bool high);
};

} // namespace upisnd

#endif // PISOUND_MICRO_GPIO_H