Class: AudioToolbox::MIDIChannelMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/midiosx.rb,
ext/music_player/midiosx.c

Instance Method Summary collapse

Constructor Details

#initializeObject



1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
# File 'ext/music_player/midiosx.c', line 1115

static VALUE
midi_channel_message_init (VALUE self, VALUE rb_opts)
{
    Check_Type(rb_opts, T_HASH);
    MIDIChannelMessage *msg;
    VALUE rb_status, rb_data1, rb_data2;
    
    Data_Get_Struct(self, MIDIChannelMessage, msg);
    
    rb_status = rb_hash_aref(rb_opts, rb_sStatus);
    if (!FIXNUM_P(rb_status))
        rb_raise(rb_eArgError, ":status is required.");
    else
        msg->status = NUM2DBL(rb_status);
    
    rb_data1 = rb_hash_aref(rb_opts, rb_sData1);
    if (!NIL_P(rb_data1)) msg->data1 = (UInt8) FIX2INT(rb_data1);
    
    rb_data2 = rb_hash_aref(rb_opts, rb_sData2);
    if (!NIL_P(rb_data2)) msg->data2 = (UInt8) FIX2INT(rb_data2);
    
    return self;
}

Instance Method Details

#==(msg) ⇒ Object



122
123
124
125
126
127
# File 'lib/midiosx.rb', line 122

def ==(msg)
  self.class == msg.class &&
  status     == msg.status &&
  data1      == msg.data1 &&
  data2      == msg.data2
end

#add(time, track) ⇒ Object



137
138
139
# File 'lib/midiosx.rb', line 137

def add(time, track)
  track.add_midi_channel_message(time, self)
end

#channelObject



129
130
131
# File 'lib/midiosx.rb', line 129

def channel
  status ^ mask
end

#data1Object



1147
1148
1149
1150
1151
1152
1153
# File 'ext/music_player/midiosx.c', line 1147

static VALUE
midi_channel_message_data1 (VALUE self)
{
    MIDIChannelMessage *msg;
    Data_Get_Struct(self, MIDIChannelMessage, msg);
    return UINT2NUM(msg->data1);
}

#data2Object



1155
1156
1157
1158
1159
1160
1161
# File 'ext/music_player/midiosx.c', line 1155

static VALUE
midi_channel_message_data2 (VALUE self)
{
    MIDIChannelMessage *msg;
    Data_Get_Struct(self, MIDIChannelMessage, msg);
    return UINT2NUM(msg->data2);
}

#maskObject

Raises:

  • (NotImplementedError)


133
134
135
# File 'lib/midiosx.rb', line 133

def mask
  raise NotImplementedError, "Subclass responsibility."
end

#statusObject



1139
1140
1141
1142
1143
1144
1145
# File 'ext/music_player/midiosx.c', line 1139

static VALUE
midi_channel_message_status (VALUE self)
{
    MIDIChannelMessage *msg;
    Data_Get_Struct(self, MIDIChannelMessage, msg);
    return UINT2NUM(msg->status);
}