* HDSPMixer
*
* Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * Copyright (C) 2011 Adrian Knoth (adi@drcomp.erfurt.thur.de)
+ * Fredrik Lingvall (fredrik.lingvall@gmail.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
HDSPMixerAboutText::HDSPMixerAboutText(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "About Text")
{
- text = "HDSPMixer " VERSION " (C) 2003 Thomas Charbonnel <thomas@@undata.org>\n (C) 2009 Florian Faber <faber@@faberman.de>\n (C) 2011 Adrian Knoth <adi@@drcomp.erfurt.thur.de>\n\n"
+ text = "HDSPMixer " VERSION " (C) 2003 Thomas Charbonnel <thomas@@undata.org>\n"
+ "(C) 2009 Florian Faber <faber@@faberman.de>\n"
+ "(C) 2011 Adrian Knoth <adi@@drcomp.erfurt.thur.de>\n"
+ "(C) 2011 Fredrik lingvall <fredrik.lingvall@@gmail.com>\n\n"
"Bitmaps by Ralf Brunner\n"
"Many thanks to Martin Björnsen, Matthias Carstens and Paul Davis\n\n"
"This Program is free software; you can redistribute it and/or modify\n"
* HDSPMixer
*
* Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *
+ * Copyright (C) 2011 Adrian Knoth (adi@drcomp.erfurt.thur.de)
+ * Fredrik Lingvall (fredrik.lingvall@gmail.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#pragma implementation
#include "HDSPMixerCard.h"
-static char channel_map_df_ss[26] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25
-};
-
-static char channel_map_mf_ss[26] = {
- 0, 1, 2, 3, 4, 5, 6, 7,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char meter_map_ds[26] = {
- 0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char channel_map_ds[26] = {
- 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char dest_map_madi_ss[32] = {
- 0, 2, 4, 6, 8, 10, 12, 14,
- 16, 18, 20, 22, 24, 26, 28, 30,
- 32, 34, 36, 38, 40, 42, 44, 46,
- 48, 50, 52, 54, 56, 58, 60, 62
-};
-
-static char channel_map_aes[16] = {
- 0, 1, 2, 3, 4, 5, 6, 7,
- 9, 10, 11, 12, 13, 14, 15
-};
-
-
-static char dest_map_aes[8] = {
- 0, 2, 4, 6, 8, 10, 12, 14
-};
-
-
-static char dest_map_raydat_ss[18] = {
- 4, 6, 8, 10,
- 12, 14, 16, 18,
- 20, 22, 24, 26,
- 28, 30, 32, 34,
- 0, 2
-};
-
-static char dest_map_raydat_ds[10] = {
- 4, 6,
- 8, 10,
- 12, 14,
- 16, 18,
- 0, 2
-};
-
-static char dest_map_raydat_qs[6] = {
- 4,
- 6,
- 8,
- 10,
- 0, 2
-};
-
-
-
-static char dest_map_aio_ss[8] = {
- 0, // Analogue
- 8, // AES
- 10, // SPDIF
- 12, 14, 16, 18, // ADAT
- 6 // Phones
-};
-
-
-static char dest_map_aio_ds[6] = {
- 0, // Analogue
- 8, // AES
- 10, // SPDIF
- 12, 16, // ADAT
- 6 // Phones
-};
-
-static char dest_map_aio_qs[5] = {
- 0, // Analogue
- 8, // AES
- 10, // SPDIF
- 12, // ADAT
- 6 // Phone
-};
-
-
-static char dest_map_mf_ss[10] = {
- 0, 2, 4, 6, 16, 18, 20, 22, 24, 26
-};
-
-static char dest_map_ds[8] = {
- 0, 2, 8, 10, 16, 18, 24, 26
-};
-
-static char dest_map_df_ss[14] = {
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26
-};
-
-static char dest_map_h9652_ss[13] = {
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
-};
-
-static char dest_map_h9652_ds[7] = {
- 0, 2, 8, 10, 16, 18, 24
-};
-
-static char dest_map_h9632_ss[8] = {
- 0, 2, 4, 6, 8, 10, 12, 14
-};
-
-static char dest_map_h9632_ds[6] = {
- 0, 2, 8, 10, 12, 14
-};
-
-static char dest_map_h9632_qs[4] = {
- 8, 10, 12, 14
-};
-
-static char channel_map_h9632_ss[16] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-};
-
-static char channel_map_h9632_ds[12] = {
- 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15
-};
-
-static char channel_map_h9632_qs[8] = {
- 8, 9, 10, 11, 12, 13, 14, 15
-};
-
static void alsactl_cb(snd_async_handler_t *handler)
{
int err, clock_value;
case 0: // SS
channels_input = channels_playback = 64;
channel_map_input = channel_map_playback = channel_map_unity_ss;
- dest_map = dest_map_madi_ss;
+ dest_map = dest_map_unity;
meter_map_input = meter_map_playback = channel_map_unity_ss;
break;
case 1: // DS
channels_input = channels_playback = 32;
channel_map_input = channel_map_playback = channel_map_unity_ss;
- dest_map = dest_map_madi_ss;
+ dest_map = dest_map_unity;
meter_map_input = meter_map_playback = channel_map_unity_ss;
break;
case 2: // QS
channels_input = channels_playback = 16;
channel_map_input = channel_map_playback = channel_map_unity_ss;
- dest_map = dest_map_madi_ss;
+ dest_map = dest_map_unity;
meter_map_input = meter_map_playback = channel_map_unity_ss;
break;
}
break;
case 2: // QS
channels_input = 8;
- channels_playback =10;
+ channels_playback = 10;
channel_map_input = channel_map_aio_in_qs;
channel_map_playback = channel_map_aio_out_qs;
dest_map = dest_map_aio_qs;
}
} else if (HDSP_AES == type) {
- playbacks_offset = 64; /* FL not sure about this one? */
+ playbacks_offset = 64; /* not sure about this one? */
/* 16 channels for all modes */
channels_input = 16;
channels_playback = 16;
- channel_map_input = channel_map_aes;
- channel_map_playback = channel_map_aes;
- dest_map = dest_map_aes;
- meter_map_input = channel_map_aes;
- meter_map_playback = channel_map_aes;
+ channel_map_input = channel_map_aes32;
+ channel_map_playback = channel_map_aes32;
+ dest_map = dest_map_aes32;
+ meter_map_input = channel_map_aes32;
+ meter_map_playback = channel_map_aes32;
} else if (HDSPeRayDAT == type) {
playbacks_offset = 64;
break;
case 2: // QS
channels_input = 12;
- channels_playback =12;
+ channels_playback = 12;
channel_map_input = channel_map_playback = channel_map_raydat_qs;
dest_map = dest_map_raydat_qs;
meter_map_input = meter_map_playback = channel_map_raydat_qs;
};
-static char *labels_aes[16] = {
+static char *labels_aes32[16] = {
"AES 1", "AES 2", "AES 3", "AES 4", "AES 5", "AES 6", "AES 7", "AES 8",
"AES 9", "AES 10", "AES 11", "AES 12", "AES 13", "AES 14", "AES 15", "AES 16"
};
break;
}
} else if (HDSP_AES == type) {
- labels_input = labels_playback = labels_aes;
+ labels_input = labels_playback = labels_aes32;
} else if (HDSPeAIO == type) {
switch (sm) {
case 0:
*
* Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
*
+ * Copyright (C) 2011 Adrian Knoth (adi@drcomp.erfurt.thur.de)
+ * Fredrik Lingvall (fredrik.lingvall@gmail.com)
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
"9+10", "11+12", "13+14", "15+16"
};
-static char *destinations_aes[8] = {
+static char *destinations_aes32[8] = {
"AES 1+2", "AES 3+4", "AES 5+6", "AES 7+8",
"AES 9+10", "AES 11+12", "AES 13+14", "AES 15+16",
};
}
} else if (HDSP_AES == type) {
max_dest = 8;
- destinations = destinations_aes;
+ destinations = destinations_aes32;
} else if (HDSPeAIO == type) {
switch (sm) {
case 0:
+/*
+ * HDSPMixer
+ *
+ * Copyright (C) 2011 Adrian Knoth (adi@drcomp.erfurt.thur.de)
+ * Fredrik Lingvall (fredrik.lingvall@gmail.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ */
+
+
#ifndef channelmap_H
#define channelmap_H
+/***
+ *
+ * hdsp cards
+ *
+ ***/
+
+// Digiface
+
+static char dest_map_df_ss[14] = {
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26
+};
+
+static char channel_map_df_ss[26] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, /* ADAT 1 */
+ 8, 9, 10, 11, 12, 13, 14, 15, /* ADAT 2 */
+ 16, 17, 18, 19, 20, 21, 22, 23, /* ADAT 3 */
+ 24, 25 /* SPDIF */
+};
+
+// Multiface
+
+static char dest_map_mf_ss[10] = {
+ 0, 2, 4, 6, 16, 18, 20, 22, 24, 26
+};
+
+static char channel_map_mf_ss[26] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, /* Line in */
+ 16, 17, 18, 19, 20, 21, 22, 23, /* ADAT */
+ 24, 25, /* SPDIF */
+ -1, -1, -1, -1, -1, -1, -1, -1
+};
+
+// Digiface/Multiface
+
+static char meter_map_ds[26] = {
+ 0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19,
+ 24, 25,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+};
+
+static char channel_map_ds[26] = {
+ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23,
+ 24, 25,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+};
+
+static char dest_map_ds[8] = {
+ 0, 2, 8, 10, 16, 18, 24, 26
+};
+
+// HDSP 9652
+
+static char dest_map_h9652_ss[13] = {
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
+};
+
+static char dest_map_h9652_ds[7] = {
+ 0, 2, 8, 10, 16, 18, 24
+};
+
+// HDSP 9632
+
+static char dest_map_h9632_ss[8] = {
+ 0, 2, 4, 6, 8, 10, 12, 14
+};
+
+static char dest_map_h9632_ds[6] = {
+ 0, 2, 8, 10, 12, 14
+};
+
+static char dest_map_h9632_qs[4] = {
+ 8, 10, 12, 14
+};
+
+static char channel_map_h9632_ss[16] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
+};
+
+static char channel_map_h9632_ds[12] = {
+ 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15
+};
+
+static char channel_map_h9632_qs[8] = {
+ 8, 9, 10, 11, 12, 13, 14, 15
+};
+
+
+/***
+ *
+ * hdspm cards
+ *
+ ***/
+
+// HDSPe MADI and MADIface
+
+static char dest_map_unity[32] = {
+ 0, 2, 4, 6, 8, 10, 12, 14,
+ 16, 18, 20, 22, 24, 26, 28, 30,
+ 32, 34, 36, 38, 40, 42, 44, 46,
+ 48, 50, 52, 54, 56, 58, 60, 62
+};
+
static char channel_map_unity_ss[HDSPM_MAX_CHANNELS] = {
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
-1, -1, -1, -1, -1, -1, -1, -1,
};
+// HDSPe RayDAT
+
+static char dest_map_raydat_ss[18] = {
+ 4, 6, 8, 10,
+ 12, 14, 16, 18,
+ 20, 22, 24, 26,
+ 28, 30, 32, 34,
+ 0, 2
+};
+
+static char dest_map_raydat_ds[10] = {
+ 4, 6,
+ 8, 10,
+ 12, 14,
+ 16, 18,
+ 0, 2
+};
+
+static char dest_map_raydat_qs[6] = {
+ 4,
+ 6,
+ 8,
+ 10,
+ 0, 2
+};
+
static char channel_map_raydat_ss[HDSPM_MAX_CHANNELS] = {
4, 5, 6, 7, 8, 9, 10, 11, /* ADAT 1 */
12, 13, 14, 15, 16, 17, 18, 19, /* ADAT 2 */
-1, -1, -1, -1, -1, -1, -1, -1,
};
+// HDSPe AIO
+
+static char dest_map_aio_ss[8] = {
+ 0, // Analogue
+ 8, // AES
+ 10, // SPDIF
+ 12, 14, 16, 18, // ADAT
+ 6 // Phones
+};
+
+
+static char dest_map_aio_ds[6] = {
+ 0, // Analogue
+ 8, // AES
+ 10, // SPDIF
+ 12, 16, // ADAT
+ 6 // Phones
+};
+
+static char dest_map_aio_qs[5] = {
+ 0, // Analogue
+ 8, // AES
+ 10, // SPDIF
+ 12, // ADAT
+ 6 // Phone
+};
+
static char channel_map_aio_in_ss[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
- 8, 9, /* aes in, */
- 10, 11, /* spdif in */
+ 8, 9, /* AES in, */
+ 10, 11, /* SPDIF in */
12, 13, 14, 15, 16, 17, 18, 19, /* ADAT in */
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
static char channel_map_aio_out_ss[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
- 8, 9, /* aes out */
- 10, 11, /* spdif out */
+ 8, 9, /* AES out */
+ 10, 11, /* SPDIF out */
12, 13, 14, 15, 16, 17, 18, 19, /* ADAT out */
6, 7, /* phone out */
-1, -1, -1, -1, -1, -1, -1, -1,
static char channel_map_aio_in_ds[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
- 8, 9, /* aes in */
- 10, 11, /* spdif in */
- 12, 14, 16, 18, /* adat in */
+ 8, 9, /* AES in */
+ 10, 11, /* SPDIF in */
+ 12, 14, 16, 18, /* ADAT in */
-1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
static char channel_map_aio_out_ds[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
- 8, 9, /* aes out */
- 10, 11, /* spdif out */
- 12, 14, 16, 18, /* adat out */
+ 8, 9, /* AES out */
+ 10, 11, /* SPDIF out */
+ 12, 14, 16, 18, /* ADAT out */
6, 7, /* phone out */
-1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
static char channel_map_aio_in_qs[HDSPM_MAX_CHANNELS] = {
0, 1, /* line in */
- 8, 9, /* aes in */
- 10, 11, /* spdif in */
- 12, 16, /* adat in */
+ 8, 9, /* AES in */
+ 10, 11, /* SPDIF in */
+ 12, 16, /* ADAT in */
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
static char channel_map_aio_out_qs[HDSPM_MAX_CHANNELS] = {
0, 1, /* line out */
- 8, 9, /* aes out */
- 10, 11, /* spdif out */
- 12, 16, /* adat out */
+ 8, 9, /* AES out */
+ 10, 11, /* SPDIF out */
+ 12, 16, /* ADAT out */
6, 7, /* phone out */
-1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1
};
+// HDSP AES32 and HDSPe AES
+
+static char dest_map_aes32[8] = {
+ 0, 2, 4, 6, 8, 10, 12, 14
+};
+
+static char channel_map_aes32[HDSPM_MAX_CHANNELS] = {
+ 0, 1, /* AES 1 */
+ 2, 3, /* AES 2 */
+ 4, 5, /* AES 3 */
+ 6, 7, /* AES 4 */
+ 8, 9, /* AES 5 */
+ 10, 11, /* AES 6 */
+ 12, 13, /* AES 7 */
+ 14, 15, /* AES 8 */
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+};
+
#endif /* channelmap_H */
#define HDSPeMADI 10
#define HDSPeRayDAT 11
#define HDSPeAIO 12
-#define HDSP_AES 13 /* both AES32 and HDSPeAES? */
+#define HDSP_AES 13 /* both HDSP AES32 and HDSPe AES */
#define HDSP_MAX_CHANNELS 64
#define HDSP_MAX_DEST 32
*
* Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
*
+ * Copyright (C) 2011 Adrian Knoth (adi@drcomp.erfurt.thur.de)
+ * Fredrik Lingvall (fredrik.lingvall@gmail.com)
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
+++ /dev/null
-/*
- * HDSPMixer
- *
- * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef mappings_H
-#define mappings_H
-
-static char channel_map_df_ss[26] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25
-};
-
-static char channel_map_mf_ss[26] = {
- 0, 1, 2, 3, 4, 5, 6, 7,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char meter_map_ds[26] = {
- 0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char channel_map_ds[26] = {
- 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23,
- 24, 25,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-static char dest_map_mf_ss[10] = {
- 0, 2, 4, 6, 16, 18, 20, 22, 24, 26
-};
-
-static char dest_map_ds[8] = {
- 0, 2, 8, 10, 16, 18, 24, 26
-};
-
-static char dest_map_df_ss[14] = {
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26
-};
-
-static char dest_map_h9652_ss[13] = {
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24
-};
-
-static char dest_map_h9652_ds[7] = {
- 0, 2, 8, 10, 16, 18, 24
-};
-
-static char dest_map_h9632_ss[8] = {
- 0, 2, 4, 6, 8, 10, 12, 14
-};
-
-static char dest_map_h9632_ds[6] = {
- 0, 2, 8, 10, 12, 14
-};
-
-static char dest_map_h9632_qs[4] = {
- 8, 10, 12, 14
-};
-
-static char channel_map_h9632_ss[16] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-};
-
-static char channel_map_h9632_ds[12] = {
- 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15
-};
-
-static char channel_map_h9632_qs[8] = {
- 8, 9, 10, 11, 12, 13, 14, 15
-};
-
-#endif
-