4.4. ISMCBBuilder

added in version 1.12.0

メロディスピーカー制御用コマンドを生成する機能を提供します。

本インターフェイスは、メロディスピーカーに対応しているモデルまたはFVP10専用です。 対応しているモデルは 対応外部機器 を参照ください。

  • プロパティ

    名称

    説明

    commands

    生成、追加されたコマンド列です。

  • メソッド

    名称

    説明

    appendSoundWithSetting

    メロディスピーカーに登録されたサウンドを再生するコマンドを生成し、コマンドバッファに追加します。

    appendSoundWithSound

    引数で指定されたサウンドデータを再生するコマンドを生成し、コマンドバッファに追加します。

警告

メロディスピーカー以外を接続してこれらのメソッドを使用しないでください。正常動作しない場合や、プリンターおよび外部機器本体が破損する恐れがあります。

4.4.1. SMCBSoundStorageArea

added in version 1.12.0

サウンド格納領域指定定数です。

  • 宣言

    typedef NS_ENUM(NSUInteger, SMCBSoundStorageArea) {
        SMCBSoundStorageArea1,
        SMCBSoundStorageArea2
    };
    

定数に対応するサウンド格納領域は以下の通りです。

MelodySpeakerModel

定数

サウンド格納領域

StarIoExtMelodySpeakerModelMCS10

SMCBSoundStorageArea1
SMCBSoundStorageArea2
サウンド格納領域1
サウンド格納領域2

StarIoExtMelodySpeakerModelFVP10

SMCBSoundStorageArea1
SMCBSoundStorageArea2
デフォルトエリア
ユーザーエリア

4.4.2. commands

added in version 1.12.0

コマンドバッファ(生成したコマンド)を取得します。

  • 宣言

    @property (nonatomic, readonly) NSMutableData *commands;
    
  • 引数

    なし

  • 戻り値

    説明

    コマンドバッファ(生成したコマンド)

    NSMutableData *

4.4.3. appendSoundWithSetting

added in version 1.12.0

メロディスピーカーに登録されたサウンドを再生するコマンドを生成し、コマンドバッファに追加します。

  • 宣言

    - (void)appendSoundWithSetting:(nullable SMSoundSetting *)setting error:(nullable NSError **)error;
    
  • 引数

    名称

    説明

    setting

    再生するサウンドの設定情報(サウンド格納領域、サウンド番号など)

    SMSoundSetting

    error

    コマンド生成に失敗した際のエラー情報

    NSError *

    setting引数に設定可能なパラメータは以下のとおりです。

    StarIoExtMelodySpeakerModel

    プロパティ

    説明

    設定可能パラメータ

    デフォルト(未指定時の動作)

    StarIoExtMelodySpeakerModelMCS10

    soundStorageArea

    サウンド格納領域

    SMCBSoundStorageArea1

    MCS10本体のディップスイッチ設定を使用

    SMCBSoundStorageArea2

    soundNumber

    サウンド番号

    0 - 7

    MCS10本体のディップスイッチ設定を使用

    volume

    音量

    0 – 15

    MCS10本体のディップスイッチ設定を使用

    SMSoundSettingVolumeOff

    SMSoundSettingVolumeMax

    SMSoundSettingVolumeMin

    StarIoExtMelodySpeakerModelFVP10

    soundStorageArea

    サウンド格納領域

    SMCBSoundStorageArea1

    SMCBSoundStorageArea1

    SMCBSoundStorageArea2

    soundNumber

    サウンド番号

    1 - 255 1

    count

    回数

    1 - 65535 1

    delay

    ディレイ時間(1秒単位)

    0 - 65535 0

    interval

    インターバル時間(1秒単位)

    0 - 65535 0

    soundStorageArea プロパティと soundNumber プロパティに指定するパラメータの組み合わせにより再生されるサウンドは以下のとおりです。

    StarIoExtMelodySpeakerModel

    soundStorageArea

    soundNumber

    再生されるサウンド

    StarIoExtMelodySpeakerModelMCS10

    SMCBSoundStorageArea1

    0

    サウンド 1

    1

    サウンド 2

    2

    サウンド 3

    3

    サウンド 4

    4

    サウンド 5

    5

    サウンド 6

    6

    サウンド 7

    7

    サウンド 8

    SMCBSoundStorageArea2

    0

    サウンド 9

    1

    サウンド 10

    2

    サウンド 11

    3

    サウンド 12

    4

    サウンド 13

    5

    サウンド 14

    6

    サウンド 15

    7

    サウンド 16

    StarIoExtMelodySpeakerModelFVP10

    SMCBSoundStorageArea1

    1 - 255

    デフォルトエリアの指定されたサウンド番号に格納されたサウンド

    SMCBSoundStorageArea2

    1 - 255

    ユーザーエリアの指定されたサウンド番号に格納されたサウンド

  • 戻り値

    なし

  • エラーコード

    説明

    SMResultCodeInvalidArgument

    以下のいずれか
    1. 指定されたモデルでは設定できないプロパティが設定されている場合
    2. soundStorageArea プロパティ と soundNumber プロパティ のどちらか一方のみが設定されている場合

    SMResultCodeArgumentOutOfRange

    設定可能範囲外のパラメータが指定されている場合

  • 実装例

    + (NSData *)createPlayingRegisteredSound:(StarIoExtMelodySpeakerModel)model
                                specifySound:(BOOL)specifySound
                            soundStorageArea:(SMCBSoundStorageArea)soundStorageArea
                                soundNumber:(NSInteger)soundNumber
                                specifyVolume:(BOOL)specifyVolume
                                    volume:(NSInteger)volume
                                        error:(NSError * _Nullable * _Nullable) error {
        ISMCBBuilder *builder = [StarIoExt createMelodySpeakerCommandBuilder:model];
    
        SMSoundSetting *setting = [SMSoundSetting new];
    
        if (specifySound == YES) {
        [setting setSoundStorageArea:soundStorageArea];
        [setting setSoundNumber:soundNumber];
        }
    
        if (specifyVolume == YES) {
        [setting setVolume:volume];
        }
    
        [builder appendSoundWithSetting:setting error:error];
    
        if (*error != nil) {
        return nil;
        }
    
        return [builder.commands copy];
    }
    

    MelodySpeakerFunctions.m を参照ください。

