Filewatcher File Search
FTP Search
  
Directory (beta)
  
Content Search (beta)
   
pkg://xltmix-1.1.tar.gz:26246/xltmix-1.1/xltmix.h  downloads

/* $Header: /wwg/motif/xltmix/RCS/xltmix.h,v 1.1 1997/03/16 04:52:35 wwg Exp $
 * Warren W. Gay VE3WWG		Wed Mar  5 22:19:37 1997
 *
 * 	X LessTif Mix :
 * 
 * 	Copyright (C) 1997  Warren W. Gay VE3WWG
 * 
 * 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 version 2 of the License.
 * 
 * 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 (see enclosed file COPYING).
 * 
 * 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.
 * 
 * Send correspondance to:
 * 
 * 	Warren W. Gay VE3WWG
 * 	5536 Montevideo Road #17
 *	Mississauga, Ontario L5N 2P4
 * 
 * Email:
 * 	wwg@ica.net			(current ISP of the month :-) )
 * 	bx249@freenet.toronto.on.ca	(backup)
 *
 * $Log: xltmix.h,v $
 * Revision 1.1  1997/03/16 04:52:35  wwg
 * Initial revision
 *
 */
#ifndef _xltmix_h_
#define _xltmix_h_ "@(#)xltmix.h $Revision: 1.1 $"

#ifndef DEV_BASE
#define DEV_BASE	0x220U				/* Base port address */
#endif

#define DEV_INDX	(DEV_BASE+4U)			/* Mixer "index" port */
#define DEV_DATA	(DEV_BASE+5U)			/* Mixer "data" port */

/*
 * This structure describes a single, or pair of scrollbars used as sliding
 * mixer controls.
 */
typedef struct {
	Widget	Frame;					/* Enclosing Frame */
	Widget	RC;					/* Row/Column for label and scroll bar */
	Widget	Lbl;					/* Label widget */
	Widget	RC2;					/* Left + Right RowColumn */
	Widget	Left;					/* Left scroll bar */
	Widget	Right;					/* Right scroll bar */
	int	vLeft;					/* Current value of the left slider */
	int	vRight;					/* Current value of the right slider */
	int	max;					/* Maximum value for these slider(s) */
	unsigned xL;					/* Left logical register index */
	unsigned xR;					/* Right logical register index */
} DevSliders;

/*
 * This structure describes one toggle, its current value and
 * associated mixer register if any.
 */
typedef struct {
	Widget	Toggle;					/* The Toggle itself */
	Boolean	bSet;					/* Its current setting */
	short	mixreg;					/* -1, or logical mixer register */
	char	bits;					/* Bit pattern if reg != -1 */
	Boolean	bOpposite;				/* When True, use opposite logic sense */
} Tgl;

/*
 * This toggle description structure is used by initialization
 * and creation of the toggles only.
 */
typedef struct {
	int	mixreg;					/* Mixer register (logical) */
	char	bits;					/* Bit pattern */
	Boolean	bOpposite;				/* When True, use opposite logic sense */
} TglDesc;

/*
 * This structure describes a group of toggles.
 */
typedef struct {
	Widget	Frame;					/* Toggle group's frame */
	Widget	RC1;					/* Toggle group's outter Row/Col */
	Widget	RC2;					/* Toggle group's inner Row/Col */
	Widget	Lbl;					/* Group label */
	int	n;					/* Number of toggles */
	Tgl	tgl[8];					/* Max 8 toggles */
} TglGroup;

/*
 * External Callbacks:
 */
extern void AboutDlgOkCB(Widget w,XtPointer client_data,XtPointer call_data);
extern void AboutCB(Widget w,XtPointer client_data,XtPointer call_data);
extern void ExitCB(Widget w,XtPointer client_data,XtPointer call_data);
extern void ExitDlgCB(Widget w,XtPointer client_data,XtPointer call_data);

/*
 * External routines:
 */
extern int MixInit(void);
extern void MixerClose(void);
extern unsigned MixGetReg(unsigned reg);
extern void MixPutReg(unsigned reg,unsigned b);
extern void EditVersionInit(void);
extern char *EditVersion(char *pString,char *pBuffer);
extern void CreateMenu(Widget wMenuBar,Widget *wPulldown,char *namePulldown,Widget *wCascade,char *nameCascade,...);
extern Widget CreateToggle(Widget wParent,char *class_name,Tgl *tgl,TglDesc *tdesc);
extern void CreateToggleGroup(Widget wParent,char *class_name,TglGroup *pTGrp,unsigned n,TglDesc *tdesc);
extern Widget CreateSliders(Widget parent,char *class,DevSliders *pSliders,short bStereo,int max,unsigned xL,unsigned xR);
extern void ReportError(const char *file,unsigned lno,const char *format,...);

