MIDIFunc - can MIDI pull different data from a control bus

I’m trying to learn how to apply some MIDI controlling to args of my patterns but not sure
if one can pull midi information from one control bus or need to create one for each parameter I want
to control

//setting up Midi
(
~ampMidi = 0.0;
~cB1 = Bus.control(s,1);
~cB1.set(~ampMidi);
~c1 = MIDIFunc.cc({
	arg ...args;
	~ampMidi = args[0].linlin(0,127,0.0, 1.0);
~cB1.set(~ampMidi);
~cB1.postln;
},13,0);
)

//other parameter
(
~panMidi = 0.0;
~cB2.set(~panMidi);
~c2 = MIDIFunc.cc({
	arg ...args;
	~panMidi = args[0].linlin(0,127,-1.0, 1.0);
	~cB2.set(~panMidi);
	~cB2.postln;
},14,0);
)


//What I want to control in a Pbind/Pdef
 \amp,Pfunc({ ~cB1.asMap }),
 \pan,Pfunc({ ~cB2.asMap }),

This might be slightly off topic: how do I create a MIDIFunc that let me cycle through ccNum values (from a list) using one button on my controller?