Annotation of nono/vm/dipsw.h, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2022 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: //
        !             8: // DIPSW
        !             9: //
        !            10: 
        !            11: #pragma once
        !            12: 
        !            13: #include "device.h"
        !            14: 
        !            15: // DIPSW 共通クラス
        !            16: class DipswDevice : public Device
        !            17: {
        !            18:        using inherited = Device;
        !            19:  public:
        !            20:        DipswDevice(int sz_);
        !            21:        ~DipswDevice() override;
        !            22: 
        !            23:        // 総数を返す。
        !            24:        int GetSize() const { return dipsw.size(); }
        !            25: 
        !            26:        // DIPSW n 番の値を取得/設定する。
        !            27:        // true/false の割り当て方は機種依存。
        !            28:        bool Get(int n) const;
        !            29:        void Set(int n, bool val);
        !            30: 
        !            31:        // DIPSW n 番の物理位置を取得/設定する。0 が上、1が下。
        !            32:        // これは GUI 用なので、値の向きはスクロールバーの position に由来。
        !            33:        int GetPosition(int n) const;
        !            34:        void SetPosition(int n, int val);
        !            35: 
        !            36:  protected:
        !            37:        std::vector<bool> dipsw {};
        !            38: 
        !            39:        // 論理値と物理位置の対応。
        !            40:        // upside が true なら、上が true
        !            41:        // upside が false なら、上が false。
        !            42:        bool upside;
        !            43: };
        !            44: 
        !            45: // LUNA の DIPSW
        !            46: class LunaDipswDevice : public DipswDevice
        !            47: {
        !            48:        using inherited = DipswDevice;
        !            49:  public:
        !            50:        LunaDipswDevice();
        !            51:        ~LunaDipswDevice() override;
        !            52: 
        !            53:        bool Init() override;
        !            54: };
        !            55: 
        !            56: // NEWS の DIPSW
        !            57: class NewsDipswDevice : public DipswDevice
        !            58: {
        !            59:        using inherited = DipswDevice;
        !            60:  public:
        !            61:        NewsDipswDevice();
        !            62:        ~NewsDipswDevice() override;
        !            63: 
        !            64:        bool Init() override;
        !            65: };
        !            66: 
        !            67: static inline DipswDevice *GetDipswDevice() {
        !            68:        return Object::GetObject<DipswDevice>(OBJ_DIPSW);
        !            69: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.