• Introduction
  • C# API
  • GraphQL API
  • Home
  • Blog
  • Docs
  • GitHub
  • Snowflake.Model.Game.LibraryExtensions
  • IGameConfigurationExtension
Show / Hide Table of Contents
  • Snowflake.Configuration
    • ConfigurationCollection<T>
    • ConfigurationCollectionDescriptor<T>
    • ConfigurationOptionDescriptor
    • ConfigurationOptionType
    • ConfigurationSection<T>
    • ConfigurationSectionDescriptor<T>
    • ConfigurationValueCollection
    • IConfigurationCollection
    • IConfigurationCollection<T>
    • IConfigurationCollectionDescriptor
    • IConfigurationOptionDescriptor
    • IConfigurationProperty
    • IConfigurationSection
    • IConfigurationSection<T>
    • IConfigurationSectionDescriptor
    • IConfigurationTypeMapper
    • IConfigurationValue
    • IConfigurationValueCollection
    • ISelectionOptionDescriptor
    • PathType
    • SelectionOptionDescriptor
  • Snowflake.Configuration.Attributes
    • ConfigurationOptionAttribute
    • ConfigurationSectionAttribute
    • ConfigurationTargetAttribute
    • ConfigurationTargetMemberAttribute
    • CustomMetadataAttribute
    • InputTemplateAttribute
    • SelectionOptionAttribute
  • Snowflake.Configuration.Input
    • DictionaryInputMapping
    • IDeviceInputMapping
    • IInputOption
    • IInputSerializer
    • IInputTemplate
    • IInputTemplate<T>
    • InputConfigurationSection<T>
    • InputOption
    • InputOptionAttribute
    • InputTemplate<T>
  • Snowflake.Configuration.Interceptors
    • ConfigurationInterceptor
  • Snowflake.Configuration.Serialization
    • AbstractConfigurationNode<T>
    • BooleanConfigurationNode
    • ConfigurationTarget
    • ConfigurationTraversalContext
    • DecimalConfigurationNode
    • DeviceCapabilityElementConfigurationNode
    • EnumConfigurationNode
    • IAbstractConfigurationNode
    • IAbstractConfigurationNode<T>
    • IConfigurationSerializationContext<T>
    • IConfigurationTarget
    • IConfigurationTransformer<TOutput>
    • IConfigurationTraversalContext
    • IntegralConfigurationNode
    • ListConfigurationNode
    • StringConfigurationNode
    • UnknownConfigurationNode
  • Snowflake.Configuration.Serialization.Serializers
    • AbstractStringConfigurationSerializer
    • ConfigurationSerializer<T>
    • StringSerializationContext
    • StringSerializationContextExtensions
  • Snowflake.Configuration.Serialization.Serializers.Implementations
    • SimpleCfgConfigurationSerializer
    • SimpleIniConfigurationSerializer
    • SimpleJsonConfigurationSerializer
    • SimpleXmlConfigurationSerializer
  • Snowflake.Extensibility
    • IEmptyPluginConfiguration
    • ILogger
    • IPlugin
    • IPluginCollection<T>
    • LogLevel
    • PluginAttribute
    • PluginCollection<T>
    • PluginInfoFields
  • Snowflake.Extensibility.Configuration
    • IPluginConfigurationStore
  • Snowflake.Extensibility.Provisioning
    • IPluginProperties
    • IPluginProvision
    • IProvisionedPlugin
    • PluginProvision
    • ProvisionedPlugin
  • Snowflake.Extensibility.Provisioning.Standalone
    • StandalonePlugin
    • StandalonePluginProvision
  • Snowflake.Extensibility.Queueing
    • IAsyncJobQueue
    • IAsyncJobQueue<T>
    • IAsyncJobQueue<TAsyncEnumerable, T>
    • IAsyncJobQueueFactory
  • Snowflake.Filesystem
    • DirectoryExtensions
    • FileExtensions
    • IDirectory
    • IFile
    • IIndelibleDirectory
    • IReadOnlyDirectory
    • IReadOnlyFile
  • Snowflake.Input.Controller
    • ControllerElement
    • ControllerElementCollection
    • ControllerElementExtensions
    • ControllerElementInfo
    • ControllerElementType
    • ControllerElementTypeExtensions
    • ControllerId
    • IControllerElementCollection
    • IControllerElementInfo
    • IControllerLayout
    • InvalidControllerIdException
  • Snowflake.Input.Controller.Mapped
    • ControllerElementMapping
    • ControllerElementMappingProfile
    • IControllerElementMappingProfile
    • IControllerElementMappingProfileStore
  • Snowflake.Input.Device
    • DefaultDeviceCapabilityLabels
    • DeviceCapability
    • DeviceCapabilityClass
    • DeviceCapabilityClasses
    • DeviceCapabilityExtensions
    • DeviceLayoutMapping
    • DictionaryDeviceCapabilityLabels
    • DirectInputDeviceInstance
    • IDeviceCapabilityLabels
    • IDeviceLayoutMapping
    • IInputDevice
    • IInputDeviceInstance
    • InputDriver
    • KeyboardDeviceInstance
    • PassthroughDeviceInstance
    • XInputDeviceInstance
  • Snowflake.Installation
    • AsyncInstallTask<T>
    • AsyncInstallTaskEnumerable<T>
    • ITaskResult
    • TaskResult
    • TaskResult<T>
  • Snowflake.Installation.Extensibility
    • GameInstaller
    • IGameInstaller
    • IInstallable
    • Installable
    • SupportedPlatformAttribute
  • Snowflake.Installation.Tasks
    • CopyDirectoryContentsTask
    • CopyFileTask
    • ExecuteAsyncTask<TResult>
    • ExtractZipTask
    • FailureTask<T>
  • Snowflake.Loader
    • IComposable
    • IModule
    • IModuleEnumerator
    • IModuleLoader<T>
    • ImportServiceAttribute
    • IServiceRepository
    • Module
  • Snowflake.Model.Database.Exceptions
    • DependentEntityNotExistsException
    • EntityAlreadyExistsException
  • Snowflake.Model.Database.Migrations
    • Empty
    • InitialCreate
  • Snowflake.Model.Game
    • Game
    • IGame
    • IGameExtension
    • IGameLibrary
    • IPlatformInfo
    • ISystemFile
    • PlatformId
  • Snowflake.Model.Game.LibraryExtensions
    • GameConfigurationExtensionExtensions
    • GameFileExtensionExtensions
    • IGameConfigurationExtension
    • IGameConfigurationExtensionProvider
    • IGameExtensionProvider
    • IGameExtensionProvider<TExtension>
    • IGameFileExtension
    • IGameFileExtensionProvider
  • Snowflake.Model.Records
    • FileRecord
    • GameRecord
    • IMetadataCollection
    • IRecord
    • IRecordMetadata
    • IRecordMetadataQuery
    • MetadataCollection
    • RecordMetadata
  • Snowflake.Model.Records.File
    • FileMetadataKeys
    • IFileRecord
    • ImageMetadataKeys
    • ImageTypes
  • Snowflake.Model.Records.Game
    • GameMetadataKeys
    • IGameRecord
    • IGameRecordQuery
  • Snowflake.Orchestration.Extensibility
    • EmulatedController
    • EmulatedPortsManager
    • EmulatorCompatibility
    • EmulatorOrchestrator
    • GameEmulation
    • GameEmulation<TConfigurationCollection>
    • GameEmulationState
    • IEmulatedController
    • IEmulatedPortDeviceEntry
    • IEmulatedPortsManager
    • IEmulatedPortStore
    • IEmulatorOrchestrator
    • IGameEmulation
  • Snowflake.Orchestration.Extensibility.Extensions
    • DeviceEnumeratorExtensions
  • Snowflake.Orchestration.Process
    • IEmulatorExecutable
    • IEmulatorExecutableProvider
    • IProcessBuilder
    • ProcessExtensions
  • Snowflake.Orchestration.Saving
    • GameFileExtensionGameSaveManagerExtensions
    • IGameSaveManager
    • ISaveGame
    • ISaveProfile
    • SaveGame
    • SaveManagementStrategy
  • Snowflake.Orchestration.SystemFiles
    • ISystemFileProvider
  • Snowflake.Persistence
    • ISqlDatabase
    • SqliteDatabase
    • SqliteMemoryDatabase
  • Snowflake.Remoting.Electron
    • IElectronPackage
    • IElectronPackageProvider
  • Snowflake.Remoting.Kestrel
    • IKestrelServerMiddlewareProvider
    • IKestrelWebServerService
  • Snowflake.Romfile
    • IFileSignature
    • IRomFileInfo
    • IStructuredFilename
    • NamingConvention
    • RomFileInfo
    • StructuredFilename
  • Snowflake.Romfile.Extensions
    • StringExtensions
  • Snowflake.Romfile.Tokenizer
    • FieldType
    • GoodToolsTokenClassifier
    • NoIntroTokenClassifier
    • StructuredFilenameToken
  • Snowflake.Scraping
    • GameScrapeContext
    • IScrapeContext
    • ISeed
    • ISeedRootContext
    • Seed
    • SeedContent
    • SeedRootContext
  • Snowflake.Scraping.Extensibility
    • AttachTarget
    • Culler
    • Directive
    • DirectiveAttribute
    • FileInstallationTraverserBase
    • GameMetadataTraverserBase
    • ICuller
    • IFileInstallationTraverser
    • IGameMetadataTraverser
    • IScraper
    • IScraperDirective
    • ITraverser<TProducts, TEffectTarget>
    • Scraper
    • SeedBuilder
    • SeedTree
    • Traverser<TProducts, TEffectTarget>
  • Snowflake.Services
    • IContentDirectoryProvider
    • IDeviceEnumerator
    • ILogProvider
    • IPluginManager
    • IServiceEnumerator
    • IServiceRegistrationProvider
    • IStoneProvider
  • Snowflake.Shiragame
    • IRomInfo
    • ISerialInfo
    • IShiragameProvider
    • RomInfo
    • SerialInfo

