Joystick.java
     1: //========================================================================================
     2: //  Joystick.java
     3: //    en:Joystick
     4: //    ja:ジョイスティック
     5: //  Copyright (C) 2003-2023 Makoto Kamada
     6: //
     7: //  This file is part of the XEiJ (X68000 Emulator in Java).
     8: //  You can use, modify and redistribute the XEiJ if the conditions are met.
     9: //  Read the XEiJ License for more details.
    10: //  https://stdkmd.net/xeij/
    11: //========================================================================================
    12: 
    13: package xeij;
    14: 
    15: import java.awt.event.*;  //KeyEvent
    16: import javax.swing.*;  //JComponent
    17: 
    18: //class Joystick
    19: //  ジョイスティック
    20: public abstract class Joystick {
    21: 
    22:   protected static final int DELAY_MIN = 10;  //最小連射開始時間(ms)
    23:   protected static final int DELAY_MAX = 1000;  //最大連射開始時間(ms)
    24:   protected static final int DELAY_STEP = 10;  //連射開始時間の増分(ms)
    25:   protected static final int INTERVAL_MIN = 10;  //最小連射間隔(ms)
    26:   protected static final int INTERVAL_MAX = 2000;  //最大連射間隔(ms)
    27:   protected static final int INTERVAL_STEP = 10;  //最大連射の増分(ms)
    28: 
    29:   protected int number;  //枝番号
    30:   protected String id;  //識別子
    31:   protected String nameEn;  //英語名
    32:   protected String nameJa;  //日本語名
    33:   protected JComponent configurationPanel;  //設定パネル
    34: 
    35:   //new Joystick ()
    36:   //  コンストラクタ
    37:   public Joystick () {
    38:     configurationPanel = null;
    39:   }
    40: 
    41:   //configurationPanel = getConfigurationPanel ()
    42:   //  設定パネルを返す。初回は作る
    43:   public JComponent getConfigurationPanel () {
    44:     if (configurationPanel != null) {
    45:       return configurationPanel;
    46:     }
    47:     return configurationPanel = new JPanel ();
    48:   }
    49: 
    50:   //tini ()
    51:   //  後始末
    52:   public void tini () {
    53:   }
    54: 
    55:   //reset ()
    56:   //  リセット。設定パネルが表示されるとき呼び出される
    57:   public void reset () {
    58:   }
    59: 
    60:   //id = getId ()
    61:   //  識別子を返す。パラメータで使う
    62:   public String getId () {
    63:     return id;
    64:   }
    65: 
    66:   //nameEn = getNameEn ()
    67:   //  英語名を返す。ジョイスティックポート設定ウインドウに表示される
    68:   public String getNameEn () {
    69:     return nameEn;
    70:   }
    71: 
    72:   //nameJa = getNameEn ()
    73:   //  日本語名を返す。ジョイスティックポート設定ウインドウに表示される
    74:   public String getNameJa () {
    75:     return nameJa;
    76:   }
    77: 
    78:   //input (ke, pressed)
    79:   //  キー入力イベントを処理する
    80:   //  ke  キーイベント
    81:   //  pressed  false=離された,true=押された
    82:   public boolean input (KeyEvent ke, boolean pressed) {
    83:     return false;
    84:   }
    85: 
    86:   //setPin6 (pin6)
    87:   //  ピン6を変更する
    88:   //  pin6  ピン6
    89:   public void setPin6 (int pin6) {
    90:   }
    91: 
    92:   //setPin7 (pin7)
    93:   //  ピン7を変更する
    94:   //  pin7  ピン7
    95:   public void setPin7 (int pin7) {
    96:   }
    97: 
    98:   //setPin8 (pin8)
    99:   //  ピン8を変更する
   100:   //  pin8  ピン8
   101:   public void setPin8 (int pin8) {
   102:   }
   103: 
   104:   //d = readByte ()
   105:   //  ポートから読み出す
   106:   //  d  値。0~255
   107:   public int readByte () {
   108:     return 0xff;
   109:   }
   110: 
   111:   //writeByte (d)
   112:   //  ポートへ書き込む
   113:   //  d  値。0~255
   114:   public void writeByte (int d) {
   115:   }
   116: 
   117: }  //class Joystick