hdspmixer: Add a 9th pseudo preset

When switching cards, all current settings are lost. To have a place
where to store them, let's add a virtual 9th preset which can be used as
a temporary scratch pad.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Adrian Knoth 2011-04-04 14:34:27 +02:00 committed by Takashi Iwai
parent c975369874
commit 0b018d9a23
7 changed files with 13 additions and 7 deletions

View file

@ -38,7 +38,7 @@ HDSPMixerIOMixer::HDSPMixerIOMixer(int x, int y, int w, int h, int ch, int type)
p_iomixer_xpm = iomixer_r_xpm; p_iomixer_xpm = iomixer_r_xpm;
} }
for (int j = 0; j < MAX_CARDS; ++j) { for (int j = 0; j < MAX_CARDS; ++j) {
for (int i = 0; i < 8; ++i) { for (int i = 0; i < NUM_PRESETS; ++i) {
data[j][0][i] = new HDSPMixerStripData(); data[j][0][i] = new HDSPMixerStripData();
data[j][1][i] = new HDSPMixerStripData(); data[j][1][i] = new HDSPMixerStripData();
data[j][2][i] = new HDSPMixerStripData(); data[j][2][i] = new HDSPMixerStripData();

View file

@ -56,7 +56,7 @@ private:
std::stringstream channel_name; std::stringstream channel_name;
void update_child(Fl_Widget &widget); void update_child(Fl_Widget &widget);
public: public:
HDSPMixerStripData *data[MAX_CARDS][3][8]; /* data[card][mode(ss/ds/qs)][preset number] */ HDSPMixerStripData *data[MAX_CARDS][3][NUM_PRESETS]; /* data[card][mode(ss/ds/qs)][preset number] */
HDSPMixerPan *pan; HDSPMixerPan *pan;
HDSPMixerFader *fader; HDSPMixerFader *fader;
HDSPMixerPeak *peak; HDSPMixerPeak *peak;

View file

@ -170,8 +170,8 @@ static char const *labels_9632_qs[8] = {
HDSPMixerOutput::HDSPMixerOutput(int x, int y, int w, int h, int num):Fl_Group(x, y, w, h) HDSPMixerOutput::HDSPMixerOutput(int x, int y, int w, int h, int num):Fl_Group(x, y, w, h)
{ {
for (int j = 0; j < 3; ++j) { for (int j = 0; j < MAX_CARDS; ++j) {
for (int i = 0; i < 8; ++i) { for (int i = 0; i < NUM_PRESETS; ++i) {
data[j][0][i] = new HDSPMixerOutputData(); data[j][0][i] = new HDSPMixerOutputData();
data[j][1][i] = new HDSPMixerOutputData(); data[j][1][i] = new HDSPMixerOutputData();
data[j][2][i] = new HDSPMixerOutputData(); data[j][2][i] = new HDSPMixerOutputData();

View file

@ -52,7 +52,7 @@ private:
HDSPMixerWindow *basew; HDSPMixerWindow *basew;
void update_child(Fl_Widget& widget); void update_child(Fl_Widget& widget);
public: public:
HDSPMixerOutputData *data[MAX_CARDS][3][8]; /* data[card][mode(ss/ds/qs)][preset number] */ HDSPMixerOutputData *data[MAX_CARDS][3][NUM_PRESETS]; /* data[card][mode(ss/ds/qs)][preset number] */
HDSPMixerFader *fader; HDSPMixerFader *fader;
HDSPMixerGain *gain; HDSPMixerGain *gain;
HDSPMixerMeter *meter; HDSPMixerMeter *meter;

View file

@ -791,7 +791,7 @@ HDSPMixerWindow::HDSPMixerWindow(int x, int y, int w, int h, const char *label,
} }
} }
for (int j = 0; j < MAX_CARDS; j++) { for (int j = 0; j < MAX_CARDS; j++) {
for (int i = 0; i < 8; ++i) { for (int i = 0; i < NUM_PRESETS; ++i) {
data[j][0][i] = new HDSPMixerPresetData(); data[j][0][i] = new HDSPMixerPresetData();
data[j][1][i] = new HDSPMixerPresetData(); data[j][1][i] = new HDSPMixerPresetData();
data[j][2][i] = new HDSPMixerPresetData(); data[j][2][i] = new HDSPMixerPresetData();

View file

@ -73,7 +73,7 @@ public:
Fl_Scroll *scroll; Fl_Scroll *scroll;
HDSPMixerSetup *setup; HDSPMixerSetup *setup;
HDSPMixerAbout *about; HDSPMixerAbout *about;
HDSPMixerPresetData *data[MAX_CARDS][3][8]; /* data[card number][mode(ss/ds/qs)][preset number] */ HDSPMixerPresetData *data[MAX_CARDS][3][NUM_PRESETS]; /* data[card number][mode(ss/ds/qs)][preset number] */
HDSPMixerCard *cards[MAX_CARDS]; HDSPMixerCard *cards[MAX_CARDS];
HDSPMixerInputs *inputs; HDSPMixerInputs *inputs;
HDSPMixerPlaybacks *playbacks; HDSPMixerPlaybacks *playbacks;

View file

@ -49,6 +49,12 @@
#define MAX_CARDS 3 #define MAX_CARDS 3
/* Number of presets. 8 presets visible to the user, the 9th is used for
* holding temporary mixer data when switching cards, so it's not a real
* preset but more like a scratch pad.
*/
#define NUM_PRESETS 9
typedef unsigned long long int int64; typedef unsigned long long int int64;
#endif #endif