mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Remove all edits not in the scope of this PR
This commit is contained in:
		
							parent
							
								
									373efd3158
								
							
						
					
					
						commit
						98e669cf00
					
				
					 14 changed files with 13 additions and 182 deletions
				
			
		|  | @ -36,12 +36,8 @@ | |||
| #define SDMC_DIR "sdmc" | ||||
| #define NAND_DIR "nand" | ||||
| #define SYSDATA_DIR "sysdata" | ||||
| #define LOG_DIR "log" | ||||
| 
 | ||||
| // Filenames
 | ||||
| // Files in the directory returned by GetUserPath(D_LOGS_IDX)
 | ||||
| #define LOG_FILE "citra_log.txt" | ||||
| 
 | ||||
| // Files in the directory returned by GetUserPath(D_CONFIG_IDX)
 | ||||
| #define EMU_CONFIG "emu.ini" | ||||
| #define DEBUGGER_CONFIG "debugger.ini" | ||||
|  |  | |||
|  | @ -715,8 +715,6 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string& new | |||
|         paths[D_SDMC_IDX] = paths[D_USER_IDX] + SDMC_DIR DIR_SEP; | ||||
|         paths[D_NAND_IDX] = paths[D_USER_IDX] + NAND_DIR DIR_SEP; | ||||
|         paths[D_SYSDATA_IDX] = paths[D_USER_IDX] + SYSDATA_DIR DIR_SEP; | ||||
|         // TODO: Put the logs in a better location for each OS
 | ||||
|         paths[D_LOGS_IDX] = paths[D_USER_IDX] + LOG_DIR DIR_SEP; | ||||
|     } | ||||
| 
 | ||||
