@@ -611,9 +611,6 @@ static int open_mixer (RobTkApp* ui, const char* card, int opts)
611
611
assert (last > 0 && last <= 20 );
612
612
if (last > d .smo ) {
613
613
d .smo = last ;
614
-
615
- d .matrix_mix_stride = d .smo ;
616
- d .matrix_in_stride = d .smo + 1 ;
617
614
}
618
615
d .matrix_mix_column_major = true;
619
616
}
@@ -631,6 +628,10 @@ static int open_mixer (RobTkApp* ui, const char* card, int opts)
631
628
assert (i <= cnt );
632
629
}
633
630
631
+ if ((opts & OPT_DETECT ) && d .matrix_mix_column_major ) {
632
+ d .matrix_mix_stride = d .smi ;
633
+ }
634
+
634
635
if ((opts & OPT_DETECT ) && rv == 0 && ui -> device ) {
635
636
if (verbose > 1 ) {
636
637
printf ("CMP %d\n" , memcmp (ui -> device , & d , sizeof (Device )));
@@ -1180,7 +1181,7 @@ static RobWidget* toplevel (RobTkApp* ui, void* const top) {
1180
1181
1181
1182
/* table layout. NB: these are min sizes, table grows if needed */
1182
1183
ui -> matrix = rob_table_new (/*rows*/ rb , /*cols*/ 5 + ui -> device -> smo , FALSE);
1183
- ui -> output = rob_table_new (/*rows*/ 4 , /*cols*/ 2 + 3 * ui -> device -> smst , FALSE);
1184
+ ui -> output = rob_table_new (/*rows*/ 6 , /*cols*/ 2 + 3 * ( ui -> device -> smst + ui -> device -> samo ) , FALSE);
1184
1185
1185
1186
/* headings */
1186
1187
ui -> heading [0 ] = robtk_lbl_new ("Capture" );
@@ -1315,8 +1316,8 @@ static RobWidget* toplevel (RobTkApp* ui, void* const top) {
1315
1316
1316
1317
/* output level + labels */
1317
1318
for (unsigned int o = 0 ; o < ui -> device -> smst ; ++ o ) {
1318
- int row = 4 * floor ( o / 5 ) ; // beware of bleed into Hi-Z, Pads
1319
- int oc = o % 5 ;
1319
+ int row = 0 ; // beware of bleed into Hi-Z, Pads
1320
+ int oc = o ;
1320
1321
1321
1322
ui -> out_lbl [o ] = robtk_lbl_new (out_gain_label (ui , o ));
1322
1323
rob_table_attach (ui -> output , robtk_lbl_widget (ui -> out_lbl [o ]), 3 * oc + 2 , 3 * oc + 5 , row , row + 1 , 2 , 2 , RTK_SHRINK , RTK_SHRINK );
@@ -1343,8 +1344,8 @@ static RobWidget* toplevel (RobTkApp* ui, void* const top) {
1343
1344
1344
1345
/* aux mono outputs & labels */
1345
1346
for (unsigned int o = 0 ; o < ui -> device -> samo ; ++ o ) {
1346
- int row = 4 * floor ( o / 5 ) ; // beware of bleed into Hi-Z, Pads
1347
- int oc = o % 5 ;
1347
+ int row = 0 ; // beware of bleed into Hi-Z, Pads
1348
+ int oc = o ;
1348
1349
1349
1350
ui -> aux_lbl [o ] = robtk_lbl_new (aux_gain_label (ui , o ));
1350
1351
rob_table_attach (ui -> output , robtk_lbl_widget (ui -> aux_lbl [o ]), 3 * oc + 2 , 3 * oc + 5 , row , row + 1 , 2 , 2 , RTK_SHRINK , RTK_SHRINK );
@@ -1369,9 +1370,9 @@ static RobWidget* toplevel (RobTkApp* ui, void* const top) {
1369
1370
}
1370
1371
1371
1372
for (unsigned int o = 0 ; o < ui -> device -> sout - ui -> device -> samo - (ui -> device -> smst * 2 ); ++ o ) {
1372
- int row_base = ( o + ui -> device -> samo + ( ui -> device -> smst * 2 ));
1373
- int row = 4 * floor ( row_base / 6 ) ; // beware of bleed into Hi-Z, Pads
1374
- int oc = row_base % 6 ;
1373
+
1374
+ int row = 0 ; // beware of bleed into Hi-Z, Pads
1375
+ int oc = o + ui -> device -> samo ;
1375
1376
1376
1377
ui -> sel_lbl [o ] = robtk_lbl_new (out_select_label (ui , o ));
1377
1378
rob_table_attach (ui -> output , robtk_lbl_widget (ui -> sel_lbl [o ]), 3 * oc + 2 , 3 * oc + 5 , row , row + 1 , 2 , 2 , RTK_SHRINK , RTK_SHRINK );
@@ -1410,9 +1411,8 @@ static RobWidget* toplevel (RobTkApp* ui, void* const top) {
1410
1411
1411
1412
/* output selectors */
1412
1413
for (unsigned int o = 0 ; o < ui -> device -> sout ; ++ o ) {
1413
- int row = 4 * floor ( o / 10 ) ; // beware of bleed into Hi-Z, Pads
1414
+ int row = 0 ; // beware of bleed into Hi-Z, Pads
1414
1415
int pc = 3 * (o / 2 ); /* stereo-pair column */
1415
- pc %= 15 ;
1416
1416
1417
1417
ui -> out_sel [o ] = robtk_select_new ();
1418
1418
Mctrl * sctrl = out_sel (ui , o );
0 commit comments