/*
 * Copyright (C) 2020-2021 Aloysius Indrayanto
 *
 * This file is part of the eCxx library, see LICENSE file for the license details.
 */


#ifndef INCLUDE_ECXX_PLATFORM_SPECIFIC_PIN_DDX_H
#error "this file cannot be included directly"
#endif
#undef INCLUDE_ECXX_PLATFORM_SPECIFIC_PIN_DDX_H


#ifndef ECXX_PLATFORM_DUMMY_PIN_DDX_H
#define ECXX_PLATFORM_DUMMY_PIN_DDX_H


namespace eCxx {


//
// A dummy direct digital configure, read, and write wrapper class
//
template <uint8_t PinN>
class PinDDX : public Uncopyable {
    public:
        inline PinDDX() = default;
        inline ~PinDDX() = default;

    public:
        inline void pinModeOutput() const
        {}

        inline void digitalWrite(bool /*bit*/) const
        {}

    public:
        inline void pinModeInput() const
        {}

        inline void pinModeInput(bool /*withPullUp*/) const
        {}

        inline bool digitalRead() const
        { return false; }
};


} // namespace eCxx


#endif
