File: quickplot.h

package info (click to toggle)
quickplot 0.10.3-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 2,464 kB
  • sloc: ansic: 16,640; sh: 11,163; makefile: 395
file content (130 lines) | stat: -rw-r--r-- 3,056 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
  Quickplot - an interactive 2D plotter

  Copyright (C) 1998-2011  Lance Arsenault


  This file is part of Quickplot.

  Quickplot is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published
  by the Free Software Foundation, either version 3 of the License,
  or (at your option) any later version.

  Quickplot is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with Quickplot.  If not, see <http://www.gnu.org/licenses/>.

*/

/** installed library header file for libquickplot */


#ifndef _QUICKPLOT_H_
#define _QUICKPLOT_H_



#include <sys/types.h>
#include <gtk/gtk.h>


#define QP_CHANNEL_FORM_SERIES 0
#define QP_CHANNEL_FORM_FUNC   1


/* quickplots stored buffer data types.
 * We save memory space by using the
 * smallest type needed to hold the
 * values that are plotted.  We may
 * never use some of these. */
#define QP_TYPE_UNKNOWN            0
#define QP_TYPE_SHORT              1
#define QP_TYPE_INT                2
#define QP_TYPE_LONG               3
#define QP_TYPE_LONG_LONG          4
#define QP_TYPE_UNSIGNED_SHORT     5
#define QP_TYPE_UNSIGNED_INT       6
#define QP_TYPE_UNSIGNED_LONG      7
#define QP_TYPE_UNSIGNED_LONG_LONG 8
#define QP_TYPE_FLOAT              9
#define QP_TYPE_DOUBLE            10
#define QP_TYPE_LONG_DOUBLE       11
/* A source can have multiple types,
 * different types in different channels. */
#define QP_TYPE_MULTIPLE          12
/* Added to make coding easier */
#define QP_TYPE_MAX               12


/** \brief the object that holds all quickplot state data
 */
typedef struct qp_win *qp_win_t;

/** \brief holds x,y channels to plot
 */
typedef struct qp_plot *qp_plot_t;

/** \brief holds all loaded data or functions from a file or
 * other source
 */
typedef struct qp_source *qp_source_t;

/** \brief holds a series of values or function that can be plotted
 */
typedef struct qp_channel *qp_channel_t;

/** \brief hold a list of plots to put on a graph 
 */
typedef struct qp_graph *qp_graph_t;



#ifdef __cplusplus
extern "C"
{
#endif


extern
qp_win_t qp_win_create(void);

extern
void qp_win_destroy(qp_win_t qp);

/** /return the number of channels created from this */
extern
size_t qp_app_read(const char *filename);


/**
 * x and y are channel numbers starting at 0
 * \return 0 on success and 1 on failure */
extern
int qp_win_graph(qp_win_t qp, const ssize_t *x, const ssize_t *y,
    size_t num, const char *name);

extern
void qp_win_graph_default(qp_win_t qp);

extern
int qp_win_graph_default_source(qp_win_t qp, qp_source_t s, const char *name);


/** \return 0 on success, -1 if it was initialized already
 * and 1 on failure. */
extern
int qp_app_init(int *argc, char ***argv);


#ifdef  __cplusplus
}
#endif

#endif /* #ifndef _QUICKPLOT_H_ */