OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file declares GPS providers that run on linux. Currently, just uses | 5 // This file declares GPS providers that run on linux. Currently, just uses |
6 // the libgps (gpsd) API. Public for testing only - for normal usage this | 6 // the libgps (gpsd) API. Public for testing only - for normal usage this |
7 // header should not be required, as location_provider.h declares the needed | 7 // header should not be required, as location_provider.h declares the needed |
8 // factory function. | 8 // factory function. |
9 | 9 |
10 #ifndef CONTENT_BROWSER_GEOLOCATION_GPS_LOCATION_PROVIDER_LINUX_H_ | 10 #ifndef CONTENT_BROWSER_GEOLOCATION_GPS_LOCATION_PROVIDER_LINUX_H_ |
(...skipping 15 matching lines...) Expand all Loading... |
26 // there's a chance it could block, so better move this into its own worker | 26 // there's a chance it could block, so better move this into its own worker |
27 // thread. | 27 // thread. |
28 class CONTENT_EXPORT GpsLocationProviderLinux : public LocationProviderBase { | 28 class CONTENT_EXPORT GpsLocationProviderLinux : public LocationProviderBase { |
29 public: | 29 public: |
30 typedef LibGps* (*LibGpsFactory)(); | 30 typedef LibGps* (*LibGpsFactory)(); |
31 // |factory| will be used to create the gpsd client library wrapper. (Note | 31 // |factory| will be used to create the gpsd client library wrapper. (Note |
32 // NewSystemLocationProvider() will use the default factory). | 32 // NewSystemLocationProvider() will use the default factory). |
33 explicit GpsLocationProviderLinux(LibGpsFactory libgps_factory); | 33 explicit GpsLocationProviderLinux(LibGpsFactory libgps_factory); |
34 virtual ~GpsLocationProviderLinux(); | 34 virtual ~GpsLocationProviderLinux(); |
35 | 35 |
| 36 void SetGpsdReconnectIntervalMillis(int value) { |
| 37 gpsd_reconnect_interval_millis_ = value; |
| 38 } |
| 39 void SetPollPeriodMovingMillis(int value) { |
| 40 poll_period_moving_millis_ = value; |
| 41 } |
| 42 void SetPollPeriodStationaryMillis(int value) { |
| 43 poll_period_stationary_millis_ = value; |
| 44 } |
| 45 |
36 // LocationProvider | 46 // LocationProvider |
37 virtual bool StartProvider(bool high_accuracy); | 47 virtual bool StartProvider(bool high_accuracy); |
38 virtual void StopProvider(); | 48 virtual void StopProvider(); |
39 virtual void GetPosition(Geoposition* position); | 49 virtual void GetPosition(Geoposition* position); |
40 virtual void UpdatePosition(); | 50 virtual void UpdatePosition(); |
41 virtual void OnPermissionGranted(const GURL& requesting_frame); | 51 virtual void OnPermissionGranted(const GURL& requesting_frame); |
42 | 52 |
43 private: | 53 private: |
44 // Task which run in the child thread. | 54 // Task which run in the child thread. |
45 void DoGpsPollTask(); | 55 void DoGpsPollTask(); |
46 | 56 |
47 // Will schedule a poll; i.e. enqueue DoGpsPollTask deferred task. | 57 // Will schedule a poll; i.e. enqueue DoGpsPollTask deferred task. |
48 void ScheduleNextGpsPoll(int interval); | 58 void ScheduleNextGpsPoll(int interval); |
49 | 59 |
| 60 int gpsd_reconnect_interval_millis_; |
| 61 int poll_period_moving_millis_; |
| 62 int poll_period_stationary_millis_; |
| 63 |
50 const LibGpsFactory libgps_factory_; | 64 const LibGpsFactory libgps_factory_; |
51 scoped_ptr<LibGps> gps_; | 65 scoped_ptr<LibGps> gps_; |
52 Geoposition position_; | 66 Geoposition position_; |
53 | 67 |
54 // Holder for the tasks which run on the thread; takes care of cleanup. | 68 // Holder for the tasks which run on the thread; takes care of cleanup. |
55 base::WeakPtrFactory<GpsLocationProviderLinux> weak_factory_; | 69 base::WeakPtrFactory<GpsLocationProviderLinux> weak_factory_; |
56 }; | 70 }; |
57 | 71 |
58 #endif // CONTENT_BROWSER_GEOLOCATION_GPS_LOCATION_PROVIDER_LINUX_H_ | 72 #endif // CONTENT_BROWSER_GEOLOCATION_GPS_LOCATION_PROVIDER_LINUX_H_ |
OLD | NEW |