BehaviorInfo.cs 1.4 KB

123456789101112131415161718192021222324252627282930
  1. namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
  2. {
  3. class BehaviorInfo
  4. {
  5. private const int _revision = AudioRendererConsts.Revision;
  6. private int _userRevision = 0;
  7. public BehaviorInfo()
  8. {
  9. /* TODO: this class got a size of 0xC0
  10. 0x00 - uint - Internal Revision
  11. 0x04 - uint - User Revision
  12. 0x08 - ... unknown ...
  13. */
  14. }
  15. public bool IsSplitterSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.Splitter);
  16. public bool IsSplitterBugFixed() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.SplitterBugFix);
  17. public bool IsVariadicCommandBufferSizeSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.VariadicCommandBufferSize);
  18. public bool IsElapsedFrameCountSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.ElapsedFrameCount);
  19. public int GetPerformanceMetricsDataFormat() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.PerformanceMetricsDataFormatVersion2) ? 2 : 1;
  20. public void SetUserLibRevision(int revision)
  21. {
  22. _userRevision = AudioRendererCommon.GetRevisionVersion(revision);
  23. }
  24. }
  25. }