90 lines
1.8 KiB
C++
90 lines
1.8 KiB
C++
// wmmixer.h - A mixer designed for WindowMaker
|
|
//
|
|
// Release 1.5
|
|
// Copyright (C) 1998 Sam Hawker <shawkie@geocities.com>
|
|
// Copyright (C) 2002 Gordon Fraser <gordon@debian.org>
|
|
// Patch added by Rodolfo (kix) Garcia <kix@kix.es> to select the config file
|
|
// This software comes with ABSOLUTELY NO WARRANTY
|
|
// This software is free software, and you are welcome to redistribute it
|
|
// under certain conditions
|
|
// See the COPYING file for details.
|
|
|
|
|
|
#ifndef __wmmixer_h__
|
|
#define __wmmixer_h_
|
|
|
|
// Input/Output
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <getopt.h>
|
|
|
|
#include <iostream>
|
|
|
|
#include <X11/X.h>
|
|
|
|
// WMMixer
|
|
#include "mixctl.h"
|
|
#include "xhandler.h"
|
|
#include "common.h"
|
|
#include "exception.h"
|
|
|
|
// For repeating next and prev buttons
|
|
#define RPTINTERVAL 5
|
|
#define CONFIGFILELEN 256
|
|
|
|
class WMMixer
|
|
{
|
|
protected:
|
|
|
|
// Mixer
|
|
MixCtl *mixctl_;
|
|
|
|
char mixer_device_[256];
|
|
char config_file_[CONFIGFILELEN];
|
|
unsigned num_channels_;
|
|
unsigned current_channel_;
|
|
unsigned current_channel_left_;
|
|
unsigned current_channel_right_;
|
|
bool current_recording_;
|
|
bool current_show_recording_;
|
|
|
|
XHandler *xhandler_;
|
|
|
|
unsigned *channel_list_;
|
|
|
|
int repeat_timer_;
|
|
|
|
// For draggable volume control
|
|
bool dragging_;
|
|
// Default scroll amount
|
|
int wheel_scroll_;
|
|
|
|
// Input/Output
|
|
void readConfigurationFile();
|
|
void displayVersion(void);
|
|
void displayUsage(const char*);
|
|
void checkVol(bool);
|
|
|
|
void motionEvent(XMotionEvent *xev);
|
|
void releaseEvent(XButtonEvent *xev);
|
|
void pressEvent(XButtonEvent *xev);
|
|
void parseArgs(int , char **);
|
|
|
|
void initMixer();
|
|
void initXHandler();
|
|
|
|
void updateDisplay();
|
|
|
|
public:
|
|
WMMixer();
|
|
~WMMixer();
|
|
|
|
void init(int, char **);
|
|
void loop();
|
|
};
|
|
|
|
|
|
#endif //__wmmixer_h__
|