kodi
UDevProvider.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "storage/IStorageProvider.h"
12 
13 #include <string>
14 #include <vector>
15 
16 struct udev;
17 struct udev_monitor;
18 
20 {
21 public:
22  CUDevProvider();
23  ~CUDevProvider() override = default;
24 
25  void Initialize() override;
26  void Stop() override;
27 
28  void GetLocalDrives(VECSOURCES &localDrives) override;
29  void GetRemovableDrives(VECSOURCES &removableDrives) override;
30 
31  bool Eject(const std::string& mountpath) override;
32 
33  std::vector<std::string> GetDiskUsage() override;
34 
35  bool PumpDriveChangeEvents(IStorageEventsCallback *callback) override;
36 
37 private:
38  void GetDisks(VECSOURCES& devices, bool removable);
39 
40  struct udev *m_udev;
41  struct udev_monitor *m_udevMon;
42 };
Definition: IStorageProvider.h:65
Definition: UDevProvider.h:19
Definition: IStorageProvider.h:44