![]() |
Sunshine latest
Self-hosted game stream host for Moonlight.
|
Miscellaneous definitions for macOS platform. More...
#include <fcntl.h>
#include <ifaddrs.h>
#include <arpa/inet.h>
#include <dlfcn.h>
#include <Foundation/Foundation.h>
#include <mach-o/dyld.h>
#include <net/if_dl.h>
#include <pwd.h>
#include <boost/asio/ip/address.hpp>
#include <boost/asio/ip/host_name.hpp>
#include <boost/process/v1.hpp>
#include "misc.h"
#include "src/entry_handler.h"
#include "src/logging.h"
#include "src/platform/common.h"
Classes | |
class | platf::macos_high_precision_timer |
class | platf::qos_t |
Macros | |
#define | __APPLE_USE_RFC_3542 1 |
Functions | |
void | platf::adjust_thread_priority (thread_priority_e priority) |
std::filesystem::path | platf::appdata () |
Performs migration if necessary, then returns the appdata directory. | |
bool | platf::CGPreflightScreenCaptureAccess (void) __attribute__((weak_import)) |
bool | platf::CGRequestScreenCaptureAccess (void) __attribute__((weak_import)) |
std::unique_ptr< high_precision_timer > | platf::create_high_precision_timer () |
Create platform-specific timer capable of high-precision sleep. | |
std::unique_ptr< deinit_t > | platf::enable_socket_qos (uintptr_t native_socket, boost::asio::ip::address &address, uint16_t port, qos_data_type_e data_type, bool dscp_tagging) |
Enable QoS on the given socket for traffic to the specified destination. | |
std::string | platf::from_sockaddr (const sockaddr *const) |
std::pair< std::uint16_t, std::string > | platf::from_sockaddr_ex (const sockaddr *const) |
std::string | platf::get_host_name () |
Returns the current computer name in UTF-8. | |
ifaddr_t | platf::get_ifaddrs () |
std::string | platf::get_mac_address (const std::string_view &address) |
void * | dyn::handle (const std::vector< const char * > &libs) |
std::unique_ptr< deinit_t > | platf::init () |
bool | platf::is_screen_capture_allowed () |
int | dyn::load (void *handle, const std::vector< std::tuple< apiproc *, const char * > > &funcs, bool strict) |
void | platf::open_url (const std::string &url) |
Open a url in the default web browser. | |
bool | platf::process_group_running (std::uintptr_t native_handle) |
Check if a process group still has running children. | |
bool | platf::request_process_group_exit (std::uintptr_t native_handle) |
Attempt to gracefully terminate a process group. | |
void | platf::restart () |
void | platf::restart_on_exit () |
bp::child | platf::run_command (bool elevated, bool interactive, const std::string &cmd, boost::filesystem::path &working_dir, const bp::environment &env, FILE *file, std::error_code &ec, bp::group *group) |
Run a command on the users profile. | |
bool | platf::send (send_info_t &send_info) |
bool | platf::send_batch (batched_send_info_t &send_info) |
int | platf::set_env (const std::string &name, const std::string &value) |
Set an environment variable. | |
void | platf::streaming_will_start () |
void | platf::streaming_will_stop () |
struct sockaddr_in | platf::to_sockaddr (boost::asio::ip::address_v4 address, uint16_t port) |
struct sockaddr_in6 | platf::to_sockaddr (boost::asio::ip::address_v6 address, uint16_t port) |
int | platf::unset_env (const std::string &name) |
Unset an environment variable. | |
Miscellaneous definitions for macOS platform.
std::filesystem::path platf::appdata | ( | ) |
Performs migration if necessary, then returns the appdata directory.
This is used for the log directory, so it cannot invoke Boost logging!
std::unique_ptr< high_precision_timer > platf::create_high_precision_timer | ( | ) |
Create platform-specific timer capable of high-precision sleep.
std::unique_ptr< deinit_t > platf::enable_socket_qos | ( | uintptr_t | native_socket, |
boost::asio::ip::address & | address, | ||
uint16_t | port, | ||
qos_data_type_e | data_type, | ||
bool | dscp_tagging ) |
Enable QoS on the given socket for traffic to the specified destination.
Enables QoS on the given socket for traffic to the specified destination.
native_socket | The native socket handle. |
address | The destination address for traffic sent on this socket. |
port | The destination port for traffic sent on this socket. |
data_type | The type of traffic sent on this socket. |
dscp_tagging | Specifies whether to enable DSCP tagging on outgoing traffic. |
std::string platf::get_host_name | ( | ) |
Returns the current computer name in UTF-8.
void platf::open_url | ( | const std::string & | url | ) |
Open a url in the default web browser.
url | The url to open. |
bool platf::process_group_running | ( | std::uintptr_t | native_handle | ) |
Check if a process group still has running children.
native_handle | The native handle of the process group. |
true
if processes are still running. bool platf::request_process_group_exit | ( | std::uintptr_t | native_handle | ) |
Attempt to gracefully terminate a process group.
native_handle | The native handle of the process group. |
true
if termination was successfully requested. bp::child platf::run_command | ( | bool | elevated, |
bool | interactive, | ||
const std::string & | cmd, | ||
boost::filesystem::path & | working_dir, | ||
const bp::environment & | env, | ||
FILE * | file, | ||
std::error_code & | ec, | ||
bp::group * | group ) |
Run a command on the users profile.
Launches a child process as the user, using the current user's environment and a specific working directory.
elevated | Specify whether to elevate the process. |
interactive | Specify whether this will run in a window or hidden. |
cmd | The command to run. |
working_dir | The working directory for the new process. |
env | The environment variables to use for the new process. |
file | A file object to redirect the child process's output to (may be nullptr ). |
ec | An error code, set to indicate any errors that occur during the launch process. |
group | A pointer to a bp::group object to which the new process should belong (may be nullptr ). |
bp::child
object representing the new process, or an empty bp::child
object if the launch fails. int platf::set_env | ( | const std::string & | name, |
const std::string & | value ) |
Set an environment variable.
name | The name of the environment variable. |
value | The value to set the environment variable to. |
int platf::unset_env | ( | const std::string & | name | ) |
Unset an environment variable.
name | The name of the environment variable. |