String
Midi_key::str () const
{
- Key_change_req* k = audio_item_l_->req_l_->access_Command_req ()->access_Key_change_req ();
+ Key_change_req* k = dynamic_cast <Key_change_req *> (audio_item_l_->req_l_);
int sharps_i = k->sharps_i ();
int flats_i = k->flats_i ();
String
Midi_time_signature::str () const
{
- Time_signature_change_req* m = audio_item_l_->req_l_->access_Command_req ()->access_Time_signature_change_req ();
+ Time_signature_change_req* m = dynamic_cast <Time_signature_change_req *> (audio_item_l_->req_l_);
int num_i = m->beats_i_;
int den_i = m->one_beat_i_;
Moment
Midi_note::duration () const
{
- Moment m = audio_item_l_->req_l_->access_Musical_req ()->access_Rhythmic_req ()->duration ();
+ Moment m = dynamic_cast <Rhythmic_req *> (audio_item_l_->req_l_)->duration ();
if (m < Moment (1, 1000))
{
warning (_ ("silly duration"));
int
Midi_note::pitch_i () const
{
- int p = audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req
- ()->pitch_.semitone_pitch ()
+ int p = dynamic_cast <Melodic_req*> (audio_item_l_->req_l_)->pitch_.semitone_pitch ()
+ ((Audio_note*)audio_item_l_)->transposing_i_;
if (p == INT_MAX)
{
int
Midi_note_off::pitch_i () const
{
- return audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req
- ()->pitch_.semitone_pitch ()
+ return dynamic_cast <Melodic_req *> (audio_item_l_->req_l_)->pitch_.semitone_pitch ()
+ ((Audio_note*)audio_item_l_)->transposing_i_;
}