wl: separate inline C
Having a huge blurb of inline C hurts readability on web pages and some text editors. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
7106b00968
commit
045983d7f4
@ -1,17 +1,7 @@
|
|||||||
package wl
|
#include "wayland-bind.h"
|
||||||
|
|
||||||
//go:generate sh -c "wayland-scanner client-header `pkg-config --variable=datarootdir wayland-protocols`/wayland-protocols/staging/security-context/security-context-v1.xml security-context-v1-protocol.h"
|
|
||||||
//go:generate sh -c "wayland-scanner private-code `pkg-config --variable=datarootdir wayland-protocols`/wayland-protocols/staging/security-context/security-context-v1.xml security-context-v1-protocol.c"
|
|
||||||
|
|
||||||
/*
|
|
||||||
#cgo linux pkg-config: --static wayland-client
|
|
||||||
#cgo freebsd openbsd LDFLAGS: -lwayland-client
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
@ -33,7 +23,7 @@ static const struct wl_registry_listener registry_listener = {
|
|||||||
.global_remove = registry_handle_global_remove,
|
.global_remove = registry_handle_global_remove,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int32_t bind_wayland_fd(char *socket_path, int fd, const char *app_id, const char *instance_id, int sync_fd) {
|
int32_t bind_wayland_fd(char *socket_path, int fd, const char *app_id, const char *instance_id, int sync_fd) {
|
||||||
int32_t res = 0; // refer to resErr for meaning
|
int32_t res = 0; // refer to resErr for meaning
|
||||||
|
|
||||||
struct wl_display *display;
|
struct wl_display *display;
|
||||||
@ -96,17 +86,3 @@ out:
|
|||||||
free((void *)instance_id);
|
free((void *)instance_id);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
import "C"
|
|
||||||
import "errors"
|
|
||||||
|
|
||||||
var resErr = [...]error{
|
|
||||||
0: nil,
|
|
||||||
1: errors.New("wl_display_connect_to_fd() failed"),
|
|
||||||
2: errors.New("wp_security_context_v1 not available"),
|
|
||||||
}
|
|
||||||
|
|
||||||
func bindWaylandFd(socketPath string, fd uintptr, appID, instanceID string, syncFD uintptr) error {
|
|
||||||
res := C.bind_wayland_fd(C.CString(socketPath), C.int(fd), C.CString(appID), C.CString(instanceID), C.int(syncFD))
|
|
||||||
return resErr[int32(res)]
|
|
||||||
}
|
|
3
wl/wayland-bind.h
Normal file
3
wl/wayland-bind.h
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
int32_t bind_wayland_fd(char *socket_path, int fd, const char *app_id, const char *instance_id, int sync_fd);
|
24
wl/wl.go
Normal file
24
wl/wl.go
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package wl
|
||||||
|
|
||||||
|
//go:generate sh -c "wayland-scanner client-header `pkg-config --variable=datarootdir wayland-protocols`/wayland-protocols/staging/security-context/security-context-v1.xml security-context-v1-protocol.h"
|
||||||
|
//go:generate sh -c "wayland-scanner private-code `pkg-config --variable=datarootdir wayland-protocols`/wayland-protocols/staging/security-context/security-context-v1.xml security-context-v1-protocol.c"
|
||||||
|
|
||||||
|
/*
|
||||||
|
#cgo linux pkg-config: --static wayland-client
|
||||||
|
#cgo freebsd openbsd LDFLAGS: -lwayland-client
|
||||||
|
|
||||||
|
#include "wayland-bind.h"
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
import "errors"
|
||||||
|
|
||||||
|
var resErr = [...]error{
|
||||||
|
0: nil,
|
||||||
|
1: errors.New("wl_display_connect_to_fd() failed"),
|
||||||
|
2: errors.New("wp_security_context_v1 not available"),
|
||||||
|
}
|
||||||
|
|
||||||
|
func bindWaylandFd(socketPath string, fd uintptr, appID, instanceID string, syncFD uintptr) error {
|
||||||
|
res := C.bind_wayland_fd(C.CString(socketPath), C.int(fd), C.CString(appID), C.CString(instanceID), C.int(syncFD))
|
||||||
|
return resErr[int32(res)]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user