X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fcross.h;h=20bab38a29e7296f8a52130cfd204aa56a417efd;hp=584fa2b426a7f2fab9460205edbd47cd2395bf8f;hb=a1f7bf2d9e5610075fbd898cdf52f4f8373741f2;hpb=adddda49c17e87198253d9c900dcef0f5fb2e175 diff --git a/src/lib/cross.h b/src/lib/cross.h index 584fa2b42..20bab38a2 100644 --- a/src/lib/cross.h +++ b/src/lib/cross.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2018 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -30,6 +30,7 @@ #endif #include #include +#include #ifdef DCPOMATIC_WINDOWS #define WEXITSTATUS(w) (w) @@ -44,6 +45,7 @@ extern std::string cpu_info (); extern void run_ffprobe (boost::filesystem::path, boost::filesystem::path); extern std::list > mount_info (); extern boost::filesystem::path openssl_path (); +extern boost::filesystem::path disk_writer_path (); #ifdef DCPOMATIC_OSX extern boost::filesystem::path app_contents (); #endif @@ -60,6 +62,15 @@ extern int avio_open_boost (AVIOContext** s, boost::filesystem::path file, int f extern boost::filesystem::path home_directory (); extern std::string command_and_read (std::string cmd); extern bool running_32_on_64 (); +extern void unprivileged (); +extern boost::filesystem::path config_path (); + +class PrivilegeEscalator +{ +public: + PrivilegeEscalator (); + ~PrivilegeEscalator (); +}; /** @class Waker * @brief A class which tries to keep the computer awake on various operating systems. @@ -82,4 +93,34 @@ private: #endif }; +class Drive +{ +public: + Drive (std::string internal_name, uint64_t size, bool mounted, boost::optional vendor, boost::optional model) + : _internal_name(internal_name) + , _size(size) + , _mounted(mounted) + , _vendor(vendor) + , _model(model) + {} + + std::string description () const; + std::string internal_name () const { + return _internal_name; + } + bool mounted () const { + return _mounted; + } + +private: + std::string _internal_name; + /** size in bytes */ + uint64_t _size; + bool _mounted; + boost::optional _vendor; + boost::optional _model; +}; + +std::vector get_drives (); + #endif