/*
 * These are the definitions of the _LOGICAL_ mixer registers. The physical
 * groups of mixer registers are considerably fewer.
 */
#define MIXREG_RESET		0
#define MIXREG_NONE		(MIXREG_RESET)
	/*
	 * This group of compatibility registers are not used by this program
	 * because of their lower resolution (4 bits)
	 */
#define MIXREG_VOICE_L4		1
#define MIXREG_VOICE_R4		2
#define MIXREG_MIC_4		3
#define MIXREG_MSTR_L4		4
#define MIXREG_MSTR_R4		5
#define MIXREG_MIDI_L4		6
#define MIXREG_MIDI_R4		7
#define MIXREG_CD_L4		8
#define MIXREG_CD_R4		9
#define MIXREG_LINE_L4		10
#define MIXREG_LINE_R4		11
	/*
	 * These are the preferred registers for SB16 and SB32, since the volume
	 * settings have 5 bits.
	 */
#define MIXREG_MSTR_L5		12
#define MIXREG_MSTR_R5		13
#define MIXREG_VOICE_L5		14
#define MIXREG_VOICE_R5		15
#define MIXREG_MIDI_L5		16
#define MIXREG_MIDI_R5		17
#define MIXREG_CD_L5		18
#define MIXREG_CD_R5		19
#define MIXREG_LINE_L5		20
#define MIXREG_LINE_R5		21
#define MIXREG_MIC_5		22
#define MIXREG_SPKR_2		23
#define MIXREG_OUTMIX_SW	24
#define MIXREG_INMIX_SW_L	25
#define MIXREG_INMIX_SW_R	26
#define MIXREG_IGAIN_L2		27
#define MIXREG_IGAIN_R2		28
#define MIXREG_OGAIN_L2		29
#define MIXREG_OGAIN_R2		30
#define MIXREG_AGC		31
#define MIXREG_TREBLE_L4	32
#define MIXREG_TREBLE_R4	33
#define MIXREG_BASS_L4		34
#define MIXREG_BASS_R4		35

/*
 * xltmix.c externals
 */
extern char vers[];
extern int frame_margin;

extern Boolean bFatal;
extern Boolean bPortAccessFailed;
extern Boolean bPortInvalid;
extern char fatalMsg[];

extern Widget wParent;
extern XtAppContext aContext;

extern Widget wMain;
extern Widget wMain_RC1;
extern Widget wMain_RC2;
extern Widget wMenuBar;
extern Widget wFileMenuCascade;
extern Widget wFileMenu;
extern Widget wExit;

extern Widget wHelpMenuCascade;
extern Widget wHelpMenu;
extern Widget wAbout;

extern Widget wErrDlg;
extern XmString sErrDlgTitle;

extern Widget wAboutDlg;
extern XmString sAboutDlgTitle;
extern XmString sAboutDlgMessage;

extern Widget wDevFrame;
extern Widget wDevFrame_Lbl;
extern Widget wDevFrame_RC0;
extern Widget wDevFrame_RC1;
extern DevSliders devVoice;
extern DevSliders devMIDI;
extern DevSliders devCD;
extern DevSliders devLine;
extern Widget wMicSpk_RC;
extern DevSliders devMic;
extern DevSliders devSpk;

extern Widget wGainFrame;
extern Widget wGainFrame_Lbl;
extern Widget wGainFrame_RC0;
extern Widget wGainFrame_RC1;
extern DevSliders inpGain;
extern DevSliders outGain;

extern Widget wMctlFrame;
extern Widget wMctlFrame_Lbl;
extern Widget wMctlFrame_RC0;
extern Widget wMctlFrame_RC1;
extern DevSliders mctlVol;
extern DevSliders mctlTreble;
extern DevSliders mctlBass;

extern Widget wTgl_RC;
extern TglGroup gInpLeft;
extern TglGroup gInpRight;
extern TglGroup gControls;
extern TglGroup gOutput;
extern Widget *pwMUTE;

#endif /* _xltmix_h_ */

/* $Source: /wwg/motif/xltmix/RCS/xltmix.h,v $ */
Results 1 - 1
Help - FTP Sites List - Software Dir.
Searching half a billion files worldwide
© 1997-2008 Oliver Maruhn