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})"
|
||||
|
||||
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 {
|
||||
ole.IUnknown
|
||||
}
|
||||
@ -83,7 +101,7 @@ func (impl *Geolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, erro
|
||||
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))
|
||||
defer itf.Release()
|
||||
v := (*iGeolocator)(unsafe.Pointer(itf))
|
||||
@ -285,13 +303,13 @@ func (v *iGeolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, error)
|
||||
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
|
||||
hr, _, _ := syscall.SyscallN(
|
||||
v.VTable().GetGeopositionAsyncWithAgeAndTimeout,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
uintptr(unsafe.Pointer(&maximumAge)), // in foundation.TimeSpan
|
||||
uintptr(unsafe.Pointer(&timeout)), // in foundation.TimeSpan
|
||||
uintptr(unsafe.Pointer(&maximumAge)), // in int64 (TimeSpan)
|
||||
uintptr(unsafe.Pointer(&timeout)), // in int64 (TimeSpan)
|
||||
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
||||
)
|
||||
|
||||
@ -501,7 +519,7 @@ func GeolocatorGetGeopositionHistoryAsync(startTime foundation.DateTime) (*found
|
||||
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))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -513,7 +531,7 @@ func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateT
|
||||
v.VTable().GeolocatorGetGeopositionHistoryWithDurationAsync,
|
||||
uintptr(unsafe.Pointer(v)), // this
|
||||
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
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user