BizHawk/waterbox/stella/port/OSystemBizhawk.hxx

63 lines
2.3 KiB
C++

//============================================================================
//
// SSSS tt lll lll
// SS SS tt ll ll
// SS tttttt eeee ll ll aaaa
// SSSS tt ee ee ll ll aa
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
// SS SS tt ee ll ll aa aa
// SSSS ttt eeeee llll llll aaaaa
//
// Copyright (c) 1995-2024 by Bradford W. Mott, Stephen Anthony
// and the Stella Team
//
// See the file "License.txt" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//============================================================================
#pragma once
#include "OSystemStandalone.hxx"
/**
This class defines an OSystem object for UNIX-like OS's (Linux).
It is responsible for completely implementing getBaseDirectories(),
to set the base directory and various other save/load locations.
@author Stephen Anthony
*/
class OSystemBIZHAWK : public OSystemStandalone
{
public:
OSystemBIZHAWK() = default;
~OSystemBIZHAWK() override = default;
/**
Determine the base directory and home directory from the derived
class. It can also use hints, as described below.
@param basedir The base directory for all configuration files
@param homedir The default directory to store various other files
@param useappdir A hint that the base dir should be set to the
app directory; not all ports can do this, so
they are free to ignore it
@param usedir A hint that the base dir should be set to this
parameter; not all ports can do this, so
they are free to ignore it
*/
void getBaseDirectories(string& basedir, string& homedir,
bool useappdir, string_view usedir) override;
void initPersistence(FSNode& basedir) override;
string describePresistence() override;
private:
// Following constructors and assignment operators not supported
OSystemBIZHAWK(const OSystemBIZHAWK&) = delete;
OSystemBIZHAWK(OSystemBIZHAWK&&) = delete;
OSystemBIZHAWK& operator=(const OSystemBIZHAWK&) = delete;
OSystemBIZHAWK& operator=(OSystemBIZHAWK&&) = delete;
};