Cog/Frameworks/OpenMPT/OpenMPT/soundlib/Container.h
Christopher Snowhill 731e52c440 Build libOpenMPT from source once again
Bundle libOpenMPT as a dynamic framework, which should be safe once
again, now that there is only one version to bundle. Also, now it is
using the versions of libvorbisfile and libmpg123 that are bundled with
the player, instead of compiling minimp3 and stbvorbis.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-30 22:57:30 -07:00

45 lines
1.1 KiB
C++

/*
* Container.h
* -----------
* Purpose: General interface for MDO container and/or packers.
* Notes : (currently none)
* Authors: OpenMPT Devs
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
*/
#pragma once
#include "openmpt/all/BuildSettings.hpp"
#include "../common/FileReader.h"
#include <vector>
OPENMPT_NAMESPACE_BEGIN
struct ContainerItem
{
mpt::ustring name;
FileReader file;
std::unique_ptr<std::vector<char> > data_cache; // may be empty
};
enum ContainerLoadingFlags
{
ContainerOnlyVerifyHeader = 0x00,
ContainerUnwrapData = 0x01,
};
#if !defined(MPT_WITH_ANCIENT)
bool UnpackXPK(std::vector<ContainerItem> &containerItems, FileReader &file, ContainerLoadingFlags loadFlags);
bool UnpackPP20(std::vector<ContainerItem> &containerItems, FileReader &file, ContainerLoadingFlags loadFlags);
bool UnpackMMCMP(std::vector<ContainerItem> &containerItems, FileReader &file, ContainerLoadingFlags loadFlags);
#endif // !MPT_WITH_ANCIENT
bool UnpackUMX(std::vector<ContainerItem> &containerItems, FileReader &file, ContainerLoadingFlags loadFlags);
OPENMPT_NAMESPACE_END