mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 05:05:46 -04:00
System: Add option to use a single memory card for playlists
This commit is contained in:
@ -410,6 +410,7 @@ void HostInterface::SetDefaultSettings(SettingsInterface& si)
|
||||
si.SetStringValue("MemoryCards", "Card1Path", "memcards/shared_card_1.mcd");
|
||||
si.SetStringValue("MemoryCards", "Card2Type", Settings::GetMemoryCardTypeName(Settings::DEFAULT_MEMORY_CARD_2_TYPE));
|
||||
si.SetStringValue("MemoryCards", "Card2Path", "memcards/shared_card_2.mcd");
|
||||
si.SetBoolValue("MemoryCards", "UsePlaylistTitle", true);
|
||||
|
||||
si.SetStringValue("Logging", "LogLevel", Settings::GetLogLevelName(Settings::DEFAULT_LOG_LEVEL));
|
||||
si.SetStringValue("Logging", "LogFilter", "");
|
||||
@ -519,7 +520,9 @@ void HostInterface::CheckForSettingsChanges(const Settings& old_settings)
|
||||
g_cdrom.SetUseReadThread(g_settings.cdrom_read_thread);
|
||||
|
||||
if (g_settings.memory_card_types != old_settings.memory_card_types ||
|
||||
g_settings.memory_card_paths != old_settings.memory_card_paths)
|
||||
g_settings.memory_card_paths != old_settings.memory_card_paths ||
|
||||
(g_settings.memory_card_use_playlist_title != old_settings.memory_card_use_playlist_title &&
|
||||
System::HasMediaPlaylist()))
|
||||
{
|
||||
System::UpdateMemoryCards();
|
||||
}
|
||||
|
@ -164,6 +164,7 @@ void Settings::Load(SettingsInterface& si)
|
||||
si.GetStringValue("MemoryCards", "Card2Type", GetMemoryCardTypeName(DEFAULT_MEMORY_CARD_2_TYPE)).c_str())
|
||||
.value_or(DEFAULT_MEMORY_CARD_2_TYPE);
|
||||
memory_card_paths[1] = si.GetStringValue("MemoryCards", "Card2Path", "memcards/shared_card_2.mcd");
|
||||
memory_card_use_playlist_title = si.GetBoolValue("MemoryCards", "UsePlaylistTitle", true);
|
||||
|
||||
log_level = ParseLogLevelName(si.GetStringValue("Logging", "LogLevel", GetLogLevelName(DEFAULT_LOG_LEVEL)).c_str())
|
||||
.value_or(DEFAULT_LOG_LEVEL);
|
||||
@ -258,6 +259,7 @@ void Settings::Save(SettingsInterface& si) const
|
||||
si.SetStringValue("MemoryCards", "Card1Path", memory_card_paths[0].c_str());
|
||||
si.SetStringValue("MemoryCards", "Card2Type", GetMemoryCardTypeName(memory_card_types[1]));
|
||||
si.SetStringValue("MemoryCards", "Card2Path", memory_card_paths[1].c_str());
|
||||
si.SetBoolValue("MemoryCards", "UsePlaylistTitle", memory_card_use_playlist_title);
|
||||
|
||||
si.SetStringValue("Logging", "LogLevel", GetLogLevelName(log_level));
|
||||
si.SetStringValue("Logging", "LogFilter", log_filter.c_str());
|
||||
|
@ -143,6 +143,7 @@ struct Settings
|
||||
std::array<ControllerType, NUM_CONTROLLER_AND_CARD_PORTS> controller_types{};
|
||||
std::array<MemoryCardType, NUM_CONTROLLER_AND_CARD_PORTS> memory_card_types{};
|
||||
std::array<std::string, NUM_CONTROLLER_AND_CARD_PORTS> memory_card_paths{};
|
||||
bool memory_card_use_playlist_title = true;
|
||||
|
||||
LOGLEVEL log_level = LOGLEVEL_INFO;
|
||||
std::string log_filter;
|
||||
|
@ -1187,7 +1187,12 @@ void UpdateMemoryCards()
|
||||
|
||||
case MemoryCardType::PerGameTitle:
|
||||
{
|
||||
if (s_running_game_title.empty())
|
||||
if (!s_media_playlist_filename.empty() && g_settings.memory_card_use_playlist_title)
|
||||
{
|
||||
const std::string playlist_title(GameList::GetTitleForPath(s_media_playlist_filename.c_str()));
|
||||
card = MemoryCard::Open(g_host_interface->GetGameMemoryCardPath(playlist_title.c_str(), i));
|
||||
}
|
||||
else if (s_running_game_title.empty())
|
||||
{
|
||||
g_host_interface->AddFormattedOSDMessage(5.0f,
|
||||
"Per-game memory card cannot be used for slot %u as the running "
|
||||
@ -1268,6 +1273,11 @@ void UpdateRunningGame(const char* path, CDImage* image)
|
||||
g_host_interface->OnRunningGameChanged();
|
||||
}
|
||||
|
||||
bool HasMediaPlaylist()
|
||||
{
|
||||
return !s_media_playlist_filename.empty();
|
||||
}
|
||||
|
||||
u32 GetMediaPlaylistCount()
|
||||
{
|
||||
return static_cast<u32>(s_media_playlist.size());
|
||||
|
@ -108,6 +108,9 @@ bool HasMedia();
|
||||
bool InsertMedia(const char* path);
|
||||
void RemoveMedia();
|
||||
|
||||
/// Returns true if a playlist is being used.
|
||||
bool HasMediaPlaylist();
|
||||
|
||||
/// Returns the number of entries in the media/disc playlist.
|
||||
u32 GetMediaPlaylistCount();
|
||||
|
||||
|
Reference in New Issue
Block a user