-
Notifications
You must be signed in to change notification settings - Fork 256
/
Copy pathwebrtc.h
137 lines (103 loc) · 2.96 KB
/
webrtc.h
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
131
132
133
134
135
136
137
/* Code generated by cmd/cgo; DO NOT EDIT. */
/* package command-line-arguments */
#line 1 "cgo-builtin-export-prolog"
#include <stddef.h>
#ifndef GO_CGO_EXPORT_PROLOGUE_H
#define GO_CGO_EXPORT_PROLOGUE_H
#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef struct { const char *p; ptrdiff_t n; } _GoString_;
#endif
#endif
/* Start of preamble from import "C" comments. */
#line 7 "bridge.go"
#include <stddef.h>
#include <stdint.h>
typedef struct GoDataChannelMessage
{
// bool in cgo is really weird, so it's simpler to just use classic int as bool
int is_string;
void *data;
size_t data_len;
} GoDataChannelMessage;
typedef uint16_t GoDataChannel;
typedef void (*GoOnDataChannelFunc)(GoDataChannel);
typedef void (*GoOnOpenFunc)(GoDataChannel);
typedef void (*GoOnMessageFunc)(GoDataChannel, GoDataChannelMessage);
// Calling C function pointers is currently not supported, however you can
// declare Go variables which hold C function pointers and pass them back
// and forth between Go and C. C code may call function pointers received from Go.
// Reference: https://golang.org/cmd/cgo/#hdr-Go_references_to_C
inline void bridge_on_data_channel(GoOnDataChannelFunc cb, GoDataChannel d)
{
cb(d);
}
inline void bridge_on_open(GoOnOpenFunc cb, GoDataChannel d)
{
cb(d);
}
inline void bridge_on_message(GoOnMessageFunc cb, GoDataChannel d, GoDataChannelMessage msg)
{
cb(d, msg);
}
#line 1 "cgo-generated-wrapper"
/* End of preamble from import "C" comments. */
/* Start of boilerplate cgo prologue. */
#line 1 "cgo-gcc-export-header-prolog"
#ifndef GO_CGO_PROLOGUE_H
#define GO_CGO_PROLOGUE_H
typedef signed char GoInt8;
typedef unsigned char GoUint8;
typedef short GoInt16;
typedef unsigned short GoUint16;
typedef int GoInt32;
typedef unsigned int GoUint32;
typedef long long GoInt64;
typedef unsigned long long GoUint64;
typedef GoInt64 GoInt;
typedef GoUint64 GoUint;
typedef size_t GoUintptr;
typedef float GoFloat32;
typedef double GoFloat64;
#ifdef _MSC_VER
#include <complex.h>
typedef _Fcomplex GoComplex64;
typedef _Dcomplex GoComplex128;
#else
typedef float _Complex GoComplex64;
typedef double _Complex GoComplex128;
#endif
/*
static assertion to make sure the file is being used on architecture
at least with matching size of GoInt.
*/
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
#ifndef GO_CGO_GOSTRING_TYPEDEF
typedef _GoString_ GoString;
#endif
typedef void *GoMap;
typedef void *GoChan;
typedef struct { void *t; void *v; } GoInterface;
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
#endif
/* End of boilerplate cgo prologue. */
#ifdef __cplusplus
extern "C" {
#endif
// nolint
//
extern void GoRun(GoOnDataChannelFunc f);
// nolint
//
extern void GoOnOpen(GoDataChannel d, GoOnOpenFunc f);
// nolint
//
extern void GoOnMessage(GoDataChannel d, GoOnMessageFunc f);
// nolint
//
extern void GoSendText(GoDataChannel d, char* t);
// nolint
//
extern char* GoLabel(GoDataChannel d);
#ifdef __cplusplus
}
#endif