summaryrefslogtreecommitdiff
path: root/src/input/N64RomInput.h
blob: f8cfc0259cc724e84ec8e71d3da4304921de8641 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#include "InputSource.h"
#include "n64/Cartridge.h"

class N64RomInput : public InputSource {
public:
    explicit N64RomInput(std::vector<uint8_t> data) : mData(std::move(data)) {}

    void Open() override;
    std::string GetHash() override;
    std::string GetTitle() override;
    uint32_t GetVersionCRC() override;
    std::vector<uint8_t>& GetImage() override { return mData; }
    void LogInfo() override;

    N64::Cartridge* GetCartridge() override { return mCartridge.get(); }
    std::shared_ptr<N64::Cartridge> GetSharedCartridge() { return mCartridge; }
    bool IsN64() const override { return true; }

private:
    std::vector<uint8_t> mData;
    std::shared_ptr<N64::Cartridge> mCartridge;
};