mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-27 12:04:16 +01:00
Fixed serialization runtime exceptions
This commit is contained in:
parent
ca971ff31f
commit
e4f05884c3
19
TODO
19
TODO
@ -3,14 +3,15 @@
|
|||||||
☐ Multiple slots etc.
|
☐ Multiple slots etc.
|
||||||
☐ Custom texture cache
|
☐ Custom texture cache
|
||||||
☐ Review constructor/initialization code
|
☐ Review constructor/initialization code
|
||||||
☐ Review core timing events
|
☐ Core timing events
|
||||||
|
☐ Serialize codeset with an apploader reference instead
|
||||||
✔ Review base class serialization everywhere @done(20-01-10 23:47)
|
✔ Review base class serialization everywhere @done(20-01-10 23:47)
|
||||||
Make sure that all base/derived relationships are registered
|
Make sure that all base/derived relationships are registered
|
||||||
☐ Serialize codeset with an apploader reference instead
|
✔ Additional stuff to serialize @done(20-01-11 16:32)
|
||||||
☐ Additional stuff to serialize
|
✔ Self-NCCH archive @done(20-01-11 16:32)
|
||||||
☐ Self-NCCH archive
|
✔ File backends @done(20-01-11 16:32)
|
||||||
☐ File backends
|
✘ Directory backends @cancelled(20-01-11 16:32)
|
||||||
☐ Directory backends
|
Not needed for now
|
||||||
✔ File/directory 'services' @done(20-01-10 23:46)
|
✔ File/directory 'services' @done(20-01-10 23:46)
|
||||||
✔ CPU @done(19-08-13 15:41)
|
✔ CPU @done(19-08-13 15:41)
|
||||||
✔ Memory @done(19-08-13 15:41)
|
✔ Memory @done(19-08-13 15:41)
|
||||||
@ -37,10 +38,8 @@
|
|||||||
✔ SDMC @done(20-01-02 23:34)
|
✔ SDMC @done(20-01-02 23:34)
|
||||||
✔ Normal @done(20-01-02 23:34)
|
✔ Normal @done(20-01-02 23:34)
|
||||||
✔ Write-only @done(20-01-02 23:34)
|
✔ Write-only @done(20-01-02 23:34)
|
||||||
✘ IVFC @cancelled(20-01-03 13:22)
|
✔ IVFC @done(20-01-11 16:33)
|
||||||
Seems IVFCArchive is never used.. which is good because it has a file reference!
|
✔ File refs @done(20-01-11 16:33)
|
||||||
✘ File refs @cancelled(20-01-03 13:22)
|
|
||||||
Not needed as nothing serializes file buffers
|
|
||||||
✘ Replace delay generator with virtual fns @cancelled(20-01-03 13:16)
|
✘ Replace delay generator with virtual fns @cancelled(20-01-03 13:16)
|
||||||
While they have no state, the extra refactoring here is unneeded
|
While they have no state, the extra refactoring here is unneeded
|
||||||
✘ MMIO @cancelled(20-01-01 01:06)
|
✘ MMIO @cancelled(20-01-01 01:06)
|
||||||
|
@ -334,6 +334,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
BOOST_SERIALIZATION_SPLIT_MEMBER()
|
BOOST_SERIALIZATION_SPLIT_MEMBER()
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace FileUtil
|
} // namespace FileUtil
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
// FileSys namespace
|
// FileSys namespace
|
||||||
|
|
||||||
SERIALIZE_EXPORT_IMPL(FileSys::NCCHArchive)
|
SERIALIZE_EXPORT_IMPL(FileSys::NCCHArchive)
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::NCCHFile)
|
||||||
SERIALIZE_EXPORT_IMPL(FileSys::ArchiveFactory_NCCH)
|
SERIALIZE_EXPORT_IMPL(FileSys::ArchiveFactory_NCCH)
|
||||||
|
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
@ -95,9 +95,16 @@ public:
|
|||||||
void Flush() const override {}
|
void Flush() const override {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NCCHFile() = default; // NOTE: If the public ctor has behaviour, need to replace this with
|
std::vector<u8> file_buffer;
|
||||||
// *_construct_data
|
|
||||||
std::vector<u8> file_buffer; // TODO: Replace with file ref for serialization
|
NCCHFile() = default;
|
||||||
|
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
|
ar& file_buffer; // TODO: See about a more efficient way to do this
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// File system interface to the NCCH archive
|
/// File system interface to the NCCH archive
|
||||||
@ -125,4 +132,5 @@ private:
|
|||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
|
||||||
BOOST_CLASS_EXPORT_KEY(FileSys::NCCHArchive)
|
BOOST_CLASS_EXPORT_KEY(FileSys::NCCHArchive)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::NCCHFile)
|
||||||
BOOST_CLASS_EXPORT_KEY(FileSys::ArchiveFactory_NCCH)
|
BOOST_CLASS_EXPORT_KEY(FileSys::ArchiveFactory_NCCH)
|
||||||
|
@ -77,6 +77,15 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<std::vector<u8>> data;
|
std::shared_ptr<std::vector<u8>> data;
|
||||||
|
|
||||||
|
ExeFSSectionFile() = default;
|
||||||
|
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
|
ar& data;
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
// SelfNCCHArchive represents the running application itself. From this archive the application can
|
// SelfNCCHArchive represents the running application itself. From this archive the application can
|
||||||
@ -234,6 +243,15 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
NCCHData ncch_data;
|
NCCHData ncch_data;
|
||||||
|
|
||||||
|
SelfNCCHArchive() = default;
|
||||||
|
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& boost::serialization::base_object<ArchiveBackend>(*this);
|
||||||
|
ar& ncch_data;
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
void ArchiveFactory_SelfNCCH::Register(Loader::AppLoader& app_loader) {
|
void ArchiveFactory_SelfNCCH::Register(Loader::AppLoader& app_loader) {
|
||||||
@ -300,3 +318,6 @@ ResultVal<ArchiveFormatInfo> ArchiveFactory_SelfNCCH::GetFormatInfo(const Path&,
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::ExeFSSectionFile)
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::SelfNCCHArchive)
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <boost/serialization/export.hpp>
|
#include <boost/serialization/export.hpp>
|
||||||
|
#include <boost/serialization/shared_ptr.hpp>
|
||||||
|
#include <boost/serialization/vector.hpp>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "core/file_sys/archive_backend.h"
|
#include "core/file_sys/archive_backend.h"
|
||||||
#include "core/hle/result.h"
|
#include "core/hle/result.h"
|
||||||
@ -25,6 +27,17 @@ struct NCCHData {
|
|||||||
std::shared_ptr<std::vector<u8>> banner;
|
std::shared_ptr<std::vector<u8>> banner;
|
||||||
std::shared_ptr<RomFSReader> romfs_file;
|
std::shared_ptr<RomFSReader> romfs_file;
|
||||||
std::shared_ptr<RomFSReader> update_romfs_file;
|
std::shared_ptr<RomFSReader> update_romfs_file;
|
||||||
|
|
||||||
|
private:
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& icon;
|
||||||
|
ar& logo;
|
||||||
|
ar& banner;
|
||||||
|
ar& romfs_file;
|
||||||
|
ar& update_romfs_file;
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// File system interface to the SelfNCCH archive
|
/// File system interface to the SelfNCCH archive
|
||||||
@ -55,6 +68,11 @@ private:
|
|||||||
friend class boost::serialization::access;
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ExeFSSectionFile;
|
||||||
|
class SelfNCCHArchive;
|
||||||
|
|
||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
|
||||||
BOOST_CLASS_EXPORT_KEY(FileSys::ArchiveFactory_SelfNCCH)
|
BOOST_CLASS_EXPORT_KEY(FileSys::ArchiveFactory_SelfNCCH)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::ExeFSSectionFile)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::SelfNCCHArchive)
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include "common/archives.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "core/file_sys/ivfc_archive.h"
|
#include "core/file_sys/ivfc_archive.h"
|
||||||
@ -12,6 +13,11 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// FileSys namespace
|
// FileSys namespace
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::IVFCFile)
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::IVFCDelayGenerator)
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::RomFSDelayGenerator)
|
||||||
|
SERIALIZE_EXPORT_IMPL(FileSys::ExeFSDelayGenerator)
|
||||||
|
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
IVFCArchive::IVFCArchive(std::shared_ptr<RomFSReader> file,
|
IVFCArchive::IVFCArchive(std::shared_ptr<RomFSReader> file,
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <boost/serialization/export.hpp>
|
||||||
|
#include <boost/serialization/shared_ptr.hpp>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
#include "core/file_sys/archive_backend.h"
|
#include "core/file_sys/archive_backend.h"
|
||||||
@ -38,6 +40,8 @@ class IVFCDelayGenerator : public DelayGenerator {
|
|||||||
static constexpr u64 IPCDelayNanoseconds(9438006);
|
static constexpr u64 IPCDelayNanoseconds(9438006);
|
||||||
return IPCDelayNanoseconds;
|
return IPCDelayNanoseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SERIALIZE_DELAY_GENERATOR
|
||||||
};
|
};
|
||||||
|
|
||||||
class RomFSDelayGenerator : public DelayGenerator {
|
class RomFSDelayGenerator : public DelayGenerator {
|
||||||
@ -60,6 +64,8 @@ public:
|
|||||||
static constexpr u64 IPCDelayNanoseconds(9438006);
|
static constexpr u64 IPCDelayNanoseconds(9438006);
|
||||||
return IPCDelayNanoseconds;
|
return IPCDelayNanoseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SERIALIZE_DELAY_GENERATOR
|
||||||
};
|
};
|
||||||
|
|
||||||
class ExeFSDelayGenerator : public DelayGenerator {
|
class ExeFSDelayGenerator : public DelayGenerator {
|
||||||
@ -82,6 +88,8 @@ public:
|
|||||||
static constexpr u64 IPCDelayNanoseconds(9438006);
|
static constexpr u64 IPCDelayNanoseconds(9438006);
|
||||||
return IPCDelayNanoseconds;
|
return IPCDelayNanoseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SERIALIZE_DELAY_GENERATOR
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -128,6 +136,15 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<RomFSReader> romfs_file;
|
std::shared_ptr<RomFSReader> romfs_file;
|
||||||
|
|
||||||
|
IVFCFile() = default;
|
||||||
|
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& boost::serialization::base_object<FileBackend>(*this);
|
||||||
|
ar& romfs_file;
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
class IVFCDirectory : public DirectoryBackend {
|
class IVFCDirectory : public DirectoryBackend {
|
||||||
@ -162,3 +179,8 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::IVFCFile)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::IVFCDelayGenerator)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::RomFSDelayGenerator)
|
||||||
|
BOOST_CLASS_EXPORT_KEY(FileSys::ExeFSDelayGenerator)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
#include <boost/serialization/array.hpp>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
|
|
||||||
@ -29,9 +30,23 @@ private:
|
|||||||
FileUtil::IOFile file;
|
FileUtil::IOFile file;
|
||||||
std::array<u8, 16> key;
|
std::array<u8, 16> key;
|
||||||
std::array<u8, 16> ctr;
|
std::array<u8, 16> ctr;
|
||||||
std::size_t file_offset;
|
u64 file_offset;
|
||||||
std::size_t crypto_offset;
|
u64 crypto_offset;
|
||||||
std::size_t data_size;
|
u64 data_size;
|
||||||
|
|
||||||
|
RomFSReader() = default;
|
||||||
|
|
||||||
|
template <class Archive>
|
||||||
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
|
ar& is_encrypted;
|
||||||
|
ar& file;
|
||||||
|
ar& key;
|
||||||
|
ar& ctr;
|
||||||
|
ar& file_offset;
|
||||||
|
ar& crypto_offset;
|
||||||
|
ar& data_size;
|
||||||
|
}
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace FileSys
|
} // namespace FileSys
|
||||||
|
@ -3,10 +3,13 @@
|
|||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include "common/archives.h"
|
||||||
#include "core/hle/kernel/config_mem.h"
|
#include "core/hle/kernel/config_mem.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(ConfigMem::Handler)
|
||||||
|
|
||||||
namespace ConfigMem {
|
namespace ConfigMem {
|
||||||
|
|
||||||
Handler::Handler() {
|
Handler::Handler() {
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
// putting this as a subset of HLE for now.
|
// putting this as a subset of HLE for now.
|
||||||
|
|
||||||
#include <boost/serialization/binary_object.hpp>
|
#include <boost/serialization/binary_object.hpp>
|
||||||
|
#include <boost/serialization/export.hpp>
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/memory_ref.h"
|
#include "common/memory_ref.h"
|
||||||
@ -76,3 +77,5 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ConfigMem
|
} // namespace ConfigMem
|
||||||
|
|
||||||
|
BOOST_CLASS_EXPORT_KEY(ConfigMem::Handler)
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(SharedPage::Handler)
|
||||||
|
|
||||||
namespace boost::serialization {
|
namespace boost::serialization {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <boost/serialization/binary_object.hpp>
|
#include <boost/serialization/binary_object.hpp>
|
||||||
|
#include <boost/serialization/export.hpp>
|
||||||
#include "common/bit_field.h"
|
#include "common/bit_field.h"
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
@ -131,3 +132,5 @@ template <class Archive>
|
|||||||
void load_construct_data(Archive& ar, SharedPage::Handler* t, const unsigned int);
|
void load_construct_data(Archive& ar, SharedPage::Handler* t, const unsigned int);
|
||||||
|
|
||||||
} // namespace boost::serialization
|
} // namespace boost::serialization
|
||||||
|
|
||||||
|
BOOST_CLASS_EXPORT_KEY(SharedPage::Handler)
|
||||||
|
@ -12,6 +12,9 @@ class GSP_LCD final : public ServiceFramework<GSP_LCD> {
|
|||||||
public:
|
public:
|
||||||
GSP_LCD();
|
GSP_LCD();
|
||||||
~GSP_LCD() = default;
|
~GSP_LCD() = default;
|
||||||
|
|
||||||
|
private:
|
||||||
|
SERVICE_SERIALIZATION_SIMPLE
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::GSP
|
} // namespace Service::GSP
|
||||||
|
@ -29,7 +29,6 @@ void IR_RST::serialize(Archive& ar, const unsigned int) {
|
|||||||
// update_callback_id and input devices are set separately
|
// update_callback_id and input devices are set separately
|
||||||
ReloadInputDevices();
|
ReloadInputDevices();
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(IR_RST)
|
|
||||||
|
|
||||||
struct PadDataEntry {
|
struct PadDataEntry {
|
||||||
PadState current_state;
|
PadState current_state;
|
||||||
|
@ -12,6 +12,9 @@ namespace Service::IR {
|
|||||||
class IR_U final : public ServiceFramework<IR_U> {
|
class IR_U final : public ServiceFramework<IR_U> {
|
||||||
public:
|
public:
|
||||||
IR_U();
|
IR_U();
|
||||||
|
|
||||||
|
private:
|
||||||
|
SERVICE_SERIALIZATION_SIMPLE
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::IR
|
} // namespace Service::IR
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <boost/crc.hpp>
|
#include <boost/crc.hpp>
|
||||||
|
#include <boost/serialization/shared_ptr.hpp>
|
||||||
|
#include <boost/serialization/unique_ptr.hpp>
|
||||||
#include "common/string_util.h"
|
#include "common/string_util.h"
|
||||||
#include "common/swap.h"
|
#include "common/swap.h"
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
@ -13,6 +15,9 @@
|
|||||||
#include "core/hle/service/ir/extra_hid.h"
|
#include "core/hle/service/ir/extra_hid.h"
|
||||||
#include "core/hle/service/ir/ir_user.h"
|
#include "core/hle/service/ir/ir_user.h"
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(Service::IR::IR_USER)
|
||||||
|
SERVICE_CONSTRUCT_IMPL(Service::IR::IR_USER)
|
||||||
|
|
||||||
namespace Service::IR {
|
namespace Service::IR {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
@ -23,10 +28,9 @@ void IR_USER::serialize(Archive& ar, const unsigned int) {
|
|||||||
ar& receive_event;
|
ar& receive_event;
|
||||||
ar& shared_memory;
|
ar& shared_memory;
|
||||||
ar& connected_device;
|
ar& connected_device;
|
||||||
ar&* receive_buffer.get();
|
ar& receive_buffer;
|
||||||
ar&* extra_hid.get();
|
ar&* extra_hid.get();
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(IR_USER)
|
|
||||||
|
|
||||||
// This is a header that will present in the ir:USER shared memory if it is initialized with
|
// This is a header that will present in the ir:USER shared memory if it is initialized with
|
||||||
// InitializeIrNopShared service function. Otherwise the shared memory doesn't have this header if
|
// InitializeIrNopShared service function. Otherwise the shared memory doesn't have this header if
|
||||||
@ -204,6 +208,8 @@ private:
|
|||||||
u32 max_data_size;
|
u32 max_data_size;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
BufferManager() = default;
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int) {
|
void serialize(Archive& ar, const unsigned int) {
|
||||||
ar& info;
|
ar& info;
|
||||||
@ -449,6 +455,7 @@ IR_USER::IR_USER(Core::System& system) : ServiceFramework("ir:USER", 1) {
|
|||||||
|
|
||||||
using namespace Kernel;
|
using namespace Kernel;
|
||||||
|
|
||||||
|
connected_device = false;
|
||||||
conn_status_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:ConnectionStatusEvent");
|
conn_status_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:ConnectionStatusEvent");
|
||||||
send_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:SendEvent");
|
send_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:SendEvent");
|
||||||
receive_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:ReceiveEvent");
|
receive_event = system.Kernel().CreateEvent(ResetType::OneShot, "IR:ReceiveEvent");
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <boost/serialization/shared_ptr.hpp>
|
|
||||||
#include "core/hle/service/service.h"
|
#include "core/hle/service/service.h"
|
||||||
|
|
||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
@ -177,3 +176,6 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::IR
|
} // namespace Service::IR
|
||||||
|
|
||||||
|
BOOST_CLASS_EXPORT_KEY(Service::IR::IR_USER)
|
||||||
|
SERVICE_CONSTRUCT(Service::IR::IR_USER)
|
||||||
|
@ -28,7 +28,6 @@ void MIC_U::serialize(Archive& ar, const unsigned int) {
|
|||||||
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
ar& boost::serialization::base_object<Kernel::SessionRequestHandler>(*this);
|
||||||
ar&* impl.get();
|
ar&* impl.get();
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(MIC_U)
|
|
||||||
|
|
||||||
/// Microphone audio encodings.
|
/// Microphone audio encodings.
|
||||||
enum class Encoding : u8 {
|
enum class Encoding : u8 {
|
||||||
|
@ -24,6 +24,9 @@
|
|||||||
#include "core/hle/service/nwm/uds_data.h"
|
#include "core/hle/service/nwm/uds_data.h"
|
||||||
#include "core/memory.h"
|
#include "core/memory.h"
|
||||||
|
|
||||||
|
SERIALIZE_EXPORT_IMPL(Service::NWM::NWM_UDS)
|
||||||
|
SERVICE_CONSTRUCT_IMPL(Service::NWM::NWM_UDS)
|
||||||
|
|
||||||
namespace Service::NWM {
|
namespace Service::NWM {
|
||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
@ -34,7 +37,6 @@ void NWM_UDS::serialize(Archive& ar, const unsigned int) {
|
|||||||
ar& received_beacons;
|
ar& received_beacons;
|
||||||
// wifi_packet_received set in constructor
|
// wifi_packet_received set in constructor
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(NWM_UDS)
|
|
||||||
|
|
||||||
namespace ErrCodes {
|
namespace ErrCodes {
|
||||||
enum {
|
enum {
|
||||||
|
@ -557,6 +557,7 @@ private:
|
|||||||
|
|
||||||
template <class Archive>
|
template <class Archive>
|
||||||
void serialize(Archive& ar, const unsigned int);
|
void serialize(Archive& ar, const unsigned int);
|
||||||
|
friend class boost::serialization::access;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::NWM
|
} // namespace Service::NWM
|
||||||
|
@ -35,7 +35,6 @@ void SRV::serialize(Archive& ar, const unsigned int) {
|
|||||||
ar& notification_semaphore;
|
ar& notification_semaphore;
|
||||||
ar& get_service_handle_delayed_map;
|
ar& get_service_handle_delayed_map;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(SRV)
|
|
||||||
|
|
||||||
constexpr int MAX_PENDING_NOTIFICATIONS = 16;
|
constexpr int MAX_PENDING_NOTIFICATIONS = 16;
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ void Y2R_U::serialize(Archive& ar, const unsigned int) {
|
|||||||
ar& transfer_end_interrupt_enabled;
|
ar& transfer_end_interrupt_enabled;
|
||||||
ar& spacial_dithering_enabled;
|
ar& spacial_dithering_enabled;
|
||||||
}
|
}
|
||||||
SERIALIZE_IMPL(Y2R_U)
|
|
||||||
|
|
||||||
static const CoefficientSet standard_coefficients[4] = {
|
static const CoefficientSet standard_coefficients[4] = {
|
||||||
{{0x100, 0x166, 0xB6, 0x58, 0x1C5, -0x166F, 0x10EE, -0x1C5B}}, // ITU_Rec601
|
{{0x100, 0x166, 0xB6, 0x58, 0x1C5, -0x166F, 0x10EE, -0x1C5B}}, // ITU_Rec601
|
||||||
|
Loading…
Reference in New Issue
Block a user