void AudioENF::setLocation() { string input; cout<<"Enter recording National ID (upto4 chars): "; getline(cin, input); enfHeader.locationID.NationID = FourCC(input.c_str()); cout<<"Enter recording Regional ID (upto4 chars): "; getline(cin, input); enfHeader.locationID.RegionID = FourCC(input.c_str()); }
void AudioENF::setDefaultHeader() { enfHeader.formatID = FourCC("ENF"); enfHeader.locationID.NationID = FourCC("NORW"); enfHeader.locationID.RegionID = FourCC("OSLO"); setLocalTime(); enfHeader.sampleRate = 1000; enfHeader.bitsperSample = 16; enfHeader.dataSize = 0; }
int main() { constexpr FourCC fcc("flck"); //static_assert(fcc.value == 'flck', "..."); switch (fcc) { case FourCC("flck"): std::cout << fcc.value << "\n"; break; } }
void STRG::read(athena::io::YAMLDocReader& reader) { const athena::io::YAMLNode* root = reader.getRootNode(); /* Validate Pass */ if (root->m_type == YAML_MAPPING_NODE) { for (const auto& lang : root->m_mapChildren) { if (lang.first.size() != 4) { Log.report(logvisor::Warning, "STRG language string '%s' must be exactly 4 characters; skipping", lang.first.c_str()); return; } if (lang.second->m_type != YAML_SEQUENCE_NODE) { Log.report(logvisor::Warning, "STRG language string '%s' must contain a sequence; skipping", lang.first.c_str()); return; } for (const auto& str : lang.second->m_seqChildren) { if (str->m_type != YAML_SCALAR_NODE) { Log.report(logvisor::Warning, "STRG language '%s' must contain all scalars; skipping", lang.first.c_str()); return; } } } } else { Log.report(logvisor::Warning, "STRG must have a mapping root node; skipping"); return; } /* Read Pass */ langs.clear(); for (const auto& lang : root->m_mapChildren) { std::vector<std::wstring> strs; for (const auto& str : lang.second->m_seqChildren) strs.emplace_back(hecl::UTF8ToWide(str->m_scalarString)); langs.emplace_back(FourCC(lang.first.c_str()), strs); } langMap.clear(); langMap.reserve(langs.size()); for (auto& item : langs) langMap.emplace(item.first, &item.second); }
// ------------------------------------------------------ // Look for a chunk inside the file // Return it's length (with file pointing to it's data) or 0 int AIFFFile::SeekChunk(const char *ChunkName) { int Chunk; int Chunk_To_Find_Lo; int Chunk_To_Find = FourCC(ChunkName); int i; int size; i = 0; Chunk_To_Find_Lo = tolower(Chunk_To_Find & 0xff); Chunk_To_Find_Lo |= tolower((Chunk_To_Find >> 8) & 0xff) << 8; Chunk_To_Find_Lo |= tolower((Chunk_To_Find >> 16) & 0xff) << 16; Chunk_To_Find_Lo |= tolower((Chunk_To_Find >> 24) & 0xff) << 24; Seek(i); while(!feof(file)) { Chunk = 0; Seek(i); Read(&Chunk, 4); if(Chunk == Chunk_To_Find || Chunk == Chunk_To_Find_Lo) { Read(&size, 4); return(Mot_Swap_32(size)); } // Skip the data part to speed up the process if(Chunk == SoundDataID) { Read(&size, 4); size = Mot_Swap_32(size); i += size + 4 + 4 - 1; } i++; } return(0); }
D3DFMT_A8P8 = 40, D3DFMT_P8 = 41, D3DFMT_L8 = 50, D3DFMT_A8L8 = 51, D3DFMT_A4L4 = 52, D3DFMT_V8U8 = 60, D3DFMT_L6V5U5 = 61, D3DFMT_X8L8V8U8 = 62, D3DFMT_Q8W8V8U8 = 63, D3DFMT_V16U16 = 64, D3DFMT_A2W10V10U10 = 67, D3DFMT_UYVY = FourCC('U', 'Y', 'V', 'Y'), D3DFMT_R8G8_B8G8 = FourCC('R', 'G', 'B', 'G'), D3DFMT_YUY2 = FourCC('Y', 'U', 'Y', '2'), D3DFMT_G8R8_G8B8 = FourCC('G', 'R', 'G', 'B'), D3DFMT_DXT1 = FourCC('D', 'X', 'T', '1'), D3DFMT_DXT2 = FourCC('D', 'X', 'T', '2'), D3DFMT_DXT3 = FourCC('D', 'X', 'T', '3'), D3DFMT_DXT4 = FourCC('D', 'X', 'T', '4'), D3DFMT_DXT5 = FourCC('D', 'X', 'T', '5'), D3DFMT_D16_LOCKABLE = 70, D3DFMT_D32 = 71, D3DFMT_D15S1 = 73, D3DFMT_D24S8 = 75, D3DFMT_D24X8 = 77, D3DFMT_D24X4S4 = 79,
FourCC CResLoader::GetResourceTypeById(u32 id) { if (FindResource(id)) return x50_cachedResInfo->x0_type; return FourCC(); }
void AudioENF::setFormat(string formt) { enfHeader.formatID = FourCC(formt.c_str()); }
void AudioENF::setLocation(string sNat, string sReg) { enfHeader.locationID.NationID = FourCC(sNat.c_str()); enfHeader.locationID.RegionID = FourCC(sReg.c_str()); }