Interface IGameConfigurationExtension

Provides IConfigurationCollection<T> access to IGames.

Namespace: Snowflake.Model.Game.LibraryExtensions
Assembly: Snowflake.Framework.Primitives.dll
Syntax
public interface IGameConfigurationExtension : IGameExtension

Methods

CreateNewProfile<T>(String, String)

Creates a new IConfigurationCollection<T> profile for this game.

Configurations are unique on their sourceName and profile, NOT their prototype T. In fact, it is possible, but highly not recommended, to have one IConfigurationCollection<T>, to be interpreted differently as different prototypes.

Declaration
IConfigurationCollection<T> CreateNewProfile<T>(string sourceName, string profile)

    where T : class, IConfigurationCollection<T>
Parameters
Type Name Description
System.String sourceName

The name of the emulator plugin, or whatever is the source or creator of this profile. This is to avoid namespacing conflicts between emulator plugins that share a configuration prototype.

System.String profile

The name of the configuration profile.

Returns
Type Description
IConfigurationCollection<T>

A new configuration profile . If a configuration profile with the same source name and profile name exist, this will throw an exception.

Type Parameters
Name Description
T

The prototype of the configuration.

CreateNewProfileAsync<T>(String, String)

Asychronously creates a new IConfigurationCollection<T> profile for this game.

