#ifndef HOPPER_H #define HOPPER_H /** Represents a hopper. The system contains four of these, two at the * bottom, and two at the top. */ #include "alarm.h" #include "usb_port.h" #include using namespace std; class Hopper // FIXME Derive from LogicBoardDevice? { public: /// FIXME Would it be better to pass a reference to LogicBoard? /// Otherwise when we construct LogicBoardDevices, we need to pass the /// correct UsbPort subtype every time. /// FIXME Is it correct to pass a pointer rather than reference? Hopper(string, string, UsbPort*); //Hopper(string,string); bool get_alarm(); unsigned char get_level(unsigned char); void get_status(unsigned char); // usbio_hopper_status private: enum heights{top, bottom}; enum sides{left, right}; bool alarm; int coins; // FIXME From legacy code: //#define HOPPER_LOWER_LEFT 1 //#define HOPPER_LOWER_RIGHT 0 //#define HOPPER_UPPER_RIGHT 2 //#define HOPPER_UPPER_LEFT 3 UsbPort* usbport; int legacy_num; int lift_coin_count; // From GAME_DATA, what is it? bool low; string height; // e.g. "top", "bottom" string side; // e.g. "right", "left"} }; #endif