Merge pull request #1671 from DarkLordZach/vi-disconnect

vi: Implement TransactParcel for Disconnect and DetachBuffer
This commit is contained in:
bunnei 2018-11-18 19:18:46 -08:00 committed by GitHub
commit 611141e09f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 0 deletions

View File

@ -237,6 +237,22 @@ private:
Data data{}; Data data{};
}; };
/// Represents a parcel containing one int '0' as its data
/// Used by DetachBuffer and Disconnect
class IGBPEmptyResponseParcel : public Parcel {
protected:
void SerializeData() override {
Write(data);
}
private:
struct Data {
u32_le unk_0;
};
Data data{};
};
class IGBPSetPreallocatedBufferRequestParcel : public Parcel { class IGBPSetPreallocatedBufferRequestParcel : public Parcel {
public: public:
explicit IGBPSetPreallocatedBufferRequestParcel(std::vector<u8> buffer) explicit IGBPSetPreallocatedBufferRequestParcel(std::vector<u8> buffer)
@ -554,6 +570,12 @@ private:
ctx.WriteBuffer(response.Serialize()); ctx.WriteBuffer(response.Serialize());
} else if (transaction == TransactionId::CancelBuffer) { } else if (transaction == TransactionId::CancelBuffer) {
LOG_CRITICAL(Service_VI, "(STUBBED) called, transaction=CancelBuffer"); LOG_CRITICAL(Service_VI, "(STUBBED) called, transaction=CancelBuffer");
} else if (transaction == TransactionId::Disconnect ||
transaction == TransactionId::DetachBuffer) {
const auto buffer = ctx.ReadBuffer();
IGBPEmptyResponseParcel response{};
ctx.WriteBuffer(response.Serialize());
} else { } else {
ASSERT_MSG(false, "Unimplemented"); ASSERT_MSG(false, "Unimplemented");
} }