Configurations are unique on their sourceName and profile, NOT their prototype T. In fact, it is possible, but highly not recommended, to have one IConfigurationCollection<T>, to be interpreted differently as different prototypes.

Declaration
Task<IConfigurationCollection<T>> CreateNewProfileAsync<T>(string sourceName, string profile)

    where T : class, IConfigurationCollection<T>
Parameters
Type Name Description
System.String sourceName

The name of the emulator plugin, or whatever is the source or creator of this profile. This is to avoid namespacing conflicts between emulator plugins that share a configuration prototype.

System.String profile

The name of the configuration profile.

Returns
Type Description
System.Threading.Tasks.Task<IConfigurationCollection<T>>

A new configuration profile . If a configuration profile with the same source name and profile name exist, this will throw an exception.

Type Parameters
Name Description
T

The prototype of the configuration.

DeleteProfile(String, Guid)

Deletes the profile with the given source name and profile.

Declaration
void DeleteProfile(string sourceName, Guid collectionGuid)
Parameters
Type Name Description
System.String sourceName

The source name or name of creator of the profile.

System.Guid collectionGuid

The collection GUID of the profile.

DeleteProfileAsync(String, Guid)

Asynchronously deletes the profile with the given source name and profile.

Declaration
Task DeleteProfileAsync(string sourceName, Guid collectionGuid)
Parameters
Type Name Description
System.String sourceName

The source name or name of creator of the profile.

System.Guid collectionGuid

The collection GUID of the profile.

Returns
Type Description
System.Threading.Tasks.Task

GetProfile<T>(String, Guid)

Gets the specific, registered configuration profile with the given sourceName, collectionGuid, and interprets the profile with the prototype T

Declaration
IConfigurationCollection<T> GetProfile<T>(string sourceName, Guid collectionGuid)

    where T : class, IConfigurationCollection<T>
Parameters
Type Name Description
System.String sourceName

The source or creator of this profile.

System.Guid collectionGuid

The profile name.

Returns
Type Description
IConfigurationCollection<T>

The previously added configuration profile. If this can not be found, throws an exception.

Type Parameters
Name Description
T

The configuration prototype.

GetProfileAsync<T>(String, Guid)

Asychronously gets the specific, registered configuration profile with the given sourceName, collectionGuid, and interprets the profile with the prototype T

Declaration
Task<IConfigurationCollection<T>> GetProfileAsync<T>(string sourceName, Guid collectionGuid)

    where T : class, IConfigurationCollection<T>
Parameters
Type Name Description
System.String sourceName

The source or creator of this profile.

System.Guid collectionGuid

The profile name.

Returns
Type Description
System.Threading.Tasks.Task<IConfigurationCollection<T>>

The previously added configuration profile. If this can not be found, throws an exception.

Type Parameters
Name Description
T

The configuration prototype.

GetProfileNames()

Gets all the names of profiles for this IGame, grouped by source.

Declaration
IEnumerable<IGrouping<string, (string profileName, Guid collectionGuid)>> GetProfileNames()
Returns
Type Description
System.Collections.Generic.IEnumerable<System.Linq.IGrouping<System.String, System.ValueTuple<System.String, System.Guid>>>

All the names of profiles for this IGame, grouped by source.

In This Article
  • Methods
    • CreateNewProfile<T>(String, String)
    • CreateNewProfileAsync<T>(String, String)
    • DeleteProfile(String, Guid)
    • DeleteProfileAsync(String, Guid)
    • GetProfile<T>(String, Guid)
    • GetProfileAsync<T>(String, Guid)
    • GetProfileNames()
Built with ❤️ by @chyyran. Text content licensed under CC-BY-SA 4.0.