--- nono/host/driver.h 2026/04/29 17:05:26 1.1.1.3 +++ nono/host/driver.h 2026/04/29 17:06:02 1.1.1.7 @@ -22,11 +22,11 @@ class Driver : public Object static const int NODATA = -1; protected: - Driver(HostDevice *hostdev_, const char *drivername_); + Driver(HostDevice *hostdev_, const std::string& drivername_); public: ~Driver() override; - virtual bool InitDriver(); + virtual bool InitDriver(bool startup = true); // ドライバ固有の Dispatch。 udata を返す。 // 必要に応じて udata を変更しても良い。 @@ -36,15 +36,27 @@ class Driver : public Object // モニタのうちドライバ依存部分の情報を書き出す。 // screen のうち y行目から2行のみがドライバ依存部分なので // ここだけ書き出すこと。不要なら書き出さなくてよい。Clear() しないこと。 - virtual void MonitorUpdateMD(TextScreen& screen, int y); + virtual void MonitorScreenMD(TextScreen& screen, int y); // ドライバ名を取得。 - const char *GetDriverName() const { return drivername; } + const std::string& GetDriverName() const { return drivername; } + + // 親ホストデバイス(基本クラス)を取得。 + HostDevice *GetHostDev() const { return hostdev; } + + // InitDriver() 中の(主に最後の)エラーメッセージ。 + // 各ドライバはエラーが発生しても各自で warnx による表示は基本的にせず、 + // ここにエラーメッセージをセットする。必要になった時点で HostDevice が + // 最後の一つを warnx() で表示する。 + // なお、おそらくそれだけでは大抵何も分からないのでこれとは別に + // ログレベル 1 で putmsg() は充実させておくこと。 + std::string errmsg {}; protected: // 親ホストデバイス HostDevice *hostdev {}; - // ドライバ名 ("None" とか) - const char *drivername {}; + // ドライバ名 ("none" とか)。 + // 設定ファイルに合わせてすべて小文字。 + std::string drivername {}; };