// // CSROMFetcher.m // Clock Signal // // Created by Thomas Harte on 01/01/2018. // Copyright © 2018 Thomas Harte. All rights reserved. // #import #include "CSROMFetcher.hpp" #import "NSBundle+DataResource.h" #import "NSData+StdVector.h" #include ROMMachine::ROMFetcher CSROMFetcher() { return [] (const std::string &machine, const std::vector &names) -> std::vector>> { NSString *subDirectory = [@"ROMImages/" stringByAppendingString:[NSString stringWithUTF8String:machine.c_str()]]; std::vector>> results; for(auto &name: names) { NSData *fileData = [[NSBundle mainBundle] dataForResource:[NSString stringWithUTF8String:name.c_str()] withExtension:nil subdirectory:subDirectory]; if(!fileData) results.emplace_back(nullptr); else { std::unique_ptr> data(new std::vector); *data = fileData.stdVector8; results.emplace_back(std::move(data)); } } return results; }; }