1/*
2 * Copyright (C) 2019 Igalia S.L.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20#if !defined(__WEBKIT2_H_INSIDE__) && !defined(WEBKIT2_COMPILATION)
21#error "Only <webkit2/webkit2.h> can be included directly."
22#endif
23
24#ifndef WebKitGeolocationManager_h
25#define WebKitGeolocationManager_h
26
27#include <glib-object.h>
28#include <webkit2/WebKitDefines.h>
29
30G_BEGIN_DECLS
31
32#define WEBKIT_TYPE_GEOLOCATION_MANAGER (webkit_geolocation_manager_get_type())
33#define WEBKIT_GEOLOCATION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_GEOLOCATION_MANAGER, WebKitGeolocationManager))
34#define WEBKIT_IS_GEOLOCATION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_GEOLOCATION_MANAGER))
35#define WEBKIT_GEOLOCATION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_GEOLOCATION_MANAGER, WebKitGeolocationManagerClass))
36#define WEBKIT_IS_GEOLOCATION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_GEOLOCATION_MANAGER))
37#define WEBKIT_GEOLOCATION_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_GEOLOCATION_MANAGER, WebKitGeolocationManagerClass))
38
39#define WEBKIT_TYPE_GEOLOCATION_POSITION (webkit_geolocation_position_get_type())
40
41typedef struct _WebKitGeolocationManager WebKitGeolocationManager;
42typedef struct _WebKitGeolocationManagerClass WebKitGeolocationManagerClass;
43typedef struct _WebKitGeolocationManagerPrivate WebKitGeolocationManagerPrivate;
44typedef struct _WebKitGeolocationPosition WebKitGeolocationPosition;
45
46struct _WebKitGeolocationManager {
47 GObject parent;
48
49 /*< private >*/
50 WebKitGeolocationManagerPrivate *priv;
51};
52
53struct _WebKitGeolocationManagerClass {
54 GObjectClass parent_class;
55
56 void (*_webkit_reserved0) (void);
57 void (*_webkit_reserved1) (void);
58 void (*_webkit_reserved2) (void);
59 void (*_webkit_reserved3) (void);
60};
61
62WEBKIT_API GType
63webkit_geolocation_manager_get_type (void);
64
65WEBKIT_API void
66webkit_geolocation_manager_update_position (WebKitGeolocationManager *manager,
67 WebKitGeolocationPosition *position);
68
69WEBKIT_API void
70webkit_geolocation_manager_failed (WebKitGeolocationManager *manager,
71 const char *error_message);
72
73WEBKIT_API gboolean
74webkit_geolocation_manager_get_enable_high_accuracy (WebKitGeolocationManager *manager);
75
76
77WEBKIT_API GType
78webkit_geolocation_position_get_type (void);
79
80WEBKIT_API WebKitGeolocationPosition *
81webkit_geolocation_position_new (double latitude,
82 double longitude,
83 double accuracy);
84
85WEBKIT_API WebKitGeolocationPosition *
86webkit_geolocation_position_copy (WebKitGeolocationPosition *position);
87
88WEBKIT_API void
89webkit_geolocation_position_free (WebKitGeolocationPosition *position);
90
91WEBKIT_API void
92webkit_geolocation_position_set_timestamp (WebKitGeolocationPosition *position,
93 guint64 timestamp);
94
95WEBKIT_API void
96webkit_geolocation_position_set_altitude (WebKitGeolocationPosition *position,
97 double altitude);
98
99WEBKIT_API void
100webkit_geolocation_position_set_altitude_accuracy (WebKitGeolocationPosition *position,
101 double altitude_accuracy);
102
103WEBKIT_API void
104webkit_geolocation_position_set_heading (WebKitGeolocationPosition *position,
105 double heading);
106
107WEBKIT_API void
108webkit_geolocation_position_set_speed (WebKitGeolocationPosition *position,
109 double speed);
110
111G_END_DECLS
112
113#endif /* WebKitGeolocationManager_h */
114