⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph_widget.h

📁 一个共享源码的音频库4
💻 H
字号:
#ifndef _GRAPH_WIDGET_H#define _GRAPH_WIDGET_Hextern "C"{#include <X11/X.h>#include <Xm/Xm.h>#include <X11/extensions/Xext.h>#include <X11/extensions/Xdbe.h>#include <Xm/DrawingA.h>}#define GRAPH_STRING_SIZE 100#define GRAPH_WIDGET_NAME_STRING 256class graph_widget {public:   graph_widget(      Widget parent,      Widget left,      Widget right,      Widget top,      Widget bottom,      int    height,      int    width,      int    channels);   ~graph_widget();   void   allocateMemory();   void   load_new_data(int *data);   void   perform_expose();   void   setSamplesPerSecond(long samples);   long   getSamplesPerSecond() const;   void   setMarkerResolution(int res);   int   getMarkerResolution() const;   void   setTotalSamples(long long samples);   long long   getTotalSamples() const;   void   setStartSamples(long long samples);   long long   getStartSamples() const;   void   setStopSamples(long long samples);   long long   getStopSamples() const;   void   setBeginSamples(long long samples);   long long   getBeginSamples() const;   void   setEndSamples(long long samples);   long long   getEndSamples() const;   void   setCurrentSamples(long long samples);   long long   getCurrentSamples() const;   void   setChannels(int chan);   int   getChannels() const;   void   setDivisor(int div);   int   getDivisor() const;   void   setShiftData(int shift_data);   int   getShiftData() const;   Widget   getWidget() const;   void   setName(const char * str);   static void   button_press_callback(      Widget w,      caddr_t client_data,      XEvent    *event,      Boolean   *flag);   static void   button_motion_callback(      Widget w,      caddr_t client_data,      XEvent    *event,      Boolean   *flag);   static void   button_release_callback(      Widget  w,      caddr_t client_data,      XEvent    *event,      Boolean   *flag);   static void   graph_widget::expose(      Widget  w,      caddr_t client_data,      XmDrawingAreaCallbackStruct  *draw_struct);protected:private:   void   build_widget(      Widget parent,      Widget left,      Widget right,      Widget top,      Widget bottom);   void   create_gc();   void   convertToTimeString(      long long samples,      char *    str);enum marker_type{   MARKER_NONE,   MARKER_BEGIN,   MARKER_END,   MARKER_SLIDER};// Drawing structuresWidget  _w;GC      _gc;bool    _init_gc;XSegment  * _data_array;// Configuration informationint     _height;int     _width;int     _channels;char    _name_string[256];// Color support for drawingPixel   _black_pixel;Pixel   _white_pixel;Pixel   _red_pixel;Pixel   _green_pixel;Pixel   _blue_pixel;// back buffering supportDrawable      _back_buf;XdbeSwapInfo  _back_info;// Start Time supportchar      _start_time[GRAPH_STRING_SIZE];long long _start_sample;// Stop Time supportchar      _stop_time[GRAPH_STRING_SIZE];long long _stop_sample;// Begin Time supportchar      _begin_time[GRAPH_STRING_SIZE];int       _begin_marker;long long _begin_sample;// End Time supportchar      _end_time[GRAPH_STRING_SIZE];int       _end_marker;long long _end_sample;// Current Time supportchar      _current_time[GRAPH_STRING_SIZE];int       _current_marker;long long _current_sample;// Marker supportgraph_widget::marker_type  _marker_selected;long      _marker_samples_per_second;int       _marker_delta;long long _total_samples;// Display reduction dataint  _divisor;int  _shift_data;int  _shift_start_x;int  _shift_start_y;int  _shift_stop_x;int  _shift_stop_y;int  _slider_x;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -