Lines Matching full:cc

111 	ev->data.control.channel = val->cc.channel;
112 ev->data.control.param = val->cc.index;
113 ev->data.control.value = val->cc.data;
232 ev->data.control.channel = val->cc.channel;
233 ev->data.control.param = val->cc.index;
234 ev->data.control.value = downscale_32_to_7bit(val->cc.data);
371 struct ump_cvt_to_ump_bank *cc;
391 cc = &dest_port->midi2_bank[midi1->note.channel];
392 switch (midi1->cc.index) {
394 cc->bank_set = 1;
395 cc->cc_bank_msb = midi1->cc.data;
398 cc->bank_set = 1;
399 cc->cc_bank_lsb = midi1->cc.data;
402 midi2->cc.index = midi1->cc.index;
403 midi2->cc.data = upscale_7_to_32bit(midi1->cc.data);
407 cc = &dest_port->midi2_bank[midi1->note.channel];
408 if (cc->bank_set) {
410 midi2->pg.bank_msb = cc->cc_bank_msb;
411 midi2->pg.bank_lsb = cc->cc_bank_lsb;
412 cc->bank_set = 0;
462 midi1->cc.index = midi2->cc.index;
463 midi1->cc.data = downscale_32_to_7bit(midi2->cc.data);
467 midi1->cc.status = UMP_MSG_STATUS_CC;
468 midi1->cc.index = UMP_CC_BANK_SELECT;
469 midi1->cc.data = midi2->pg.bank_msb;
475 midi1->cc.index = UMP_CC_BANK_SELECT_LSB;
476 midi1->cc.data = midi2->pg.bank_lsb;
642 /* convert CC event to MIDI 1.0 UMP */
648 data->cc.status = status;
649 data->cc.channel = event->data.control.channel & 0x0f;
650 data->cc.index = event->data.control.param;
651 data->cc.data = event->data.control.value;
689 data->cc.status = UMP_MSG_STATUS_CC;
690 data->cc.channel = event->data.control.channel & 0x0f;
691 data->cc.index = event->data.control.param & 0x7f;
693 data->cc.data = (event->data.control.value >> 7) & 0x7f;
695 data[1].cc.index = event->data.control.param | 0x20;
696 data[1].cc.data = event->data.control.value & 0x7f;
700 data->cc.data = event->data.control.value & 0x7f;
712 data->cc.status = UMP_MSG_STATUS_CC;
713 data->cc.channel = event->data.control.channel & 0x0f;
716 data[0].cc.index = is_rpn ? UMP_CC_RPN_MSB : UMP_CC_NRPN_MSB;
717 data[0].cc.data = (event->data.control.param >> 7) & 0x7f;
718 data[1].cc.index = is_rpn ? UMP_CC_RPN_LSB : UMP_CC_NRPN_LSB;
719 data[1].cc.data = event->data.control.param & 0x7f;
720 data[2].cc.index = UMP_CC_DATA;
721 data[2].cc.data = (event->data.control.value >> 7) & 0x7f;
722 data[3].cc.index = UMP_CC_DATA_LSB;
723 data[3].cc.data = event->data.control.value & 0x7f;
793 static void reset_rpn(struct ump_cvt_to_ump_bank *cc)
795 cc->rpn_set = 0;
796 cc->nrpn_set = 0;
797 cc->cc_rpn_msb = cc->cc_rpn_lsb = 0;
798 cc->cc_data_msb = cc->cc_data_lsb = 0;
799 cc->cc_data_msb_set = cc->cc_data_lsb_set = 0;
803 static int fill_rpn(struct ump_cvt_to_ump_bank *cc,
808 if (!(cc->cc_data_lsb_set || cc->cc_data_msb_set))
811 if (!flush && (!cc->cc_data_lsb_set || !cc->cc_data_msb_set))
814 if (cc->rpn_set) {
816 data->rpn.bank = cc->cc_rpn_msb;
817 data->rpn.index = cc->cc_rpn_lsb;
818 } else if (cc->nrpn_set) {
820 data->rpn.bank = cc->cc_nrpn_msb;
821 data->rpn.index = cc->cc_nrpn_lsb;
826 data->rpn.data = upscale_14_to_32bit((cc->cc_data_msb << 7) |
827 cc->cc_data_lsb);
830 reset_rpn(cc);
834 /* convert CC event to MIDI 2.0 UMP */
843 struct ump_cvt_to_ump_bank *cc = &dest_port->midi2_bank[channel];
846 /* process special CC's (bank/rpn/nrpn) */
849 ret = fill_rpn(cc, data, channel, true);
850 cc->rpn_set = 1;
851 cc->cc_rpn_msb = val;
852 if (cc->cc_rpn_msb == 0x7f && cc->cc_rpn_lsb == 0x7f)
853 reset_rpn(cc);
856 ret = fill_rpn(cc, data, channel, true);
857 cc->rpn_set = 1;
858 cc->cc_rpn_lsb = val;
859 if (cc->cc_rpn_msb == 0x7f && cc->cc_rpn_lsb == 0x7f)
860 reset_rpn(cc);
863 ret = fill_rpn(cc, data, channel, true);
864 cc->nrpn_set = 1;
865 cc->cc_nrpn_msb = val;
868 ret = fill_rpn(cc, data, channel, true);
869 cc->nrpn_set = 1;
870 cc->cc_nrpn_lsb = val;
873 cc->cc_data_msb_set = 1;
874 cc->cc_data_msb = val;
875 return fill_rpn(cc, data, channel, false);
877 cc->bank_set = 1;
878 cc->cc_bank_msb = val;
881 cc->bank_set = 1;
882 cc->cc_bank_lsb = val;
885 cc->cc_data_lsb_set = 1;
886 cc->cc_data_lsb = val;
887 return fill_rpn(cc, data, channel, false);
890 data->cc.status = status;
891 data->cc.channel = channel;
892 data->cc.index = index;
893 data->cc.data = upscale_7_to_32bit(event->data.control.value & 0x7f);
916 struct ump_cvt_to_ump_bank *cc = &dest_port->midi2_bank[channel];
921 if (cc->bank_set) {
923 data->pg.bank_msb = cc->cc_bank_msb;
924 data->pg.bank_lsb = cc->cc_bank_lsb;
925 cc->bank_set = 0;
953 struct ump_cvt_to_ump_bank *cc = &dest_port->midi2_bank[channel];
959 /* process special CC's (bank/rpn/nrpn) */
962 cc->cc_bank_msb = msb;
965 cc->bank_set = 1;
966 cc->cc_bank_lsb = lsb;
970 ret = fill_rpn(cc, data, channel, true);
971 cc->cc_rpn_msb = msb;
972 cc->cc_rpn_lsb = lsb;
973 cc->rpn_set = 1;
974 if (cc->cc_rpn_msb == 0x7f && cc->cc_rpn_lsb == 0x7f)
975 reset_rpn(cc);
979 ret = fill_rpn(cc, data, channel, true);
980 cc->cc_nrpn_msb = msb;
981 cc->nrpn_set = 1;
982 cc->cc_nrpn_lsb = lsb;
986 cc->cc_data_msb_set = cc->cc_data_lsb_set = 1;
987 cc->cc_data_msb = msb;
988 cc->cc_data_lsb = lsb;
989 return fill_rpn(cc, data, channel, false);
992 data->cc.status = UMP_MSG_STATUS_CC;
993 data->cc.channel = channel;
994 data->cc.index = index;
996 data->cc.data = upscale_7_to_32bit(msb);
998 data[1].cc.index = event->data.control.param | 0x20;
999 data[1].cc.data = upscale_7_to_32bit(lsb);
1003 data->cc.data = upscale_7_to_32bit(lsb);