mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 08:29:03 -06:00 
			
		
		
		
	service/audio: Add missing services
Adds the missing audctl service, as well as the :a and :d services for audin, audout, audrec, and audren.
This commit is contained in:
		
							
								
								
									
										45
									
								
								src/core/hle/service/audio/audctl.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/core/hle/service/audio/audctl.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audctl.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudCtl::AudCtl() : ServiceFramework{"audctl"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "GetTargetVolume"},
 | 
			
		||||
        {1, nullptr, "SetTargetVolume"},
 | 
			
		||||
        {2, nullptr, "GetTargetVolumeMin"},
 | 
			
		||||
        {3, nullptr, "GetTargetVolumeMax"},
 | 
			
		||||
        {4, nullptr, "IsTargetMute"},
 | 
			
		||||
        {5, nullptr, "SetTargetMute"},
 | 
			
		||||
        {6, nullptr, "IsTargetConnected"},
 | 
			
		||||
        {7, nullptr, "SetDefaultTarget"},
 | 
			
		||||
        {8, nullptr, "GetDefaultTarget"},
 | 
			
		||||
        {9, nullptr, "GetAudioOutputMode"},
 | 
			
		||||
        {10, nullptr, "SetAudioOutputMode"},
 | 
			
		||||
        {11, nullptr, "SetForceMutePolicy"},
 | 
			
		||||
        {12, nullptr, "GetForceMutePolicy"},
 | 
			
		||||
        {13, nullptr, "GetOutputModeSetting"},
 | 
			
		||||
        {14, nullptr, "SetOutputModeSetting"},
 | 
			
		||||
        {15, nullptr, "SetOutputTarget"},
 | 
			
		||||
        {16, nullptr, "SetInputTargetForceEnabled"},
 | 
			
		||||
        {17, nullptr, "SetHeadphoneOutputLevelMode"},
 | 
			
		||||
        {18, nullptr, "GetHeadphoneOutputLevelMode"},
 | 
			
		||||
        {19, nullptr, "AcquireAudioVolumeUpdateEventForPlayReport"},
 | 
			
		||||
        {20, nullptr, "AcquireAudioOutputDeviceUpdateEventForPlayReport"},
 | 
			
		||||
        {21, nullptr, "GetAudioOutputTargetForPlayReport"},
 | 
			
		||||
        {22, nullptr, "NotifyHeadphoneVolumeWarningDisplayedEvent"},
 | 
			
		||||
        {23, nullptr, "SetSystemOutputMasterVolume"},
 | 
			
		||||
        {24, nullptr, "GetSystemOutputMasterVolume"},
 | 
			
		||||
        {25, nullptr, "GetAudioVolumeDataForPlayReport"},
 | 
			
		||||
        {26, nullptr, "UpdateHeadphoneSettings"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/audctl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/audctl.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudCtl final : public ServiceFramework<AudCtl> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudCtl();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										20
									
								
								src/core/hle/service/audio/auddbg.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/core/hle/service/audio/auddbg.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/auddbg.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudDbg::AudDbg(const char* name) : ServiceFramework{name} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "RequestSuspendForDebug"},
 | 
			
		||||
        {1, nullptr, "RequestResumeForDebug"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/auddbg.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/auddbg.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudDbg final : public ServiceFramework<AudDbg> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudDbg(const char* name);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										24
									
								
								src/core/hle/service/audio/audin_a.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/core/hle/service/audio/audin_a.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audin_a.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudInA::AudInA() : ServiceFramework{"audin:a"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "RequestSuspendAudioIns"},
 | 
			
		||||
        {1, nullptr, "RequestResumeAudioIns"},
 | 
			
		||||
        {2, nullptr, "GetAudioInsProcessMasterVolume"},
 | 
			
		||||
        {3, nullptr, "SetAudioInsProcessMasterVolume"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/audin_a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/audin_a.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudInA final : public ServiceFramework<AudInA> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudInA();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
@@ -2,10 +2,16 @@
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audctl.h"
 | 
			
		||||
#include "core/hle/service/audio/auddbg.h"
 | 
			
		||||
#include "core/hle/service/audio/audin_a.h"
 | 
			
		||||
#include "core/hle/service/audio/audin_u.h"
 | 
			
		||||
#include "core/hle/service/audio/audio.h"
 | 
			
		||||
#include "core/hle/service/audio/audout_a.h"
 | 
			
		||||
#include "core/hle/service/audio/audout_u.h"
 | 
			
		||||
#include "core/hle/service/audio/audrec_a.h"
 | 
			
		||||
#include "core/hle/service/audio/audrec_u.h"
 | 
			
		||||
#include "core/hle/service/audio/audren_a.h"
 | 
			
		||||
#include "core/hle/service/audio/audren_u.h"
 | 
			
		||||
#include "core/hle/service/audio/codecctl.h"
 | 
			
		||||
#include "core/hle/service/audio/hwopus.h"
 | 
			
		||||
@@ -13,12 +19,22 @@
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
void InstallInterfaces(SM::ServiceManager& service_manager) {
 | 
			
		||||
    std::make_shared<AudCtl>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudOutA>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudOutU>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudInA>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudInU>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudRecA>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudRecU>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudRenA>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudRenU>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<CodecCtl>()->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<HwOpus>()->InstallAsService(service_manager);
 | 
			
		||||
 | 
			
		||||
    std::make_shared<AudDbg>("audin:d")->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudDbg>("audout:d")->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudDbg>("audrec:d")->InstallAsService(service_manager);
 | 
			
		||||
    std::make_shared<AudDbg>("audren:d")->InstallAsService(service_manager);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								src/core/hle/service/audio/audout_a.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/core/hle/service/audio/audout_a.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audout_a.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudOutA::AudOutA() : ServiceFramework{"audout:a"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "RequestSuspendAudioOuts"},
 | 
			
		||||
        {1, nullptr, "RequestResumeAudioOuts"},
 | 
			
		||||
        {2, nullptr, "GetAudioOutsProcessMasterVolume"},
 | 
			
		||||
        {3, nullptr, "SetAudioOutsProcessMasterVolume"},
 | 
			
		||||
        {4, nullptr, "GetAudioOutsProcessRecordVolume"},
 | 
			
		||||
        {5, nullptr, "SetAudioOutsProcessRecordVolume"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/audout_a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/audout_a.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudOutA final : public ServiceFramework<AudOutA> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudOutA();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										22
									
								
								src/core/hle/service/audio/audrec_a.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/core/hle/service/audio/audrec_a.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audrec_a.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudRecA::AudRecA() : ServiceFramework{"audrec:a"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "RequestSuspendFinalOutputRecorders"},
 | 
			
		||||
        {1, nullptr, "RequestResumeFinalOutputRecorders"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/audrec_a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/audrec_a.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudRecA final : public ServiceFramework<AudRecA> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudRecA();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										28
									
								
								src/core/hle/service/audio/audren_a.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/core/hle/service/audio/audren_a.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/audio/audren_a.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
AudRenA::AudRenA() : ServiceFramework{"audren:a"} {
 | 
			
		||||
    // clang-format off
 | 
			
		||||
    static const FunctionInfo functions[] = {
 | 
			
		||||
        {0, nullptr, "RequestSuspendAudioRenderers"},
 | 
			
		||||
        {1, nullptr, "RequestResumeAudioRenderers"},
 | 
			
		||||
        {2, nullptr, "GetAudioRenderersProcessMasterVolume"},
 | 
			
		||||
        {3, nullptr, "SetAudioRenderersProcessMasterVolume"},
 | 
			
		||||
        {4, nullptr, "RegisterAppletResourceUserId"},
 | 
			
		||||
        {5, nullptr, "UnregisterAppletResourceUserId"},
 | 
			
		||||
        {6, nullptr, "GetAudioRenderersProcessRecordVolume"},
 | 
			
		||||
        {7, nullptr, "SetAudioRenderersProcessRecordVolume"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
 | 
			
		||||
    RegisterHandlers(functions);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
							
								
								
									
										16
									
								
								src/core/hle/service/audio/audren_a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/audio/audren_a.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
// Copyright 2018 yuzu emulator team
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "core/hle/service/service.h"
 | 
			
		||||
 | 
			
		||||
namespace Service::Audio {
 | 
			
		||||
 | 
			
		||||
class AudRenA final : public ServiceFramework<AudRenA> {
 | 
			
		||||
public:
 | 
			
		||||
    explicit AudRenA();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace Service::Audio
 | 
			
		||||
		Reference in New Issue
	
	Block a user