switchaudio-osx: init at 1.2.2 (#365581)

This commit is contained in:
Austin Horstman
2024-12-22 22:47:59 -06:00
committed by GitHub
2 changed files with 72 additions and 0 deletions
@@ -0,0 +1,25 @@
From 02803f510bae37eac88b0168ff887bdf7d71a7f0 Mon Sep 17 00:00:00 2001
From: James Woglom <j@wogloms.net>
Date: Wed, 1 May 2024 00:36:14 -0400
Subject: [PATCH] Fix build when run on pre-macOS Monterey
---
audio_switch.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/audio_switch.c b/audio_switch.c
index 814edce..a064c3e 100644
--- a/audio_switch.c
+++ b/audio_switch.c
@@ -715,7 +715,11 @@ OSStatus setMute(ASDeviceType typeRequested, ASMuteType muteRequested) {
AudioObjectPropertyAddress propertyAddress = {
.mSelector = kAudioDevicePropertyMute,
.mScope = scope,
+ #ifndef MAC_OS_VERSION_12_0
+ .mElement = kAudioObjectPropertyElementMaster,
+ #else
.mElement = kAudioObjectPropertyElementMain,
+ #endif
};
UInt32 muted = (UInt32)muteRequested;
@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
xcodebuild,
xcbuildHook,
}:
stdenv.mkDerivation rec {
pname = "switchaudio-osx";
version = "1.2.2";
src = fetchFromGitHub {
owner = "deweller";
repo = "switchaudio-osx";
tag = version;
hash = "sha256-AZJn5kHK/al94ONfIHcG+W0jyMfgdJkIngN+PVj+I44=";
};
buildInputs = [ xcodebuild ];
nativeBuildInputs = [ xcbuildHook ];
patches = [
# Patch to fix running on earlier version of macOS
# https://github.com/deweller/switchaudio-osx/pull/65
./001-macos-legacy-support.patch
];
installPhase = ''
runHook preInstall
# for some reason binary is located in Products/ rather than in build/
install -Dm755 Products/Release/SwitchAudioSource $out/bin/SwitchAudioSource
runHook postInstall
'';
meta = {
description = "Command-line utility to manage audio input/output devices on macOS";
homepage = "https://github.com/deweller/switchaudio-osx";
mainProgram = "SwitchAudioSource";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ taranarmo ];
platforms = lib.platforms.darwin;
};
}