Class: AudioToolbox::MusicSequence
- Inherits:
-
Object
- Object
- AudioToolbox::MusicSequence
- Defined in:
- lib/midiosx.rb,
ext/music_player/midiosx.c
Instance Attribute Summary collapse
-
#tracks ⇒ Object
readonly
Returns the value of attribute tracks.
Instance Method Summary collapse
- #auGraph ⇒ Object
- #initialize ⇒ Object constructor
- #load(path) ⇒ Object
- #midi_endpoint= ⇒ Object
- #save ⇒ Object
- #type ⇒ Object
- #type= ⇒ Object
Constructor Details
#initialize ⇒ Object
321 322 323 324 325 326 327 328 329 330 331 332 333 334 |
# File 'ext/music_player/midiosx.c', line 321
static VALUE
sequence_init (VALUE self)
{
MusicSequence *seq;
OSStatus err;
Data_Get_Struct(self, MusicSequence, seq);
require_noerr( err = NewMusicSequence(seq), fail );
rb_iv_set(self, "@tracks",
rb_funcall(rb_cMusicTrackCollection, rb_intern("new"), 1, self));
return self;
fail:
RAISE_OSSTATUS(err, "NewMusicSequence()");
}
|
Instance Attribute Details
#tracks ⇒ Object (readonly)
Returns the value of attribute tracks.
7 8 9 |
# File 'lib/midiosx.rb', line 7 def tracks @tracks end |
Instance Method Details
#auGraph ⇒ Object
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 |
# File 'ext/music_player/midiosx.c', line 435
static VALUE
sequence_get_augraph(VALUE self)
{
MusicSequence *seq;
AUGraph *graph;
OSStatus err;
VALUE outGraph;
Data_Get_Struct(self, MusicSequence, seq);
outGraph = Data_Make_Struct(rb_cAUGraph, AUGraph, 0, DisposeAUGraph, graph);
__Require_noErr (err = MusicSequenceGetAUGraph(*seq, graph), fail);
return outGraph;
fail:
RAISE_OSSTATUS(err, "MusicSequenceGetAUGraph()");
}
|
#load(path) ⇒ Object
9 10 11 12 13 |
# File 'lib/midiosx.rb', line 9 def load(path) @tracks.lock.synchronize do load_internal(path) end end |
#midi_endpoint= ⇒ Object
336 337 338 339 340 341 342 343 344 345 346 347 348 349 |
# File 'ext/music_player/midiosx.c', line 336
static VALUE
sequence_set_midi_endpoint (VALUE self, VALUE rb_endpoint_ref)
{
MusicSequence *seq;
UInt64 ref = NUM2ULONG(rb_funcall(rb_mKernel, rb_intern("Integer"), 1, rb_endpoint_ref));
OSStatus err;
Data_Get_Struct(self, MusicSequence, seq);
require_noerr( err = MusicSequenceSetMIDIEndpoint(*seq, (MIDIEndpointRef) ref), fail);
return Qnil;
fail:
RAISE_OSSTATUS(err, "MusicSequenceSetMIDIEndpoint()");
}
|
#save ⇒ Object
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 |
# File 'ext/music_player/midiosx.c', line 399
static VALUE
sequence_save (VALUE self, VALUE rb_path)
{
CFURLRef url = PATH2CFURL(rb_funcall(rb_path, rb_intern("to_s"), 0));
MusicSequence *seq;
OSStatus err;
Data_Get_Struct(self, MusicSequence, seq);
require_noerr( err = MusicSequenceFileCreate(*seq, url, kMusicSequenceFile_MIDIType, kMusicSequenceFileFlags_EraseFile, 0), fail );
CFRelease(url);
return Qnil;
fail:
CFRelease(url);
RAISE_OSSTATUS(err, "MusicSequenceFileCreate()");
}
|
#type ⇒ Object
351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 |
# File 'ext/music_player/midiosx.c', line 351
static VALUE
sequence_get_type (VALUE self)
{
MusicSequence *seq;
MusicSequenceType type;
OSStatus err;
Data_Get_Struct(self, MusicSequence, seq);
require_noerr( err = MusicSequenceGetSequenceType(*seq, &type), fail );
switch (type) {
case kMusicSequenceType_Beats:
return rb_sBeat;
case kMusicSequenceType_Seconds:
return rb_sSecs;
case kMusicSequenceType_Samples:
return rb_sSamp;
default:
rb_raise(rb_eRuntimeError, "Unrecognized sequence type.");
}
fail:
RAISE_OSSTATUS(err, "MusicSequenceGetSequenceType()");
}
|
#type= ⇒ Object
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 |
# File 'ext/music_player/midiosx.c', line 376
static VALUE
sequence_set_type (VALUE self, VALUE rb_type)
{
MusicSequence *seq;
MusicSequenceType type;
if (rb_type == rb_sBeat)
type = kMusicSequenceType_Beats;
else if (rb_type == rb_sSecs)
type = kMusicSequenceType_Seconds;
else if (rb_type == rb_sSamp)
type = kMusicSequenceType_Samples;
else
rb_raise(rb_eArgError, "Expected :type to be one of :beat, :secs, :samp.");
Data_Get_Struct(self, MusicSequence, seq);
OSStatus err;
require_noerr( err = MusicSequenceSetSequenceType(*seq, type), fail );
return Qnil;
fail:
RAISE_OSSTATUS(err, "MusicSequenceSetSequenceType()");
}
|