#include "UtilTool.h"
#include <filesystem>

bool UtilTool::CheckFileIsImage(const std::string &filepath)
{
    // 简单实现， 通过后缀判断
    auto path = std::filesystem::path(filepath);
    auto su = path.extension().string();
    for (const auto &type : ImageTypes)
    {
        if (su.find(type) != std::string::npos)
        {
            return true;
        }
    }
    return false;
}

bool UtilTool::CheckFileIsVideo(const std::string &filepath)
{
    // 简单实现， 通过后缀判断
    auto path = std::filesystem::path(filepath);
    auto su = path.extension().string();
    for (const auto &type : VideoTypes)
    {
        if (su.find(type) != std::string::npos)
        {
            return true;
        }
    }
    return false;
}
bool UtilTool::CheckFileIsAudio(const std::string &filepath)
{
    // 简单实现， 通过后缀判断
    auto path = std::filesystem::path(filepath);
    auto su = path.extension().string();
    for (const auto &type : AudioTypes)
    {
        if (su.find(type) != std::string::npos)
        {
            return true;
        }
    }
    return false;
}

MediaType UtilTool::CheckFileType(const std::string &filepath)
{
    if (CheckFileIsImage(filepath))
        return MediaType::IMAGE;
    if (CheckFileIsAudio(filepath))
        return MediaType::AUDIO;
    if (CheckFileIsVideo(filepath))
        return MediaType::VIDEO;
    return MediaType::UNSUPPORT;
        
}