|     if (!newPath.empty()) { | ||||
|  | @ -803,8 +801,8 @@ void SplitFilename83(const std::string& filename, std::array<char, 9>& short_nam | |||
| 
 | ||||
| IOFile::IOFile() {} | ||||
| 
 | ||||
| IOFile::IOFile(const std::string& filename, const char openmode[], int flags) { | ||||
|     Open(filename, openmode, flags); | ||||
| IOFile::IOFile(const std::string& filename, const char openmode[]) { | ||||
|     Open(filename, openmode); | ||||
| } | ||||
| 
 | ||||
| IOFile::~IOFile() { | ||||
|  | @ -825,16 +823,11 @@ void IOFile::Swap(IOFile& other) { | |||
|     std::swap(m_good, other.m_good); | ||||
| } | ||||
| 
 | ||||
| bool IOFile::Open(const std::string& filename, const char openmode[], int flags) { | ||||
| bool IOFile::Open(const std::string& filename, const char openmode[]) { | ||||
|     Close(); | ||||
| #ifdef _WIN32 | ||||
|     if (flags != 0) { | ||||
|         m_file = _wfsopen(Common::UTF8ToUTF16W(filename).c_str(), | ||||
|                           Common::UTF8ToUTF16W(openmode).c_str(), flags); | ||||
|     } else { | ||||
|         _wfopen_s(&m_file, Common::UTF8ToUTF16W(filename).c_str(), | ||||
|                   Common::UTF8ToUTF16W(openmode).c_str()); | ||||
|     } | ||||
|     _wfopen_s(&m_file, Common::UTF8ToUTF16W(filename).c_str(), | ||||
|               Common::UTF8ToUTF16W(openmode).c_str()); | ||||
| #else | ||||
|     m_file = fopen(filename.c_str(), openmode); | ||||
| #endif | ||||
|  |  | |||
|  | @ -156,8 +156,7 @@ void SplitFilename83(const std::string& filename, std::array<char, 9>& short_nam | |||
| class IOFile : public NonCopyable { | ||||
| public: | ||||
|     IOFile(); | ||||
|     /// Opens the file. flags is for windows shared file settings and are ignored on other oses
 | ||||
|     IOFile(const std::string& filename, const char openmode[], int flags = 0); | ||||
|     IOFile(const std::string& filename, const char openmode[]); | ||||
| 
 | ||||
|     ~IOFile(); | ||||
| 
 | ||||
|  | @ -166,7 +165,7 @@ public: | |||
| 
 | ||||
|     void Swap(IOFile& other); | ||||
| 
 | ||||
|     bool Open(const std::string& filename, const char openmode[], int flags = 0); | ||||
|     bool Open(const std::string& filename, const char openmode[]); | ||||
|     bool Close(); | ||||
| 
 | ||||
|     template <typename T> | ||||
|  | @ -225,10 +224,6 @@ public: | |||
|         return WriteArray(&object, 1); | ||||
|     } | ||||
| 
 | ||||
|     size_t WriteString(const std::string& str) { | ||||
|         return WriteArray(str.c_str(), str.length()); | ||||
|     } | ||||
| 
 | ||||
|     bool IsOpen() const { | ||||
|         return nullptr != m_file; | ||||
|     } | ||||
|  |  | |||
|  | @ -484,4 +484,5 @@ const char* TrimSourcePath(const char* path, const char* root) { | |||
|     } | ||||
|     return path; | ||||
| } | ||||
| 
 | ||||
| } // namespace Common
 | ||||
|  |  | |||
|  | @ -9,7 +9,6 @@ | |||
| 
 | ||||
| #include <algorithm> | ||||
| #include <atomic> | ||||
| #include <chrono> | ||||
| #include <cstddef> | ||||
| #include <mutex> | ||||
| #include "common/common_types.h" | ||||
|  | @ -37,10 +36,6 @@ public: | |||
|     T& Front() const { | ||||
|         return read_ptr->current; | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|      * Push data to the queue. If NeedSize=True then Push will notify the waiting consumer thread | ||||
|      */ | ||||
|     template <typename Arg> | ||||
|     void Push(Arg&& t) { | ||||
|         // create the element, add it to the queue
 | ||||
|  | @ -50,11 +45,8 @@ public: | |||
|         ElementPtr* new_ptr = new ElementPtr(); | ||||
|         write_ptr->next.store(new_ptr, std::memory_order_release); | ||||
|         write_ptr = new_ptr; | ||||
|         if (NeedSize) { | ||||
|             std::lock_guard<std::mutex> lock(size_lock); | ||||
|         if (NeedSize) | ||||
|             size++; | ||||
|             size_cv.notify_one(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void Pop() { | ||||
|  | @ -83,25 +75,6 @@ public: | |||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|      * Waits up to timeout for data to be Pushed to the queue. Push uses a condition variable to | ||||
|      * signal the waiting thread, but only if NeedSize = true. Returns false if the timeout is | ||||
|      * triggered. If the condition variable is signalled, returns the value from Pop | ||||
|      * @param T In parameter to store the value if this method returns true | ||||
|      * @param timeout Time in milliseconds to wait for a signal from a Push | ||||
|      */ | ||||
|     bool PopWait(T& t, u64 timeout = 500) { | ||||
|         if (NeedSize) { | ||||
|             std::unique_lock<std::mutex> lock(size_lock); | ||||
|             if (size_cv.wait_for(lock, std::chrono::milliseconds(timeout), | ||||
|                                  [& size = size] { return size > 0; })) { | ||||
|                 return Pop(t); | ||||
|             } | ||||
|             return false; | ||||
|         } | ||||
|         return Pop(t); | ||||
|     } | ||||
| 
 | ||||
|     // not thread-safe
 | ||||
|     void Clear() { | ||||
|         size.store(0); | ||||
|  | @ -129,9 +102,6 @@ private: | |||
|     ElementPtr* write_ptr; | ||||
|     ElementPtr* read_ptr; | ||||
|     std::atomic<u32> size; | ||||
| 
 | ||||
|     std::mutex size_lock; | ||||
|     std::condition_variable size_cv; | ||||
| }; | ||||
| 
 | ||||
| // a simple thread-safe,
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue