Blame hdspmixer/src/HDSPMixerWindow.h

Packit 427e91
/*
Packit 427e91
 *   HDSPMixer
Packit 427e91
 *    
Packit 427e91
 *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
Packit 427e91
 *    
Packit 427e91
 *   This program is free software; you can redistribute it and/or modify
Packit 427e91
 *   it under the terms of the GNU General Public License as published by
Packit 427e91
 *   the Free Software Foundation; either version 2 of the License, or
Packit 427e91
 *   (at your option) any later version.
Packit 427e91
 *
Packit 427e91
 *   This program is distributed in the hope that it will be useful,
Packit 427e91
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 427e91
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 427e91
 *   GNU General Public License for more details.
Packit 427e91
 *
Packit 427e91
 *   You should have received a copy of the GNU General Public License
Packit 427e91
 *   along with this program; if not, write to the Free Software
Packit 427e91
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Packit 427e91
 */
Packit 427e91
Packit 427e91
#pragma interface
Packit 427e91
#ifndef HDSPMixerWindow_H
Packit 427e91
#define HDSPMixerWindow_H
Packit 427e91
Packit 427e91
#include <FL/Fl.H>
Packit 427e91
#include <FL/Fl_Double_Window.H>
Packit 427e91
#include <FL/Fl_Preferences.H>
Packit 427e91
#include <FL/Fl_Scroll.H>
Packit 427e91
#include <FL/Fl_Menu.H>
Packit 427e91
#include <FL/Fl_Menu_Bar.H>
Packit 427e91
#include <FL/Fl_File_Chooser.H>
Packit 427e91
#include <FL/filename.H>
Packit 427e91
#include <FL/fl_ask.H>
Packit 427e91
#include <string.h>
Packit 427e91
#include <stdlib.h>
Packit 427e91
#include <math.h>
Packit 427e91
#include <sys/ioctl.h>
Packit 427e91
#include <sys/types.h>
Packit 427e91
#include <sys/stat.h>
Packit 427e91
#include <unistd.h>
Packit 427e91
#include <alsa/asoundlib.h>
Packit 427e91
#include <alsa/sound/hdsp.h>
Packit 427e91
#include "HDSPMixerCard.h"
Packit 427e91
#include "HDSPMixerInputs.h"
Packit 427e91
#include "HDSPMixerOutputs.h"
Packit 427e91
#include "HDSPMixerPresetData.h"
Packit 427e91
#include "HDSPMixerPlaybacks.h"
Packit 427e91
#include "HDSPMixerSetup.h"
Packit 427e91
#include "HDSPMixerAbout.h"
Packit 427e91
#include "defines.h"
Packit 427e91
Packit 427e91
class HDSPMixerInputs;
Packit 427e91
class HDSPMixerOutputs;
Packit 427e91
class HDSPMixerPlaybacks;
Packit 427e91
class HDSPMixerPresetData;
Packit 427e91
class HDSPMixerSetup;
Packit 427e91
class HDSPMixerAbout;
Packit 427e91
class HDSPMixerCard;
Packit 427e91
Packit 427e91
class HDSPMixerWindow:public Fl_Double_Window 
Packit 427e91
{
Packit 427e91
private:
Packit 427e91
    int buttons_removed;
Packit 427e91
public:
Packit 427e91
    int current_card;
Packit 427e91
    int current_preset;
Packit 427e91
    int dirty;
Packit 427e91
    char file_name_buffer[FL_PATH_MAX];
Packit 427e91
    char window_title[FL_PATH_MAX];
Packit 427e91
    char *file_name;
Packit 427e91
    Fl_Preferences *prefs;
Packit 427e91
    Fl_Menu_Bar *menubar;
Packit 427e91
    Fl_Scroll *scroll;
Packit 427e91
    HDSPMixerSetup *setup;
Packit 427e91
    HDSPMixerAbout *about;
Packit 427e91
    HDSPMixerPresetData *data[MAX_CARDS][3][NUM_PRESETS]; /* data[card number][mode(ss/ds/qs)][preset number] */
Packit 427e91
    HDSPMixerCard *cards[MAX_CARDS];
Packit 427e91
    HDSPMixerInputs *inputs;
Packit 427e91
    HDSPMixerPlaybacks *playbacks;
Packit 427e91
    HDSPMixerOutputs *outputs;
Packit 427e91
    HDSPMixerWindow(int x, int y, int w, int h, const char *label, class HDSPMixerCard *hdsp_card1, class HDSPMixerCard *hdsp_card2, class HDSPMixerCard *hdsp_card3);
Packit 427e91
    void reorder();
Packit 427e91
    int handle(int e);
Packit 427e91
    void resize(int x, int y, int w, int h);
Packit 427e91
    void checkState();
Packit 427e91
    void setSubmix(int submix_value);
Packit 427e91
    void unsetSubmix();
Packit 427e91
    void setMixer(int idx, int src, int dest);
Packit 427e91
    void refreshMixer();
Packit 427e91
    void setGain(int in, int out, int value);
Packit 427e91
    void resetMixer();
Packit 427e91
    void restoreDefaults(int card);
Packit 427e91
    void refreshMixerStrip(int idx, int src);
Packit 427e91
    void save();
Packit 427e91
    void load();
Packit 427e91
    void setTitle(std::string suffix);
Packit 427e91
    void setTitleWithFilename();
Packit 427e91
    void stashPreset();
Packit 427e91
    void unstashPreset();
Packit 427e91
};
Packit 427e91
Packit 427e91
#endif
Packit 427e91