Refactor PositionAccuracy and PositionStatus types for geolocation package
This commit is contained in:
@ -15,6 +15,24 @@ import (
|
|||||||
|
|
||||||
const SignatureGeolocator string = "rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})"
|
const SignatureGeolocator string = "rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})"
|
||||||
|
|
||||||
|
type PositionAccuracy int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
PositionAccuracyDefault PositionAccuracy = 0
|
||||||
|
PositionAccuracyHigh PositionAccuracy = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
type PositionStatus int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
PositionStatusReady PositionStatus = 0
|
||||||
|
PositionStatusInitializing PositionStatus = 1
|
||||||
|
PositionStatusNoData PositionStatus = 2
|
||||||
|
PositionStatusDisabled PositionStatus = 3
|
||||||
|
PositionStatusNotInitialized PositionStatus = 4
|
||||||
|
PositionStatusNotAvailable PositionStatus = 5
|
||||||
|
)
|
||||||
|
|
||||||
type Geolocator struct {
|
type Geolocator struct {
|
||||||
ole.IUnknown
|
ole.IUnknown
|
||||||
}
|
}
|
||||||
@ -83,7 +101,7 @@ func (impl *Geolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, erro
|
|||||||
return v.GetGeopositionAsync()
|
return v.GetGeopositionAsync()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (impl *Geolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*foundation.IAsyncOperation, error) {
|
func (impl *Geolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge int64, timeout int64) (*foundation.IAsyncOperation, error) {
|
||||||
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
||||||
defer itf.Release()
|
defer itf.Release()
|
||||||
v := (*iGeolocator)(unsafe.Pointer(itf))
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
||||||
@ -285,13 +303,13 @@ func (v *iGeolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, error)
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *iGeolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*foundation.IAsyncOperation, error) {
|
func (v *iGeolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge int64, timeout int64) (*foundation.IAsyncOperation, error) {
|
||||||
var out *foundation.IAsyncOperation
|
var out *foundation.IAsyncOperation
|
||||||
hr, _, _ := syscall.SyscallN(
|
hr, _, _ := syscall.SyscallN(
|
||||||
v.VTable().GetGeopositionAsyncWithAgeAndTimeout,
|
v.VTable().GetGeopositionAsyncWithAgeAndTimeout,
|
||||||
uintptr(unsafe.Pointer(v)), // this
|
uintptr(unsafe.Pointer(v)), // this
|
||||||
uintptr(unsafe.Pointer(&maximumAge)), // in foundation.TimeSpan
|
uintptr(unsafe.Pointer(&maximumAge)), // in int64 (TimeSpan)
|
||||||
uintptr(unsafe.Pointer(&timeout)), // in foundation.TimeSpan
|
uintptr(unsafe.Pointer(&timeout)), // in int64 (TimeSpan)
|
||||||
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -501,7 +519,7 @@ func GeolocatorGetGeopositionHistoryAsync(startTime foundation.DateTime) (*found
|
|||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateTime, duration foundation.TimeSpan) (*foundation.IAsyncOperation, error) {
|
func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateTime, duration int64) (*foundation.IAsyncOperation, error) {
|
||||||
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics))
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -513,7 +531,7 @@ func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateT
|
|||||||
v.VTable().GeolocatorGetGeopositionHistoryWithDurationAsync,
|
v.VTable().GeolocatorGetGeopositionHistoryWithDurationAsync,
|
||||||
uintptr(unsafe.Pointer(v)), // this
|
uintptr(unsafe.Pointer(v)), // this
|
||||||
uintptr(unsafe.Pointer(&startTime)), // in foundation.DateTime
|
uintptr(unsafe.Pointer(&startTime)), // in foundation.DateTime
|
||||||
uintptr(unsafe.Pointer(&duration)), // in foundation.TimeSpan
|
uintptr(unsafe.Pointer(&duration)), // in int64 (TimeSpan)
|
||||||
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user