add OS X configure stuff and added a skeleton audioOutput plugin for OS X
git-svn-id: https://svn.musicpd.org/mpd/trunk@3074 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
		
							
								
								
									
										13
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -102,6 +102,13 @@ AP_maGiC_VALUE | |||||||
| ) | ) | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | enable_osx=no | ||||||
|  | case $host in | ||||||
|  | 	*-darwin*) | ||||||
|  |                 AC_DEFINE(HAVE_OSX, 1, [Define for compiling OS X support]) | ||||||
|  | 		enable_osx=yes ;; | ||||||
|  | esac | ||||||
|  |  | ||||||
| if test x$enable_ogg = xno; then | if test x$enable_ogg = xno; then | ||||||
| 	AC_MSG_WARN("disabling shout streaming support since vorbis was not found") | 	AC_MSG_WARN("disabling shout streaming support since vorbis was not found") | ||||||
| fi | fi | ||||||
| @@ -582,6 +589,12 @@ else | |||||||
| 	echo "Playing audio via ALSA ........disabled" | 	echo "Playing audio via ALSA ........disabled" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | if test x$enable_osx = xyes; then | ||||||
|  | 	echo "Playing audio on OS X .........enabled" | ||||||
|  | else | ||||||
|  | 	echo "Playing audio on OS X .........disabled" | ||||||
|  | fi | ||||||
|  |  | ||||||
| if test x$enable_shout = xyes; then | if test x$enable_shout = xyes; then | ||||||
| 	echo "Streaming through shout .......enabled" | 	echo "Streaming through shout .......enabled" | ||||||
| else | else | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ mpd_audioOutputs = \ | |||||||
| 	audioOutputs/audioOutput_alsa.c \ | 	audioOutputs/audioOutput_alsa.c \ | ||||||
| 	audioOutputs/audioOutput_ao.c \ | 	audioOutputs/audioOutput_ao.c \ | ||||||
| 	audioOutputs/audioOutput_oss.c \ | 	audioOutputs/audioOutput_oss.c \ | ||||||
|  | 	audioOutputs/audioOutput_osx.c \ | ||||||
| 	audioOutputs/audioOutput_shout.c | 	audioOutputs/audioOutput_shout.c | ||||||
|  |  | ||||||
| mpd_inputPlugins = \ | mpd_inputPlugins = \ | ||||||
|   | |||||||
| @@ -59,6 +59,7 @@ int cmpAudioFormat(AudioFormat * f1, AudioFormat * f2) { | |||||||
| extern AudioOutputPlugin alsaPlugin; | extern AudioOutputPlugin alsaPlugin; | ||||||
| extern AudioOutputPlugin aoPlugin; | extern AudioOutputPlugin aoPlugin; | ||||||
| extern AudioOutputPlugin ossPlugin; | extern AudioOutputPlugin ossPlugin; | ||||||
|  | extern AudioOutputPlugin osxPlugin; | ||||||
| extern AudioOutputPlugin shoutPlugin; | extern AudioOutputPlugin shoutPlugin; | ||||||
|  |  | ||||||
| /* make sure initPlayerData is called before this function!! */ | /* make sure initPlayerData is called before this function!! */ | ||||||
| @@ -70,6 +71,7 @@ void initAudioDriver() { | |||||||
| 	loadAudioOutputPlugin(&alsaPlugin); | 	loadAudioOutputPlugin(&alsaPlugin); | ||||||
| 	loadAudioOutputPlugin(&aoPlugin); | 	loadAudioOutputPlugin(&aoPlugin); | ||||||
| 	loadAudioOutputPlugin(&ossPlugin); | 	loadAudioOutputPlugin(&ossPlugin); | ||||||
|  | 	loadAudioOutputPlugin(&osxPlugin); | ||||||
| 	loadAudioOutputPlugin(&shoutPlugin); | 	loadAudioOutputPlugin(&shoutPlugin); | ||||||
|  |  | ||||||
| 	pdAudioDevicesEnabled = (getPlayerData())->audioDeviceEnabled; | 	pdAudioDevicesEnabled = (getPlayerData())->audioDeviceEnabled; | ||||||
|   | |||||||
							
								
								
									
										109
									
								
								src/audioOutputs/audioOutput_osx.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								src/audioOutputs/audioOutput_osx.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | |||||||
|  | /* the Music Player Daemon (MPD) | ||||||
|  |  * (c)2003-2004 by Warren Dukes (shank@mercury.chem.pitt.edu) | ||||||
|  |  * This project's homepage is: http://www.musicpd.org | ||||||
|  |  * | ||||||
|  |  * This program is free software; you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation; either version 2 of the License, or | ||||||
|  |  * (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program; if not, write to the Free Software | ||||||
|  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "../audioOutput.h" | ||||||
|  |  | ||||||
|  | #ifdef HAVE_OSX | ||||||
|  |  | ||||||
|  | #include "../conf.h" | ||||||
|  | #include "../log.h" | ||||||
|  |  | ||||||
|  | #include <stdlib.h> | ||||||
|  |  | ||||||
|  | typedef struct _OsxData { | ||||||
|  | } OsxData; | ||||||
|  |  | ||||||
|  | static OsxData * newOsxData() { | ||||||
|  | 	OsxData * ret = malloc(sizeof(OsxData)); | ||||||
|  |  | ||||||
|  | 	return ret; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static int osx_initDriver(AudioOutput * audioOutput, ConfigParam * param) { | ||||||
|  | 	OsxData * od  = newOsxData(); | ||||||
|  |  | ||||||
|  | 	audioOutput->data = od; | ||||||
|  |  | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static void freeOsxData(OsxData * od) { | ||||||
|  | 	free(od); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static void osx_finishDriver(AudioOutput * audioOutput) { | ||||||
|  | 	OsxData * od = (OsxData *)audioOutput->data; | ||||||
|  | 	freeOsxData(od); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static void osx_dropBufferedAudio(AudioOutput * audioOutput) { | ||||||
|  | 	/* not implemented yet */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static void osx_closeDevice(AudioOutput * audioOutput) { | ||||||
|  | 	//OsxData * od = (OsxData *) audioOutput->data; | ||||||
|  |  | ||||||
|  | 	audioOutput->open = 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static int osx_openDevice(AudioOutput * audioOutput) { | ||||||
|  | 	//OsxData * od = (OsxData *)audioOutput->data; | ||||||
|  |  | ||||||
|  | 	audioOutput->open = 1; | ||||||
|  |  | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static int osx_play(AudioOutput * audioOutput, char * playChunk, int size) { | ||||||
|  | 	//OsxData * od = (OsxData *)audioOutput->data; | ||||||
|  |  | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | AudioOutputPlugin osxPlugin =  | ||||||
|  | { | ||||||
|  | 	"osx", | ||||||
|  | 	NULL, | ||||||
|  | 	osx_initDriver, | ||||||
|  | 	osx_finishDriver, | ||||||
|  | 	osx_openDevice, | ||||||
|  | 	osx_play, | ||||||
|  | 	osx_dropBufferedAudio, | ||||||
|  | 	osx_closeDevice, | ||||||
|  | 	NULL /* sendMetadataFunc */ | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #else | ||||||
|  |  | ||||||
|  | #include <stdio.h> | ||||||
|  |  | ||||||
|  | AudioOutputPlugin osxPlugin =  | ||||||
|  | { | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL, | ||||||
|  | 	NULL | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif | ||||||
		Reference in New Issue
	
	Block a user
	 Warren Dukes
					Warren Dukes