void Netplay::LoadFile() { try { //const Path path( Application::Instance::GetExePath(L"netplaylist.xml") ); const Path path( Application::Instance::GetConfigPath(L"netplaylist.xml") );//bg if (path.FileExists()) { typedef Nes::Core::Xml Xml; Xml xml; { Io::Stream::In stream( path ); xml.Read( stream ); } if (!xml.GetRoot().IsType( L"netplaylist" )) throw 1; for (Xml::Node node(xml.GetRoot().GetFirstChild()); node; node=node.GetNextSibling()) { if (!node.IsType( L"file" )) throw 1; Add( node.GetValue() ); } Io::Log() << "Netplay: loaded game list from \"netplaylist.xml\"\r\n"; } else { Io::Log() << "Netplay: game list file \"netplaylist.xml\" not present..\r\n"; } } catch (...) { games.state = Games::DIRTY; Io::Log() << "Netplay: warning, couldn't load game list \"netplaylist.xml\"!\r\n"; } }
void Netplay::SaveFile() const { if (games.state == Games::DIRTY) { //const Path path( Application::Instance::GetExePath(L"netplaylist.xml") ); const Path path( Application::Instance::GetConfigPath(L"netplaylist.xml") );//bg if (!games.paths.empty()) { try { typedef Nes::Core::Xml Xml; Xml xml; Xml::Node root( xml.Create( L"netplaylist" ) ); root.AddAttribute( L"version", L"1.0" ); for (Games::Paths::const_iterator it(games.paths.begin()), end(games.paths.end()); it != end; ++it) root.AddChild( L"file", it->Ptr() ); Io::Stream::Out stream( path ); xml.Write( root, stream ); Io::Log() << "Netplay: saved game list to \"netplaylist.xml\"\r\n"; } catch (...) { Io::Log() << "Netplay: warning, couldn't save game list to \"netplaylist.xml\"!\r\n"; } } else if (path.FileExists()) { if (Io::File::Delete( path.Ptr() )) Io::Log() << "Netplay: game list empty, deleted \"netplaylist.xml\"\r\n"; else Io::Log() << "Netplay: warning, couldn't delete \"netplaylist.xml\"!\r\n"; } } }