-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanager.go
More file actions
101 lines (81 loc) · 3.69 KB
/
manager.go
File metadata and controls
101 lines (81 loc) · 3.69 KB
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
// Code generated by idiomgen. DO NOT EDIT.
package sensor
import (
"unsafe"
capi "github.com/AndroidGoLab/ndk/capi/sensor"
)
// Manager wraps the NDK ASensorManager handle.
type Manager struct {
ptr *capi.ASensorManager
}
// cptr returns the underlying C pointer, or nil if h is nil.
// This allows passing optional (nullable) handle parameters to capi functions.
func (h *Manager) cptr() *capi.ASensorManager {
if h == nil {
return nil
}
return h.ptr
}
// NewManagerFromPointer wraps a raw ASensorManager pointer.
func NewManagerFromPointer(ptr unsafe.Pointer) *Manager {
return &Manager{ptr: (*capi.ASensorManager)(ptr)}
}
// Pointer returns the underlying pointer as unsafe.Pointer.
func (h *Manager) Pointer() unsafe.Pointer {
return unsafe.Pointer(h.ptr)
}
// UintPtr returns the underlying pointer as a uintptr.
// This is useful for interop with gomobile bind, golang.org/x/mobile,
// gioui.org, and other packages that represent native handles as uintptr.
func (h *Manager) UintPtr() uintptr {
return uintptr(unsafe.Pointer(h.ptr))
}
// NewManagerFromUintPtr wraps a uintptr as a Manager.
// The caller must ensure ptr points to a valid ASensorManager.
func NewManagerFromUintPtr(ptr uintptr) *Manager {
return &Manager{ptr: (*capi.ASensorManager)(unsafe.Pointer(ptr))}
}
// ConfigureDirectReport calls the underlying NDK function.
func (h *Manager) ConfigureDirectReport(sensor *Sensor, channelID int32, rate int32) error {
return result(capi.ASensorManager_configureDirectReport(h.ptr, sensor.cptr(), channelID, rate))
}
// CreateEventQueue creates a new EventQueue from this Manager.
func (h *Manager) CreateEventQueue(looper *ALooper, ident int32, callback ALooper_callbackFunc, data unsafe.Pointer) *EventQueue {
return &EventQueue{ptr: capi.ASensorManager_createEventQueue(h.ptr, (*capi.ALooper)(looper), ident, capi.ALooper_callbackFunc(callback), data)}
}
// CreateHardwareBufferDirectChannel calls the underlying NDK function.
func (h *Manager) CreateHardwareBufferDirectChannel(buffer *HardwareBuffer, size uint64) error {
return result(capi.ASensorManager_createHardwareBufferDirectChannel(h.ptr, buffer.cptr(), size))
}
// CreateSharedMemoryDirectChannel calls the underlying NDK function.
func (h *Manager) CreateSharedMemoryDirectChannel(fd int32, size uint64) error {
return result(capi.ASensorManager_createSharedMemoryDirectChannel(h.ptr, fd, size))
}
// DestroyDirectChannel calls the underlying NDK function.
func (h *Manager) DestroyDirectChannel(channelID int32) {
capi.ASensorManager_destroyDirectChannel(h.ptr, channelID)
}
// DestroyEventQueue calls the underlying NDK function.
func (h *Manager) DestroyEventQueue(queue *EventQueue) error {
return result(capi.ASensorManager_destroyEventQueue(h.ptr, queue.cptr()))
}
// DefaultSensor creates a new Sensor from this Manager.
func (h *Manager) DefaultSensor(_type Type) *Sensor {
return &Sensor{ptr: capi.ASensorManager_getDefaultSensor(h.ptr, int32(_type))}
}
// GetDefaultSensorEx creates a new Sensor from this Manager.
func (h *Manager) GetDefaultSensorEx(_type Type, wakeUp bool) *Sensor {
return &Sensor{ptr: capi.ASensorManager_getDefaultSensorEx(h.ptr, int32(_type), wakeUp)}
}
// GetDynamicSensorList returns the value directly.
func (h *Manager) GetDynamicSensorList(list *ASensorList) int64 {
return (int64)(capi.ASensorManager_getDynamicSensorList(h.ptr, (*capi.ASensorList)(list)))
}
// GetInstance calls the underlying C function.
func GetInstance() *Manager {
return &Manager{ptr: capi.ASensorManager_getInstance()}
}
// ASensorManager_getInstanceForPackage calls the underlying C function.
func ASensorManager_getInstanceForPackage(packageName string) *Manager {
return &Manager{ptr: capi.ASensorManager_getInstanceForPackage(packageName)}
}