4.4.4. appendSoundWithSound

added in version 1.12.0

引数で指定されたサウンドデータを再生するコマンドを生成し、コマンドバッファに追加します。

警告

本メソッドはFVP10( StarIoExtMelodySpeakerModelFVP10 )非対応です。

  • 宣言

    - (void)appendSoundWithSound:(nonnull NSData *)data (nullable SMSoundSetting *)setting error:(nullable NSError **)error;
    
  • 引数

    名称

    説明

    data

    サウンドデータ

    NSData *

    setting

    再生するサウンドの設定情報(サウンド格納領域、サウンド番号など)

    SMSoundSetting

    error

    コマンド生成に失敗した際のエラー情報

    NSError *

    data引数に設定可能な対応サウンドフォーマットは以下のとおりです。

    項目

    サウンドファイルフォーマット

    WAV

    WAVファイルフォーマット

    リニアPCM

    サンプリングレート

    12800Hz

    ビット深度

    16bit または 8bit

    チャンネル

    モノラル

    再生時間

    ビット深度16bitの場合 ... 5秒以内
    ビット深度8bitの場合 ... 10秒以内

    1. 本パッケージ同梱のStar Sound Converterアプリケーションを利用することで、サウンドファイルのフォーマットを対応サウンドフォーマット表のフォーマットに変換できます。 詳細は"Others/StarSoundConverter/(Mac or Windows)/Documents"フォルダ内の"FileFormatList_jp.htm"を参照ください。

    setting引数に設定可能なパラメータは以下のとおりです。

    プロパティ

    説明

    設定可能パラメータ

    デフォルト(未指定時の動作)

    volume

    音量

    0 – 15
    SMSoundSettingVolumeOff
    SMSoundSettingVolumeMax
    SMSoundSettingVolumeMin

    MCS10本体のディップスイッチ設定を使用

  • 戻り値

    なし

  • エラーコード

    説明

    StarIoExtErrorFormatError

    対応サウンドフォーマット以外のデータが入力された場合

    SMResultCodeInvalidArgument

    指定されたモデルでは設定できないプロパティが設定されている場合

    SMResultCodeArgumentOutOfRange

    設定可能範囲外のパラメータが指定されている場合

    StarIoExtErrorInvalidOperation

    StarIoExtMelodySpeakerModelFVP10 指定時に本メソッドが呼ばれた場合

  • 実装例

    + (NSData *)createPlayingReceivedData:(StarIoExtMelodySpeakerModel)model
                                filePath:(NSString *)filePath
                            specifyVolume:(BOOL)specifyVolume
                                    volume:(NSInteger)volume
                                    error:(NSError * _Nullable * _Nullable)error {
        ISMCBBuilder *builder = [StarIoExt createMelodySpeakerCommandBuilder:model];
    
        SMSoundSetting *setting = [SMSoundSetting new];
    
        NSURL *fileUrl = [[NSURL alloc] initWithString:filePath];
    
        NSData *fileData = [[NSData alloc] initWithContentsOfURL:fileUrl];
    
        if (specifyVolume == YES) {
        [setting setVolume:volume];
        }
    
        [builder appendSoundWithSound:fileData setting:setting error:error];
    
        if (*error != nil) {
        return nil;
        }
    
        return [builder.commands copy];
    }
    

    MelodySpeakerFunctions.m を参照ください。