2020-09-09 00:54:16 -04:00
|
|
|
#pragma once
|
2020-11-21 12:52:38 -05:00
|
|
|
|
|
|
|
/*!
|
|
|
|
* @file FileUtil.h
|
|
|
|
* Utility functions for reading and writing files.
|
|
|
|
*/
|
|
|
|
|
2020-09-09 00:54:16 -04:00
|
|
|
#include <string>
|
2020-09-09 02:41:45 -04:00
|
|
|
#include <vector>
|
2021-03-03 00:05:13 -05:00
|
|
|
#include <filesystem>
|
2021-03-06 16:06:08 -05:00
|
|
|
#include "common/common_types.h"
|
2020-09-09 00:54:16 -04:00
|
|
|
|
2021-05-20 14:18:28 -04:00
|
|
|
namespace fs = std::filesystem;
|
|
|
|
|
2020-09-10 20:03:31 -04:00
|
|
|
namespace file_util {
|
2021-03-03 00:05:13 -05:00
|
|
|
std::filesystem::path get_user_home_dir();
|
2020-09-10 20:03:31 -04:00
|
|
|
std::string get_project_path();
|
2020-09-10 06:07:23 -04:00
|
|
|
std::string get_file_path(const std::vector<std::string>& input);
|
2020-11-21 12:52:38 -05:00
|
|
|
bool create_dir_if_needed(const std::string& path);
|
2021-02-05 19:41:09 -05:00
|
|
|
void write_binary_file(const std::string& name, const void* data, size_t size);
|
2022-02-15 18:42:48 -05:00
|
|
|
void write_rgba_png(const std::string& name, void* data, int w, int h);
|
2020-09-10 20:03:31 -04:00
|
|
|
void write_text_file(const std::string& file_name, const std::string& text);
|
|
|
|
std::vector<uint8_t> read_binary_file(const std::string& filename);
|
|
|
|
std::string read_text_file(const std::string& path);
|
|
|
|
bool is_printable_char(char c);
|
2020-10-25 02:26:35 -04:00
|
|
|
std::string combine_path(const std::string& parent, const std::string& child);
|
2022-02-12 17:48:50 -05:00
|
|
|
bool file_exists(const std::string& path);
|
2020-10-25 02:26:35 -04:00
|
|
|
std::string base_name(const std::string& filename);
|
|
|
|
void init_crc();
|
|
|
|
uint32_t crc32(const uint8_t* data, size_t size);
|
|
|
|
uint32_t crc32(const std::vector<uint8_t>& data);
|
2020-11-21 15:58:51 -05:00
|
|
|
void MakeISOName(char* dst, const char* src);
|
|
|
|
void ISONameFromAnimationName(char* dst, const char* src);
|
2020-11-22 12:59:55 -05:00
|
|
|
void assert_file_exists(const char* path, const char* error_message);
|
2021-03-06 16:06:08 -05:00
|
|
|
bool dgo_header_is_compressed(const std::vector<u8>& data);
|
|
|
|
std::vector<u8> decompress_dgo(const std::vector<u8>& data_in);
|
2020-09-10 20:03:31 -04:00
|
|
|
} // namespace file_util
|