aboutsummaryrefslogtreecommitdiff
path: root/src/core/launch_params.h
blob: 4da30fc1c247950eea4e7ed7b35d8798d83d8a65 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later

#pragma once

#include <string>
#include <optional>
#include "common/common_types.h"
#include "network/room.h"

namespace Core {

class System;
struct LaunchParams {
    std::string argv0{};
    std::string filepath{};
    std::string nickname{};
    std::string password{};
    std::string address{};
    std::string input_profile{};
    std::string program_args{};
    std::optional<std::string> config_path{};
    std::optional<int> selected_user{};
    std::optional<u16> override_gdb_port{};
    std::optional<std::string> log_filter{};
    u16 port = Network::DefaultRoomPort;
    bool use_multiplayer = false;
    bool fullscreen = false;
    bool force_null_render = false;
    bool force_single_core = false;
    // print
    bool print_version = false;
    bool print_help = false;
    // qt
    bool launch_hlaunch = false;
    bool launch_qlaunch = false;
    bool launch_setup = false;
};

LaunchParams ParseLaunchParams(Core::System& system, int argc, char *argv[], wchar_t *argv_w[]) noexcept;
void ApplyLaunchParams(LaunchParams const& lp) noexcept;

}