-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmetadata.go
More file actions
71 lines (58 loc) · 1.91 KB
/
metadata.go
File metadata and controls
71 lines (58 loc) · 1.91 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
// Code generated by idiomgen. DO NOT EDIT.
package camera
import (
"unsafe"
capi "github.com/AndroidGoLab/ndk/capi/camera"
)
// Metadata wraps the NDK ACameraMetadata handle.
type Metadata struct {
ptr *capi.ACameraMetadata
}
// cptr returns the underlying C pointer, or nil if h is nil.
// This allows passing optional (nullable) handle parameters to capi functions.
func (h *Metadata) cptr() *capi.ACameraMetadata {
if h == nil {
return nil
}
return h.ptr
}
// Close releases the underlying NDK handle.
func (h *Metadata) Close() error {
if h.ptr == nil {
return nil
}
capi.ACameraMetadata_free(h.ptr)
h.ptr = nil
return nil
}
// NewMetadataFromPointer wraps a raw ACameraMetadata pointer.
func NewMetadataFromPointer(ptr unsafe.Pointer) *Metadata {
return &Metadata{ptr: (*capi.ACameraMetadata)(ptr)}
}
// Pointer returns the underlying pointer as unsafe.Pointer.
func (h *Metadata) 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 *Metadata) UintPtr() uintptr {
return uintptr(unsafe.Pointer(h.ptr))
}
// NewMetadataFromUintPtr wraps a uintptr as a Metadata.
// The caller must ensure ptr points to a valid ACameraMetadata.
func NewMetadataFromUintPtr(ptr uintptr) *Metadata {
return &Metadata{ptr: (*capi.ACameraMetadata)(unsafe.Pointer(ptr))}
}
// Copy creates a new Metadata from this Metadata.
func (h *Metadata) Copy() *Metadata {
return &Metadata{ptr: capi.ACameraMetadata_copy(h.ptr)}
}
// I32At returns the value directly.
func (h *Metadata) I32At(tag uint32, idx int32) int32 {
return (int32)(capi.BridgeMetadataI32At(h.ptr, tag, idx))
}
// I32Count returns the value directly.
func (h *Metadata) I32Count(tag uint32) int32 {
return (int32)(capi.BridgeMetadataI32Count(h.ptr, tag))
}