@@ -156,6 +156,10 @@ struct pitch_7_9
156156
157157// --------------------------------------------------------------------------
158158
159+ struct controller_value ;
160+
161+ // --------------------------------------------------------------------------
162+
159163struct pitch_7_25
160164{
161165 uint32_t value{ 0 };
@@ -164,6 +168,7 @@ struct pitch_7_25
164168 constexpr explicit pitch_7_25 (uint32_t );
165169 constexpr explicit pitch_7_25 (pitch_7_9);
166170 constexpr explicit pitch_7_25 (note_nr_t );
171+ constexpr explicit pitch_7_25 (const controller_value&);
167172 constexpr explicit pitch_7_25 (float );
168173 constexpr explicit pitch_7_25 (double );
169174
@@ -216,6 +221,7 @@ struct controller_value
216221 constexpr explicit controller_value (uint32_t );
217222 constexpr explicit controller_value (uint14_t );
218223 constexpr explicit controller_value (uint7_t );
224+ constexpr explicit controller_value (const pitch_7_25&);
219225 constexpr explicit controller_value (float );
220226 constexpr explicit controller_value (double );
221227
@@ -352,6 +358,10 @@ constexpr pitch_7_25::pitch_7_25(pitch_7_9 p)
352358{
353359 this ->operator =(p);
354360}
361+ constexpr pitch_7_25::pitch_7_25 (const controller_value& v)
362+ : value(v.value)
363+ {
364+ }
355365
356366constexpr note_nr_t pitch_7_25::note_nr () const
357367{
@@ -401,6 +411,11 @@ constexpr controller_value::controller_value(uint7_t v)
401411 : value(upsample_7_to_32bit(v))
402412{
403413}
414+ constexpr controller_value::controller_value (const pitch_7_25& p)
415+ : value(p.value)
416+ {
417+ }
418+
404419constexpr uint14_t controller_value::as_uint14 () const
405420{
406421 return downsample_32_to_14bit (value);
0 commit comments