// wmmixer.h - A mixer designed for WindowMaker // // Release 1.5 // Copyright (C) 1998 Sam Hawker // Copyright (C) 2002 Gordon Fraser // Patch added by Rodolfo (kix) Garcia 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 #include #include #include #include #include #include // 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__