]> sigrok.org Git - libsigrok.git/blame - output/text/text.h
sr: adjust copyright year
[libsigrok.git] / output / text / text.h
CommitLineData
97554432
BV
1/*
2 * This file is part of the sigrok project.
3 *
c73d2ea4 4 * Copyright (C) 2010-2012 Bert Vermeulen <bert@biot.com>
97554432
BV
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
0f8522bf
UH
20#ifndef LIBSIGROK_OUTPUT_TEXT_TEXT_H
21#define LIBSIGROK_OUTPUT_TEXT_TEXT_H
97554432
BV
22
23#define DEFAULT_BPL_BITS 64
24#define DEFAULT_BPL_HEX 192
25#define DEFAULT_BPL_ASCII 74
26
27enum outputmode {
28 MODE_BITS = 1,
29 MODE_HEX,
30 MODE_ASCII,
31};
32
33struct context {
34 unsigned int num_enabled_probes;
35 int samples_per_line;
36 unsigned int unitsize;
37 int line_offset;
38 int linebuf_len;
39 char *probelist[65];
40 char *linebuf;
41 int spl_cnt;
42 uint8_t *linevalues;
43 char *header;
44 int mark_trigger;
45 uint64_t prevsample;
46 enum outputmode mode;
47};
48
7c1d391c
UH
49SR_PRIV void flush_linebufs(struct context *ctx, char *outbuf);
50SR_PRIV int init(struct sr_output *o, int default_spl, enum outputmode mode);
51SR_PRIV int event(struct sr_output *o, int event_type, char **data_out,
52 uint64_t *length_out);
97554432 53
7c1d391c
UH
54SR_PRIV int init_bits(struct sr_output *o);
55SR_PRIV int data_bits(struct sr_output *o, const char *data_in,
56 uint64_t length_in, char **data_out,
57 uint64_t *length_out);
97554432 58
7c1d391c
UH
59SR_PRIV int init_hex(struct sr_output *o);
60SR_PRIV int data_hex(struct sr_output *o, const char *data_in,
61 uint64_t length_in, char **data_out, uint64_t *length_out);
97554432 62
7c1d391c
UH
63SR_PRIV int init_ascii(struct sr_output *o);
64SR_PRIV int data_ascii(struct sr_output *o, const char *data_in,
65 uint64_t length_in, char **data_out,
66 uint64_t *length_out);
97554432 67
54ac5277 68#endif