Files
RhythmicWallpaper/AudioWallpaperManager/ChangeOutputDevices.cs
2024-10-17 23:10:02 +08:00

33 lines
921 B
C#

using NAudio.CoreAudioApi;
using NAudio.CoreAudioApi.Interfaces;
namespace AudioWallpaperManager {
public class ChangeOutputDevices : IMMNotificationClient {
Manager manager;
public ChangeOutputDevices(Manager manager) {
this.manager = manager;
}
public void OnDeviceStateChanged(string deviceId, DeviceState newState) {
manager.DevicesStateChanged();
}
public void OnDeviceAdded(string pwstrDeviceId) {
manager.DevicesStateChanged();
}
public void OnDeviceRemoved(string deviceId) {
manager.DevicesStateChanged();
}
public void OnDefaultDeviceChanged(DataFlow flow, Role role, string defaultDeviceId) {
manager.DevicesStateChanged();
}
public void OnPropertyValueChanged(string pwstrDeviceId, PropertyKey key) {
return;
}
}
}