1 // Copyright 2020 Dolphin Emulator Project
2 // Licensed under GPLv2+
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include <optional>
8 #include <string>
9 
10 #include <mbedtls/sha1.h>
11 
12 #include "Common/CommonTypes.h"
13 #include "DiscIO/Volume.h"
14 
15 namespace DiscIO
16 {
17 class VolumeDisc : public Volume
18 {
19 public:
20   std::string GetGameID(const Partition& partition = PARTITION_NONE) const override;
21   Country GetCountry(const Partition& partition = PARTITION_NONE) const override;
22   std::string GetMakerID(const Partition& partition = PARTITION_NONE) const override;
23   std::optional<u16> GetRevision(const Partition& partition = PARTITION_NONE) const override;
24   std::string GetInternalName(const Partition& partition = PARTITION_NONE) const override;
25   std::string GetApploaderDate(const Partition& partition) const override;
26   std::optional<u8> GetDiscNumber(const Partition& partition = PARTITION_NONE) const override;
27   bool IsNKit() const override;
28 
29 protected:
30   Region RegionCodeToRegion(std::optional<u32> region_code) const;
31   void AddGamePartitionToSyncHash(mbedtls_sha1_context* context) const;
32 };
33 
34 }  // namespace DiscIO
35