00001 #ifndef METERPANEL_H
00002 #define METERPANEL_H
00003
00004 #include "guicast.h"
00005 #include "mwindow.inc"
00006
00007 class MeterReset;
00008 class MeterMeter;
00009
00010 class MeterPanel
00011 {
00012 public:
00013 MeterPanel(MWindow *mwindow,
00014 BC_WindowBase *subwindow,
00015 int x,
00016 int y,
00017 int h,
00018 int meter_count,
00019 int use_meters,
00020 int use_recording = 0);
00021 ~MeterPanel();
00022
00023 int create_objects();
00024 int set_meters(int meter_count, int use_meters);
00025 static int get_meters_width(int meter_count, int use_meters);
00026 void reposition_window(int x, int y, int h);
00027 int get_reset_x();
00028 int get_reset_y();
00029 int get_meter_h();
00030 int get_meter_w(int number);
00031 void update(double *levels);
00032 void stop_meters();
00033 void change_format(int mode, int min, int max);
00034 virtual int change_status_event();
00035 void reset_meters();
00036
00037 MWindow *mwindow;
00038 BC_WindowBase *subwindow;
00039 ArrayList<MeterMeter*> meters;
00040 MeterReset *reset;
00041 int meter_count;
00042 int use_meters;
00043 int x, y, h;
00044 int use_recording;
00045 };
00046
00047
00048 class MeterReset : public BC_Button
00049 {
00050 public:
00051 MeterReset(MWindow *mwindow, MeterPanel *panel, int x, int y);
00052 ~MeterReset();
00053 int handle_event();
00054 MWindow *mwindow;
00055 MeterPanel *panel;
00056 };
00057
00058 class MeterShow : public BC_Toggle
00059 {
00060 public:
00061 MeterShow(MWindow *mwindow, MeterPanel *panel, int x, int y);
00062 ~MeterShow();
00063 int handle_event();
00064 MWindow *mwindow;
00065 MeterPanel *panel;
00066 };
00067
00068 class MeterMeter : public BC_Meter
00069 {
00070 public:
00071 MeterMeter(MWindow *mwindow, MeterPanel *panel, int x, int y, int h, int titles);
00072 ~MeterMeter();
00073
00074 int button_press_event();
00075
00076 MWindow *mwindow;
00077 MeterPanel *panel;
00078 };
00079
00080 #endif