123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #ifndef BASE_SYSTEM_SYSTEM_MONITOR_H_
- #define BASE_SYSTEM_SYSTEM_MONITOR_H_
- #include "base/base_export.h"
- #include "base/macros.h"
- #include "base/memory/ref_counted.h"
- #include "base/observer_list_threadsafe.h"
- #include "build/build_config.h"
- namespace base {
- class BASE_EXPORT SystemMonitor {
- public:
-
- enum DeviceType {
- DEVTYPE_AUDIO,
- DEVTYPE_VIDEO_CAPTURE,
- DEVTYPE_UNKNOWN,
- };
-
-
- SystemMonitor();
- ~SystemMonitor();
-
- static SystemMonitor* Get();
- class BASE_EXPORT DevicesChangedObserver {
- public:
-
-
- virtual void OnDevicesChanged(DeviceType device_type) {}
- protected:
- virtual ~DevicesChangedObserver() = default;
- };
-
-
-
- void AddDevicesChangedObserver(DevicesChangedObserver* obs);
-
-
-
- void RemoveDevicesChangedObserver(DevicesChangedObserver* obs);
-
-
-
-
- void ProcessDevicesChanged(DeviceType device_type);
- private:
-
- void NotifyDevicesChanged(DeviceType device_type);
- scoped_refptr<ObserverListThreadSafe<DevicesChangedObserver>>
- devices_changed_observer_list_;
- DISALLOW_COPY_AND_ASSIGN(SystemMonitor);
- };
- }
- #endif
|