libxputty 0.1
Loading...
Searching...
No Matches
Data Structures | Functions
xwaveview.h File Reference

Go to the source code of this file.

Data Structures

struct  WaveView_t
 

Functions

Widget_tadd_waveview (Widget_t *parent, const char *label, int x, int y, int width, int height)
 add_waveview - add a waveview to a Widget_t
 
void update_waveview (Widget_t *waveview, float *wave, int size)
 
void waveview_mem_free (void *w_, void *user_data)
 

Function Documentation

◆ add_waveview()

Widget_t * add_waveview ( Widget_t parent,
const char *  label,
int  x,
int  y,
int  width,
int  height 
)

add_waveview - add a waveview to a Widget_t

Parameters
*parent- pointer to the Widget_t request the waveview
*label- Label to show on the waveview
x,y,width,height- the position/geometry to create the waveview
Returns
Widget_t* - pointer to the Widget_t waveview struct

Definition at line 26 of file xwaveview.c.

27 {
28
29 Widget_t *wid = create_widget(parent->app, parent, x, y, width, height);
30 wid->label = label;
31 wid->flags |= HAS_MEM;
32 wid->scale.gravity = CENTER;
33 WaveView_t *wave_view;
34 wave_view = (WaveView_t*)malloc(sizeof(WaveView_t));
35 wave_view->wave = NULL;
36 wave_view->size = 0;
37 wid->private_struct = wave_view;
40 return wid;
41}
xevfunc expose_callback
Definition xwidget.h:85
xevfunc mem_free_callback
Definition xwidget.h:92
Gravity gravity
Definition xwidget.h:347
float * wave
Definition xwaveview.h:34
Widget_t - struct to hold the basic Widget_t info.
Definition xwidget.h:457
Resize_t scale
Definition xwidget.h:525
long long flags
Definition xwidget.h:461
void * private_struct
Definition xwidget.h:475
const char * label
Definition xwidget.h:463
Func_t func
Definition xwidget.h:481
Xputty * app
Definition xwidget.h:465
void waveview_mem_free(void *w_, void *user_data)
Definition xwaveview.c:57
void _draw_waveview(void *w_, void *user_data)
Widget_t * create_widget(Xputty *app, Widget_t *win, int x, int y, int width, int height)
*create_widget - create a widget A Widget_t could only be created as child of a other Widget_t To...
Definition xwidget.c:265
@ CENTER
Definition xwidget.h:320
@ HAS_MEM
Definition xwidget.h:406

References _draw_waveview(), Widget_t::app, CENTER, create_widget(), Func_t::expose_callback, Widget_t::flags, Widget_t::func, Resize_t::gravity, HAS_MEM, Widget_t::label, Func_t::mem_free_callback, Widget_t::private_struct, Widget_t::scale, WaveView_t::size, WaveView_t::wave, and waveview_mem_free().

◆ update_waveview()

void update_waveview ( Widget_t waveview,
float *  wave,
int  size 
)

Definition at line 43 of file xwaveview.c.

43 {
44 WaveView_t *wave_view = (WaveView_t*)waveview->private_struct;
45 if (size !=wave_view->size && size>1) {
46 free(wave_view->wave);
47 wave_view->wave = NULL;
48 wave_view->size = size;
49 wave_view->wave = (float*)malloc(size*sizeof(float));
50 }
51 if (wave_view->size>1) {
52 memcpy(wave_view->wave, wave, size*sizeof(float));
53 expose_widget(waveview);
54 }
55}
void expose_widget(Widget_t *w)
expose_widgets - send a expose event (EXPOSE) to a Widget_t
Definition xwidget.c:445

References expose_widget(), Widget_t::private_struct, WaveView_t::size, and WaveView_t::wave.

◆ waveview_mem_free()

void waveview_mem_free ( void *  w_,
void *  user_data 
)

Definition at line 57 of file xwaveview.c.

57 {
58 Widget_t *w = (Widget_t*)w_;
59 WaveView_t *wave_view = (WaveView_t*)w->private_struct;
60 free(wave_view->wave);
61 free(wave_view);
62}

References Widget_t::private_struct, and WaveView_t::wave.

Referenced by add_waveview().