syntax = "proto3";
package retrom;
import "google/protobuf/timestamp.proto";
enum SaveStrategy {
SINGLE_FILE = 0;
FILE_SYSTEM_DIRECTORY = 1;
DISK_IMAGE = 2;
}
message Emulator {
enum OperatingSystem {
WINDOWS = 0;
MACOS = 1;
LINUX_x86_64 = 2;
WASM = 3;
}
int32 id = 1;
repeated int32 supported_platforms = 2;
string name = 3;
SaveStrategy save_strategy = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
bool built_in = 7;
optional string libretro_name = 8;
repeated OperatingSystem operating_systems = 9;
}
message NewEmulator {
repeated int32 supported_platforms = 1;
string name = 2;
SaveStrategy save_strategy = 3;
optional google.protobuf.Timestamp created_at = 4;
optional google.protobuf.Timestamp updated_at = 5;
optional bool built_in = 6;
optional string libretro_name = 7;
repeated Emulator.OperatingSystem operating_systems = 8;
}
message UpdatedEmulator {
int32 id = 1;
repeated int32 supported_platforms = 2;
optional string name = 3;
optional SaveStrategy save_strategy = 4;
optional google.protobuf.Timestamp created_at = 5;
optional google.protobuf.Timestamp updated_at = 6;
optional bool built_in = 7;
optional string libretro_name = 8;
repeated Emulator.OperatingSystem operating_systems = 9;
}
message EmulatorProfile {
int32 id = 1;
int32 emulator_id = 2;
string name = 3;
repeated string supported_extensions = 4;
repeated string custom_args = 5;
google.protobuf.Timestamp created_at = 6;
google.protobuf.Timestamp updated_at = 7;
bool built_in = 8;
}
message NewEmulatorProfile {
int32 emulator_id = 1;
string name = 2;
repeated string supported_extensions = 3;
repeated string custom_args = 4;
optional google.protobuf.Timestamp created_at = 5;
optional google.protobuf.Timestamp updated_at = 6;
optional bool built_in = 7;
}
message UpdatedEmulatorProfile {
int32 id = 1;
optional int32 emulator_id = 2;
optional string name = 3;
repeated string supported_extensions = 4;
repeated string custom_args = 5;
optional google.protobuf.Timestamp created_at = 6;
optional google.protobuf.Timestamp updated_at = 7;
optional bool built_in = 8;
}
message DefaultEmulatorProfile {
int32 platform_id = 1;
int32 emulator_profile_id = 2;
google.protobuf.Timestamp created_at = 3;
google.protobuf.Timestamp updated_at = 4;
int32 client_id = 5;
}
message NewDefaultEmulatorProfile {
int32 platform_id = 1;
int32 emulator_profile_id = 2;
optional google.protobuf.Timestamp created_at = 3;
optional google.protobuf.Timestamp updated_at = 4;
optional int32 client_id = 5;
}
message UpdatedDefaultEmulatorProfile {
int32 platform_id = 1;
int32 emulator_profile_id = 2;
optional google.protobuf.Timestamp created_at = 3;
optional google.protobuf.Timestamp updated_at = 4;
optional int32 client_id = 5;
}
message LocalEmulatorConfig {
int32 id = 1;
int32 emulator_id = 2;
int32 client_id = 3;
google.protobuf.Timestamp created_at = 4;
google.protobuf.Timestamp updated_at = 5;
string executable_path = 6;
optional string nickname = 7;
}
message NewLocalEmulatorConfig {
int32 emulator_id = 1;
int32 client_id = 2;
optional google.protobuf.Timestamp created_at = 3;
optional google.protobuf.Timestamp updated_at = 4;
string executable_path = 5;
optional string nickname = 6;
}
message UpdatedLocalEmulatorConfig {
int32 id = 1;
optional int32 emulator_id = 2;
optional int32 client_id = 3;
optional google.protobuf.Timestamp created_at = 4;
optional google.protobuf.Timestamp updated_at = 5;
optional string executable_path = 6;
optional string nickname = 7;
}