diff options
| author | Shawn Hoffman <godisgovernment@gmail.com> | 2010-06-09 01:37:08 +0000 |
|---|---|---|
| committer | Shawn Hoffman <godisgovernment@gmail.com> | 2010-06-09 01:37:08 +0000 |
| commit | 4a0c8fc0c9b6666e7933683260e2befbc81917ff (patch) | |
| tree | eb83de83f60b3de6f631bcf5da9c18a07a0f263a /Source/Core/DiscIO/Src/FileMonitor.cpp | |
| parent | dacd557f57c73043155c06c060370df9789eb98c (diff) | |
Hg:
enable newline normalization
get revision number via `hg svn info` for svnrev.h
ignore incremental/generated binary files (windows/VS at least)
leave a comment if some files need native eol set in svnprops
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5637 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO/Src/FileMonitor.cpp')
| -rw-r--r-- | Source/Core/DiscIO/Src/FileMonitor.cpp | 342 |
1 files changed, 171 insertions, 171 deletions
diff --git a/Source/Core/DiscIO/Src/FileMonitor.cpp b/Source/Core/DiscIO/Src/FileMonitor.cpp index 7cccf15487..ba95f0609e 100644 --- a/Source/Core/DiscIO/Src/FileMonitor.cpp +++ b/Source/Core/DiscIO/Src/FileMonitor.cpp @@ -1,171 +1,171 @@ -// Copyright (C) 2003-2008 Dolphin Project.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, version 2.0.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License 2.0 for more details.
-
-// A copy of the GPL 2.0 should have been included with the program.
-// If not, see http://www.gnu.org/licenses/
-
-// Official SVN repository and contact information can be found at
-// http://code.google.com/p/dolphin-emu/
-
-
-// -----------
-// Include
-
-#include "stdafx.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#include <algorithm>
-
-
-#include "Common.h" // Common
-#include "IniFile.h"
-#include "LogManager.h"
-
-#include "../../Core/Src/Core.h"
-#include "../../Core/Src/ConfigManager.h"
-#include "FileSystemGCWii.h"
-#include "VolumeCreator.h"
-
-namespace FileMon
-{
-
-DiscIO::IVolume *OpenISO = NULL;
-DiscIO::IFileSystem *pFileSystem = NULL;
-std::vector<const DiscIO::SFileInfo *> GCFiles;
-std::string ISOFile = "", CurrentFile = "";
-bool FileAccess = true;
-
-// Filtered files
-bool ShowSound(std::string FileName)
-{
- std::string Ending;
- SplitPath(FileName, NULL, NULL, &Ending);
- std::transform(Ending.begin(),Ending.end(),Ending.begin(),::tolower);
-
- if (
- (Ending == ".adp") // 1080 Avalanche, Crash Bandicoot, etc
- || (Ending == ".afc") // Zelda WW
- || (Ending == ".ast") // Zelda TP, Mario Kart
- || (Ending == ".dsp") // Metroid Prime
- || (Ending == ".hps") // SSB Melee
-
- || (Ending == ".brstm") // Wii Sports, Wario Land, etc
- || (Ending == ".sad") // Disaster
- )
- return true;
-
- return false;
-}
-
-
-// Read the GC file system
-void ReadGC(std::string FileName)
-{
- // Should have an actual Shutdown procedure or something
- if(OpenISO != NULL)
- {
- delete OpenISO;
- OpenISO = NULL;
- }
- if(pFileSystem != NULL)
- {
- delete pFileSystem;
- pFileSystem = NULL;
- }
- // GCFiles' pointers are no longer valid after pFileSystem is cleared
- GCFiles.clear();
- OpenISO = DiscIO::CreateVolumeFromFilename(FileName);
- if (!OpenISO) return;
- if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO))
- {
- pFileSystem = DiscIO::CreateFileSystem(OpenISO);
- if(!pFileSystem) return;
- pFileSystem->GetFileList(GCFiles);
- }
- FileAccess = true;
-}
-
-// Check if we should play this file
-void CheckFile(std::string File, u64 Size)
-{
- // Don't do anything if the log is unselected
- if (!LogManager::GetInstance()->isEnable(LogTypes::FILEMON)) return;
- // Do nothing if we found the same file again
- if (CurrentFile == File) return;
-
- if (Size > 0) Size = (Size / 1000);
- std::string Str = StringFromFormat("%s kB %s", ThS(Size, true, 7).c_str(), File.c_str());
- if (ShowSound(File))
- {
- NOTICE_LOG(FILEMON, Str.c_str());
- }
- else
- {
- WARN_LOG(FILEMON, Str.c_str());
- }
-
- // Update the current file
- CurrentFile = File;
-}
-
-
-// Find the GC filename
-void FindFilename(u64 offset)
-{
- // Don't do anything if a game is not running
- if (Core::GetState() != Core::CORE_RUN) return;
- // Or if the log is unselected
- if (!LogManager::GetInstance()->isEnable(LogTypes::FILEMON)) return;
- if (!FileAccess) return;
-
- if (!pFileSystem || ISOFile != SConfig::GetInstance().m_LastFilename)
- {
- FileAccess = false;
- ReadGC(SConfig::GetInstance().m_LastFilename);
- ISOFile = SConfig::GetInstance().m_LastFilename;
- NOTICE_LOG(FILEMON, "Opening '%s'", ISOFile.c_str());
- return;
- }
-
- const char *fname = pFileSystem->GetFileName(offset);
-
- // There's something wrong with the paths
- if (!fname || (strlen(fname) == 512))
- return;
-
- CheckFile(fname, pFileSystem->GetFileSize(fname));
-}
-
-void Close()
-{
- if(OpenISO != NULL)
- {
- delete OpenISO;
- OpenISO = NULL;
- }
-
- if(pFileSystem != NULL)
- {
- delete pFileSystem;
- pFileSystem = NULL;
- }
-
- // GCFiles' pointers are no longer valid after pFileSystem is cleared
- GCFiles.clear();
-
- ISOFile = "";
- CurrentFile = "";
- FileAccess = true;
-}
-
-
-} // FileMon
+// Copyright (C) 2003-2008 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + + +// ----------- +// Include + +#include "stdafx.h" +#include <iostream> +#include <vector> +#include <string> +#include <algorithm> + + +#include "Common.h" // Common +#include "IniFile.h" +#include "LogManager.h" + +#include "../../Core/Src/Core.h" +#include "../../Core/Src/ConfigManager.h" +#include "FileSystemGCWii.h" +#include "VolumeCreator.h" + +namespace FileMon +{ + +DiscIO::IVolume *OpenISO = NULL; +DiscIO::IFileSystem *pFileSystem = NULL; +std::vector<const DiscIO::SFileInfo *> GCFiles; +std::string ISOFile = "", CurrentFile = ""; +bool FileAccess = true; + +// Filtered files +bool ShowSound(std::string FileName) +{ + std::string Ending; + SplitPath(FileName, NULL, NULL, &Ending); + std::transform(Ending.begin(),Ending.end(),Ending.begin(),::tolower); + + if ( + (Ending == ".adp") // 1080 Avalanche, Crash Bandicoot, etc + || (Ending == ".afc") // Zelda WW + || (Ending == ".ast") // Zelda TP, Mario Kart + || (Ending == ".dsp") // Metroid Prime + || (Ending == ".hps") // SSB Melee + + || (Ending == ".brstm") // Wii Sports, Wario Land, etc + || (Ending == ".sad") // Disaster + ) + return true; + + return false; +} + + +// Read the GC file system +void ReadGC(std::string FileName) +{ + // Should have an actual Shutdown procedure or something + if(OpenISO != NULL) + { + delete OpenISO; + OpenISO = NULL; + } + if(pFileSystem != NULL) + { + delete pFileSystem; + pFileSystem = NULL; + } + // GCFiles' pointers are no longer valid after pFileSystem is cleared + GCFiles.clear(); + OpenISO = DiscIO::CreateVolumeFromFilename(FileName); + if (!OpenISO) return; + if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO)) + { + pFileSystem = DiscIO::CreateFileSystem(OpenISO); + if(!pFileSystem) return; + pFileSystem->GetFileList(GCFiles); + } + FileAccess = true; +} + +// Check if we should play this file +void CheckFile(std::string File, u64 Size) +{ + // Don't do anything if the log is unselected + if (!LogManager::GetInstance()->isEnable(LogTypes::FILEMON)) return; + // Do nothing if we found the same file again + if (CurrentFile == File) return; + + if (Size > 0) Size = (Size / 1000); + std::string Str = StringFromFormat("%s kB %s", ThS(Size, true, 7).c_str(), File.c_str()); + if (ShowSound(File)) + { + NOTICE_LOG(FILEMON, Str.c_str()); + } + else + { + WARN_LOG(FILEMON, Str.c_str()); + } + + // Update the current file + CurrentFile = File; +} + + +// Find the GC filename +void FindFilename(u64 offset) +{ + // Don't do anything if a game is not running + if (Core::GetState() != Core::CORE_RUN) return; + // Or if the log is unselected + if (!LogManager::GetInstance()->isEnable(LogTypes::FILEMON)) return; + if (!FileAccess) return; + + if (!pFileSystem || ISOFile != SConfig::GetInstance().m_LastFilename) + { + FileAccess = false; + ReadGC(SConfig::GetInstance().m_LastFilename); + ISOFile = SConfig::GetInstance().m_LastFilename; + NOTICE_LOG(FILEMON, "Opening '%s'", ISOFile.c_str()); + return; + } + + const char *fname = pFileSystem->GetFileName(offset); + + // There's something wrong with the paths + if (!fname || (strlen(fname) == 512)) + return; + + CheckFile(fname, pFileSystem->GetFileSize(fname)); +} + +void Close() +{ + if(OpenISO != NULL) + { + delete OpenISO; + OpenISO = NULL; + } + + if(pFileSystem != NULL) + { + delete pFileSystem; + pFileSystem = NULL; + } + + // GCFiles' pointers are no longer valid after pFileSystem is cleared + GCFiles.clear(); + + ISOFile = ""; + CurrentFile = ""; + FileAccess = true; +} + + +} // FileMon |
