[svn-commits] tilghman: trunk r297822 - in /trunk: ./ contrib/init.d/ utils/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Dec 7 16:54:07 CST 2010


Author: tilghman
Date: Tue Dec  7 16:54:00 2010
New Revision: 297822

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=297822
Log:
Merged revisions 297821 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r297821 | tilghman | 2010-12-07 16:51:05 -0600 (Tue, 07 Dec 2010) | 18 lines
  
  Merged revisions 297819 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r297819 | tilghman | 2010-12-07 16:40:45 -0600 (Tue, 07 Dec 2010) | 11 lines
    
    Merged revisions 297818 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r297818 | tilghman | 2010-12-07 16:35:50 -0600 (Tue, 07 Dec 2010) | 4 lines
      
      Use non-deprecated APIs for CoreAudio
      
      Review: https://reviewboard.asterisk.org/r/1040/
    ........
  ................
................

Added:
    trunk/contrib/init.d/org.asterisk.muted.plist
      - copied unchanged from r297821, branches/1.8/contrib/init.d/org.asterisk.muted.plist
Modified:
    trunk/   (props changed)
    trunk/Makefile
    trunk/contrib/init.d/org.asterisk.asterisk.plist
    trunk/utils/muted.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: trunk/Makefile
URL: http://svnview.digium.com/svn/asterisk/trunk/Makefile?view=diff&rev=297822&r1=297821&r2=297822
==============================================================================
--- trunk/Makefile (original)
+++ trunk/Makefile Tue Dec  7 16:54:00 2010
@@ -801,8 +801,17 @@
 			cat contrib/init.d/rc.archlinux.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR)|;s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > contrib/init.d/rc.asterisk.tmp ; \
 			$(INSTALL) -m 755 contrib/init.d/rc.asterisk.tmp $(DESTDIR)/etc/rc.d/asterisk ; \
 			rm -f contrib/init.d/rc.asterisk.tmp ; \
-		elif [ -d $(DESTDIR)/Library/LaunchDaemons -a ! -f $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist ] ; then \
-			$(INSTALL) -m 644 contrib/init.d/org.asterisk.asterisk.plist $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist; \
+		elif [ -d $(DESTDIR)/Library/LaunchDaemons ]; then \
+			if [ ! -f $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist ]; then \
+				sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' < contrib/init.d/org.asterisk.asterisk.plist > asterisk.plist ; \
+				$(INSTALL) -m 644 asterisk.plist $(DESTDIR)/Library/LaunchDaemons/org.asterisk.asterisk.plist; \
+				rm -f asterisk.plist; \
+			fi; \
+			if [ ! -f $(DESTDIR)/Library/LaunchDaemons/org.asterisk.muted.plist ]; then \
+				sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' < contrib/init.d/org.asterisk.muted.plist > muted.plist ; \
+				$(INSTALL) -m 644 muted.plist $(DESTDIR)/Library/LaunchDaemons/org.asterisk.muted.plist; \
+				rm -f muted.plist; \
+			fi; \
 		elif [ -f /etc/slackware-version ]; then \
 			echo "Slackware is not currently supported, although an init script does exist for it."; \
 		else \

Modified: trunk/contrib/init.d/org.asterisk.asterisk.plist
URL: http://svnview.digium.com/svn/asterisk/trunk/contrib/init.d/org.asterisk.asterisk.plist?view=diff&rev=297822&r1=297821&r2=297822
==============================================================================
--- trunk/contrib/init.d/org.asterisk.asterisk.plist (original)
+++ trunk/contrib/init.d/org.asterisk.asterisk.plist Tue Dec  7 16:54:00 2010
@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>Label</key>
-	<string>org.asterisk.asterisk.launchagent</string>
+	<string>org.asterisk.asterisk</string>
 	<key>Disabled</key>
 	<false/><!-- Change this to '<true/>' to disable Asterisk -->
 	<key>UserName</key>
@@ -19,10 +19,10 @@
 	<key>Umask</key>
 	<integer>7</integer><!-- 0007 -->
 	<key>Program</key>
-	<string>/usr/local/sbin/asterisk</string>
+	<string>__ASTERISK_SBIN_DIR__/asterisk</string>
 	<key>ProgramArguments</key>
 	<array>
-		<string>/usr/local/sbin/asterisk</string>
+		<string>__ASTERISK_SBIN_DIR__/asterisk</string>
 		<string>-f</string><!-- Don't fork.  This option is mandatory when running with launchd. -->
 	</array>
 	<key>EnvironmentVariables</key>

Modified: trunk/utils/muted.c
URL: http://svnview.digium.com/svn/asterisk/trunk/utils/muted.c?view=diff&rev=297822&r1=297821&r2=297822
==============================================================================
--- trunk/utils/muted.c (original)
+++ trunk/utils/muted.c Tue Dec  7 16:54:00 2010
@@ -39,6 +39,9 @@
 
 #ifdef __Darwin__
 #include <CoreAudio/AudioHardware.h> 
+#include <sys/types.h>
+#include <pwd.h>
+#include <sys/stat.h>
 #elif defined(__linux__) || defined(__FreeBSD__) || defined(__GLIBC__)
 #include <sys/soundcard.h>
 #endif
@@ -54,7 +57,9 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-static char *config = "/etc/muted.conf";
+#define ast_strlen_zero(a)	(!(*(a)))
+
+static char *config = "/etc/asterisk/muted.conf";
 
 static char host[256] = "";
 static char user[256] = "";
@@ -349,17 +354,25 @@
 	AudioDeviceID device;
 	UInt32 size;
 	UInt32 channels[2];
+	AudioObjectPropertyAddress OutputAddr = { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
+	AudioObjectPropertyAddress ChannelAddr = { kAudioDevicePropertyPreferredChannelsForStereo, kAudioDevicePropertyScopeOutput, kAudioObjectPropertyElementWildcard };
+	AudioObjectPropertyAddress VolumeAddr = { kAudioDevicePropertyVolumeScalar, kAudioDevicePropertyScopeOutput, };
 
 	size = sizeof(device);
-	err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &device);
+	err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &OutputAddr, 0, NULL, &size, &device);
 	size = sizeof(channels);
-	if (!err) 
-		err = AudioDeviceGetProperty(device, 0, false, kAudioDevicePropertyPreferredChannelsForStereo, &size, &channels);
+	if (!err) {
+		err = AudioObjectGetPropertyData(device, &ChannelAddr, 0, NULL, &size, &channels);
+	}
 	size = sizeof(vol);
-	if (!err)
-		err = AudioDeviceGetProperty(device, channels[0], false, kAudioDevicePropertyVolumeScalar, &size, &volumeL);
-	if (!err)
-		err = AudioDeviceGetProperty(device, channels[1], false, kAudioDevicePropertyVolumeScalar, &size, &volumeR);
+	if (!err) {
+		VolumeAddr.mElement = channels[0];
+		err = AudioObjectGetPropertyData(device, &VolumeAddr, 0, NULL, &size, &volumeL);
+	}
+	if (!err) {
+		VolumeAddr.mElement = channels[1];
+		err = AudioObjectGetPropertyData(device, &VolumeAddr, 0, NULL, &size, &volumeR);
+	}
 	if (!err)
 		vol = (volumeL < volumeR) ? volumeR : volumeL;
 	else {
@@ -385,16 +398,23 @@
 	AudioDeviceID device;
 	UInt32 size;
 	UInt32 channels[2];
+	AudioObjectPropertyAddress OutputAddr = { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
+	AudioObjectPropertyAddress ChannelAddr = { kAudioDevicePropertyPreferredChannelsForStereo, kAudioDevicePropertyScopeOutput, kAudioObjectPropertyElementWildcard };
+	AudioObjectPropertyAddress VolumeAddr = { kAudioDevicePropertyVolumeScalar, kAudioDevicePropertyScopeOutput, };
 
 	size = sizeof(device);
-	err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &device);
+	err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &OutputAddr, 0, NULL, &size, &device);
 	size = sizeof(channels);
-	err = AudioDeviceGetProperty(device, 0, false, kAudioDevicePropertyPreferredChannelsForStereo, &size, &channels);
+	err = AudioObjectGetPropertyData(device, &ChannelAddr, 0, NULL, &size, &channels);
 	size = sizeof(vol);
-	if (!err)
-		err = AudioDeviceSetProperty(device, 0, channels[0], false, kAudioDevicePropertyVolumeScalar, size, &volumeL);
-	if (!err)
-		err = AudioDeviceSetProperty(device, 0, channels[1], false, kAudioDevicePropertyVolumeScalar, size, &volumeR); 
+	if (!err) {
+		VolumeAddr.mElement = channels[0];
+		err = AudioObjectSetPropertyData(device, &VolumeAddr, 0, NULL, size, &volumeL);
+	}
+	if (!err) {
+		VolumeAddr.mElement = channels[1];
+		err = AudioObjectSetPropertyData(device, &VolumeAddr, 0, NULL, size, &volumeR);
+	}
 	if (err) {
 #endif
 
@@ -692,9 +712,33 @@
 			exit(1);
 		}
 #else
-		fprintf(stderr, "Mac OS X detected.  Use 'launchd -d muted -f' to launch.\n");
+		const char *found = NULL, *paths[] = {
+			"/Library/LaunchAgents/org.asterisk.muted.plist",
+			"/Library/LaunchDaemons/org.asterisk.muted.plist",
+			"contrib/init.d/org.asterisk.muted.plist",
+			"<path-to-asterisk-source>/contrib/init.d/org.asterisk.muted.plist" };
+		char userpath[256];
+		struct stat unused;
+		struct passwd *pwd = getpwuid(getuid());
+		int i;
+
+		snprintf(userpath, sizeof(userpath), "%s%s", pwd->pw_dir, paths[0]);
+		if (!stat(userpath, &unused)) {
+			found = userpath;
+		}
+
+		if (!found) {
+			for (i = 0; i < 3; i++) {
+				if (!stat(paths[i], &unused)) {
+					found = paths[i];
+					break;
+				}
+			}
+		}
+
+		fprintf(stderr, "Mac OS X detected.  Use 'launchctl load -w %s' to launch.\n", found ? found : paths[3]);
 		exit(1);
-#endif
+#endif /* !defined(HAVE_SBIN_LAUNCHD */
 	}
 #endif
 	for(;;) {




More information about the svn-commits mailing list