パッケージ com.lmt.lib.bms.bemusic

クラス BeMusicHeader


  • public class BeMusicHeader
    extends Object
    Be Musicデータフォーマットのヘッダ定義を表します。

    当クラスではBmsContentからBe Musicの仕様に基づいてメタ情報を収集します。 収集するメタ情報はBeMusicMetaに定義されているメタ情報ですが、一部の特定アプリケーションのみが 対応しているマイナーなメタ情報や、時代遅れとなり使用されなくなったメタ情報は収集の対象外となります。 収集対象のメタ情報については当クラスが持つgetterのメソッドを参照してください。

    データ数の多い以下の索引付きメタ情報も収集することができます。

    アプリケーションによっては上記の索引付きメタ情報は冗長で必要ない場合が想定されます。 そのようなケースでは当クラスのインスタンス生成時に索引付きメタ情報の収集を除外することができます。

    アプリケーション側で収集するヘッダ情報を拡張したい場合は当クラスを継承し、onCreate(BmsContent, int)を オーバーライドすることでそれが可能になります。先述のメソッド内でBmsContentから希望するメタ情報を 抽出してください。

    • フィールドの詳細

      • NONE

        public static final int NONE
        ヘッダ定義構築時、フラグで情報収集有無を選択可能なメタ情報を全て収集しないことを示す値です。
        関連項目:
        定数フィールド値
      • ALL

        public static final int ALL
        ヘッダ定義構築時、当クラスがサポートする全てのヘッダ定義を収集することを示す値です。 この値は、現時点では関連項目に該当するフラグを全て含むことを表します。
        関連項目:
        WAV, BMP, BPM, STOP, SCROLL, TEXT, 定数フィールド値
      • FLAG_USER_AREA

        public static final int FLAG_USER_AREA
        ヘッダ定義収集フラグのユーザ定義領域を示すマスク値です。

        ヘッダ定義収集フラグのライブラリ定義値はフラグの下位16ビット分を使用するのに対し、ユーザ定義領域は 上位16ビットを使用して表現できます。将来のライブラリ拡張が行われても、ユーザ定義領域の上位16ビット分が 別の用途で使用されないことはライブラリとして保証します。

        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • BeMusicHeader

        public BeMusicHeader()
        空のヘッダ定義オブジェクトを構築します。

        このコンストラクタは当クラスを継承したヘッダクラスがof(BmsContent, Supplier) または of(BmsContent, int, Supplier) を使用してオブジェクトを構築する際に使用することを想定しています。

      • BeMusicHeader

        public BeMusicHeader​(BmsContent content)
        ヘッダ定義オブジェクトを構築します。

        このコンストラクタを使用した場合、当クラスがサポートする全てのヘッダ定義を抽出しようとします。 アプリケーションによっては不要な情報も多量に抽出し余分なオーバーヘッドがかかる場合がありますので、 抽出する情報を厳密に指定したい場合にはBeMusicHeader(BmsContent, int)を使用してください。

        BMSコンテンツは、BeMusicSpecを用いて生成されたBMS仕様に基づくものを指定してください。 それ以外のBMS仕様に基づいて生成されたBMSコンテンツを指定した場合の動作保証はありません。

        パラメータ:
        content - BMSコンテンツ
        例外:
        NullPointerException - contentがnull
      • BeMusicHeader

        public BeMusicHeader​(BmsContent content,
                             int flags)
        ヘッダ定義オブジェクトを構築します。

        このコンストラクタではパラメータのフラグを設定することで抽出するヘッダ定義の種類を指定することができます。 不要な情報を抽出したくない場合に使用してください。

        BMSコンテンツは、BeMusicSpecを用いて生成されたBMS仕様に基づくものを指定してください。 それ以外のBMS仕様に基づいて生成されたBMSコンテンツを指定した場合の動作保証はありません。

        パラメータ:
        content - BMSコンテンツ
        flags - ヘッダ定義収集フラグ
        例外:
        NullPointerException - contentがnull
        関連項目:
        WAV, BMP, BPM, STOP, SCROLL, TEXT, NONE, ALL
    • メソッドの詳細

      • getBase

        public final int getBase()
        #BASEを取得します。
        戻り値:
        #BASEの値
      • getPlayer

        public final BeMusicPlayer getPlayer()
        #PLAYERを取得します。
        戻り値:
        #PLAYERの値
      • getGenre

        public final String getGenre()
        #GENREを取得します。
        戻り値:
        #GENREの値
      • getTitle

        public final String getTitle()
        #TITLEを取得します。
        戻り値:
        #TITLEの値
      • getSubTitle

        public final String getSubTitle()
        #SUBTITLEを取得します。
        戻り値:
        #SUBTITLEの値
      • getArtist

        public final String getArtist()
        #ARTISTを取得します。
        戻り値:
        #ARTISTの値
      • getSubArtist

        public final String getSubArtist​(String separator)
        #SUBARTISTを取得します。
        パラメータ:
        separator - サブアーティストが複数定義されている場合の区切り文字列
        戻り値:
        #SUBARTISTの値
        例外:
        NullPointerException - separatorがnull
      • getSubArtists

        public final List<String> getSubArtists()
        #SUBARTISTを全て取得します。
        戻り値:
        #SUBARTISTのリスト
      • getInitialBpm

        public final double getInitialBpm()
        #BPM(初期BPM)を取得します。
        戻り値:
        #BPMの値
      • getDifficulty

        public final BeMusicDifficulty getDifficulty()
        #DIFFICULTYを取得します。
        戻り値:
        #DIFFICULTYの値
      • getChartName

        public final String getChartName()
        #CHARTNAMEを取得します。
        戻り値:
        #CHARTNAMEの値
      • getPlayLevelRaw

        public final String getPlayLevelRaw()
        #PLAYLEVELを取得します。
        戻り値:
        #PLAYLEVELの値
      • getPlayLevel

        public final double getPlayLevel()
        #PLAYLEVELの数値を取得します。

        元の値が数値書式でない場合、取得される値は0になります。

        戻り値:
        #PLAYLEVELを数値に変換した値
      • getRank

        public final BeMusicRank getRank()
        #RANKを取得します。
        戻り値:
        #RANKの値
      • getDefExRank

        public final Double getDefExRank()
        #DEFEXRANKを取得します。

        ヘッダに定義されていなかった場合、nullを返します。

        戻り値:
        #DEFEXRANKの値、またはnull
      • getTotal

        public final double getTotal()
        #TOTALを取得します。
        戻り値:
        #TOTALの値
      • getComment

        public final String getComment()
        #COMMENTを取得します。
        戻り値:
        #COMMENTの値
      • getBanner

        public final String getBanner()
        #BANNERを取得します。
        戻り値:
        #BANNERの値
      • getStageFile

        public final String getStageFile()
        #STAGEFILEを取得します。
        戻り値:
        #STAGEFILEの値
      • getBackBmp

        public final String getBackBmp()
        #BACKBMPを取得します。
        戻り値:
        #BACKBMPの値
      • getEyecatch

        public final String getEyecatch()
        #EYECATCHを取得します。
        戻り値:
        #EYECATCHの値
      • getPreview

        public final String getPreview()
        #PREVIEWを取得します。
        戻り値:
        #PREVIEWの値
      • getLnObjs

        public final List<Long> getLnObjs()
        #LNOBJを全て取得します。
        戻り値:
        #LNOBJのリスト
      • getLnMode

        public final BeMusicLongNoteMode getLnMode()
        #LNMODEを取得します。
        戻り値:
        #LNMODEの値
      • getUrl

        public final String getUrl()
        %URLを取得します。
        戻り値:
        %URLの値
      • getEmail

        public final String getEmail()
        %EMAILを取得します。
        戻り値:
        %EMAILの値
      • getWav

        public final String getWav​(int metaIndex)
        #WAVを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #WAVの値。インデックスに該当する値がない場合空文字。
      • getWavs

        public final Map<Integer,​String> getWavs()
        #WAVを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#WAVの値
      • getBmp

        public final String getBmp​(int metaIndex)
        #BMPを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #BMPの値。インデックスに該当する値がない場合空文字。
      • getBmps

        public final Map<Integer,​String> getBmps()
        #BMPを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#BMPの値
      • getBpm

        public final double getBpm​(int metaIndex)
        #BPMを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #BPMの値。インデックスに該当する値がない場合BmsSpec.BPM_DEFAULT
      • getBpms

        public final Map<Integer,​Double> getBpms()
        #BPMを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#BPMの値
      • getStop

        public final double getStop​(int metaIndex)
        #STOPを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #STOPの値。インデックスに該当する値がない場合0。
      • getStops

        public final Map<Integer,​Double> getStops()
        #STOPを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#STOPの値
      • getScroll

        public final double getScroll​(int metaIndex)
        #SCROLLを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #SCROLLの値。インデックスに該当する値がない場合0。
      • getScrolls

        public final Map<Integer,​Double> getScrolls()
        #SCROLLを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#SCROLLの値
      • getText

        public final String getText​(int metaIndex)
        #TEXTを取得します。
        パラメータ:
        metaIndex - メタ情報インデックス
        戻り値:
        #TEXTの値。インデックスに該当する値がない場合空文字。
      • getTexts

        public final Map<Integer,​String> getTexts()
        #TEXTを全て取得します。
        戻り値:
        メタ情報インデックスでマップされた#TEXTの値
      • of

        public static BeMusicHeader of​(BmsContent content,
                                       int flags)
        ヘッダ定義オブジェクトを構築します。

        当メソッドはBeMusicHeader(BmsContent, int)と同じ機能を提供します。

        パラメータ:
        content - BMSコンテンツ
        flags - ヘッダ定義収集フラグ
        戻り値:
        ヘッダ定義オブジェクト
        例外:
        NullPointerException - contentがnull
      • of

        public static <H extends BeMusicHeader> H of​(BmsContent content,
                                                     int flags,
                                                     Supplier<H> creator)
        ヘッダ定義オブジェクトを構築します。

        当メソッドはBeMusicHeaderを継承した拡張ヘッダクラスを構築しセットアップする仕組みを提供します。 creatorによって生成された拡張ヘッダ定義オブジェクトを指定BMSコンテンツでセットアップし、 onCreate(BmsContent, int)によって拡張情報を初期化します。

        型パラメータ:
        H - 拡張ヘッダクラス
        パラメータ:
        content - BMSコンテンツ
        flags - ヘッダ定義収集フラグ
        creator - 拡張ヘッダ定義オブジェクト生成関数
        戻り値:
        拡張ヘッダ定義オブジェクト
        例外:
        NullPointerException - contentがnull
        NullPointerException - creatorがnull
        NullPointerException - creatorがnullを返した
        関連項目:
        onCreate(BmsContent, int)
      • onCreate

        protected void onCreate​(BmsContent content,
                                int flags)
        ヘッダ定義オブジェクトが構築された時に実行されます。

        当メソッドが実行されるのはオブジェクトのベースクラスであるBeMusicHeaderの構築処理が完了した後です。 従って、クラスのGetterを使用することで抽出済みの情報にアクセス可能な状態となっています。

        当メソッドの意図は、ベースクラスを拡張したクラスにおいて自身が必要とする情報を構築する機会を提供する ことにあります。メソッドはコンストラクタの最後で実行され、当メソッドの実行が完了する時には全ての情報構築が 完了していることが推奨されています。

        パラメータ:
        content - BMSコンテンツ
        flags - ヘッダ定義収集フラグ