private static ProgramData ChangeData(RPIProgramData RPIData, ProgramData PCData) { if (RPIData.ChangeDevice) { List <ProgramData> AllPrograms = Mixer.Mixer.GetAllPrograms(); for (int i = 0; i < AllPrograms.Count; i++) { Boolean IsUsed = false; for (int j = 0; j < GlobalPCData.Programs.Count; j++) { if (AllPrograms[i].PID == GlobalPCData.Programs[j].PID) { IsUsed = true; break; } } if (IsUsed == false) { return(AllPrograms[i]); } } } else { if (true) { Mixer.Mixer.UpdateProgram(RPIData); PCData.Volume = RPIData.Volume; PCData.IsMute = RPIData.IsMute; return(PCData); } } return(PCData); }
public static void UpdateProgram(RPIProgramData RPIData) { Process[] AllProcess = Process.GetProcesses(); if (DoesPIDExist(AllProcess, RPIData.PID)) { AudioSessionEnumerator sessions = EnumerateSessions(); foreach (AudioSessionControl session in sessions) { if (RPIData.PID == GetSessionPID(session)) { SimpleAudioVolume simpleVolume = session.QueryInterface <SimpleAudioVolume>(); simpleVolume.MasterVolume = (float)RPIData.Volume / 100; simpleVolume.IsMuted = RPIData.IsMute; } } } }