From 92c79edb264da35ab7f7b7839507833572409abe Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 22 Sep 2014 23:05:15 +0200 Subject: [PATCH] Moved the "pulseaudio" plug-in to the DeforaOS Integration project With this change, DeforaOS Phone no longer depends on Pulseaudio. --- Makefile | 1 - src/plugins/Makefile | 19 +---- src/plugins/project.conf | 12 +-- src/plugins/pulseaudio.c | 163 --------------------------------------- 4 files changed, 4 insertions(+), 191 deletions(-) delete mode 100644 src/plugins/pulseaudio.c diff --git a/Makefile b/Makefile index 63586c7..8124650 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,6 @@ dist: $(PACKAGE)-$(VERSION)/src/plugins/panel.c \ $(PACKAGE)-$(VERSION)/src/plugins/password.c \ $(PACKAGE)-$(VERSION)/src/plugins/profiles.c \ - $(PACKAGE)-$(VERSION)/src/plugins/pulseaudio.c \ $(PACKAGE)-$(VERSION)/src/plugins/smscrypt.c \ $(PACKAGE)-$(VERSION)/src/plugins/systray.c \ $(PACKAGE)-$(VERSION)/src/plugins/template.c \ diff --git a/src/plugins/Makefile b/src/plugins/Makefile index 7272cb7..1635e49 100644 --- a/src/plugins/Makefile +++ b/src/plugins/Makefile @@ -1,5 +1,5 @@ SUBDIRS = 16x16 24x24 32x32 48x48 -TARGETS = blacklist.so debug.so engineering.so gprs.so gps.so locker.so n900.so notify.so openmoko.so oss.so panel.so password.so profiles.so pulseaudio.so smscrypt.so systray.so template.so ussd.so video.so +TARGETS = blacklist.so debug.so engineering.so gprs.so gps.so locker.so n900.so notify.so openmoko.so oss.so panel.so password.so profiles.so smscrypt.so systray.so template.so ussd.so video.so PREFIX = /usr/local DESTDIR = LIBDIR = $(PREFIX)/lib @@ -113,13 +113,6 @@ profiles_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) profiles.so: $(profiles_OBJS) $(CCSHARED) -o profiles.so $(profiles_OBJS) $(profiles_LDFLAGS) -pulseaudio_OBJS = pulseaudio.o -pulseaudio_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libpulse` -pulseaudio_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libpulse` - -pulseaudio.so: $(pulseaudio_OBJS) - $(CCSHARED) -o pulseaudio.so $(pulseaudio_OBJS) $(pulseaudio_LDFLAGS) - smscrypt_OBJS = smscrypt.o smscrypt_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) smscrypt_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) @@ -194,9 +187,6 @@ password.o: password.c ../../include/Phone.h profiles.o: profiles.c ../../include/Phone.h $(CC) $(profiles_CFLAGS) -c profiles.c -pulseaudio.o: pulseaudio.c ../../include/Phone.h ../../config.h - $(CC) $(pulseaudio_CFLAGS) -c pulseaudio.c - smscrypt.o: smscrypt.c ../../include/Phone.h $(CC) $(smscrypt_CFLAGS) -c smscrypt.c @@ -214,11 +204,11 @@ video.o: video.c ../../include/Phone.h clean: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) clean) || exit; done - $(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(gps_OBJS) $(locker_OBJS) $(n900_OBJS) $(notify_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(password_OBJS) $(profiles_OBJS) $(pulseaudio_OBJS) $(smscrypt_OBJS) $(systray_OBJS) $(template_OBJS) $(ussd_OBJS) $(video_OBJS) + $(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(gps_OBJS) $(locker_OBJS) $(n900_OBJS) $(notify_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(password_OBJS) $(profiles_OBJS) $(smscrypt_OBJS) $(systray_OBJS) $(template_OBJS) $(ussd_OBJS) $(video_OBJS) distclean: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) distclean) || exit; done - $(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(gps_OBJS) $(locker_OBJS) $(n900_OBJS) $(notify_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(password_OBJS) $(profiles_OBJS) $(pulseaudio_OBJS) $(smscrypt_OBJS) $(systray_OBJS) $(template_OBJS) $(ussd_OBJS) $(video_OBJS) + $(RM) -- $(blacklist_OBJS) $(debug_OBJS) $(engineering_OBJS) $(gprs_OBJS) $(gps_OBJS) $(locker_OBJS) $(n900_OBJS) $(notify_OBJS) $(openmoko_OBJS) $(oss_OBJS) $(panel_OBJS) $(password_OBJS) $(profiles_OBJS) $(smscrypt_OBJS) $(systray_OBJS) $(template_OBJS) $(ussd_OBJS) $(video_OBJS) $(RM) -- $(TARGETS) install: $(TARGETS) @@ -250,8 +240,6 @@ install: $(TARGETS) $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(INSTALL) -m 0644 profiles.so $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins - $(INSTALL) -m 0644 pulseaudio.so $(DESTDIR)$(LIBDIR)/Phone/plugins/pulseaudio.so - $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(INSTALL) -m 0644 smscrypt.so $(DESTDIR)$(LIBDIR)/Phone/plugins/smscrypt.so $(MKDIR) $(DESTDIR)$(LIBDIR)/Phone/plugins $(INSTALL) -m 0644 systray.so $(DESTDIR)$(LIBDIR)/Phone/plugins/systray.so @@ -273,7 +261,6 @@ uninstall: $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/panel.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/password.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/profiles.so - $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/pulseaudio.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/smscrypt.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/systray.so $(RM) -- $(DESTDIR)$(LIBDIR)/Phone/plugins/ussd.so diff --git a/src/plugins/project.conf b/src/plugins/project.conf index 7c7c339..90bc7fa 100644 --- a/src/plugins/project.conf +++ b/src/plugins/project.conf @@ -1,5 +1,5 @@ subdirs=16x16,24x24,32x32,48x48 -targets=blacklist,debug,engineering,gprs,gps,locker,n900,notify,openmoko,oss,panel,password,profiles,pulseaudio,smscrypt,systray,template,ussd,video +targets=blacklist,debug,engineering,gprs,gps,locker,n900,notify,openmoko,oss,panel,password,profiles,smscrypt,systray,template,ussd,video cppflags_force=-I ../../include cppflags= cflags_force=-W `pkg-config --cflags libSystem gtk+-2.0` @@ -117,16 +117,6 @@ install=$(LIBDIR)/Phone/plugins [profiles.c] depends=../../include/Phone.h -[pulseaudio] -type=plugin -sources=pulseaudio.c -cflags=`pkg-config --cflags libpulse` -ldflags=`pkg-config --libs libpulse` -install=$(LIBDIR)/Phone/plugins - -[pulseaudio.c] -depends=../../include/Phone.h,../../config.h - [smscrypt] type=plugin sources=smscrypt.c diff --git a/src/plugins/pulseaudio.c b/src/plugins/pulseaudio.c deleted file mode 100644 index d8986a9..0000000 --- a/src/plugins/pulseaudio.c +++ /dev/null @@ -1,163 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 2013 Pierre Pronchery */ -/* This file is part of DeforaOS Desktop Phone */ -/* 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, version 3 of the License. - * - * 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, see . */ -/* TODO: - * - optionally loop the audio sample until told to stop - * - implement setting the volume (for headset/loudspeaker/audio...) */ - - - -#include -#include -#include -#include -#include -#include -#include -#include "Phone.h" -#include "../../config.h" -#define max(a, b) ((a) > (b) ? (a) : (b)) - - -/* Pulseaudio */ -/* private */ -/* types */ -typedef struct _PhonePlugin -{ - PhonePluginHelper * helper; - - guint source; - - pa_threaded_mainloop * pam; - pa_context * pac; - pa_operation * pao; -} Pulseaudio; - -/* prototypes */ -/* plug-in */ -static Pulseaudio * _pa_init(PhonePluginHelper * helper); -static void _pa_destroy(Pulseaudio * pa); -static int _pa_event(Pulseaudio * pa, PhoneEvent * event); - -/* useful */ -static void _pa_play(Pulseaudio * pa, char const * sound); - - -/* public */ -/* variables */ -PhonePluginDefinition plugin = -{ - "Pulseaudio", - "system-config-users", - NULL, - _pa_init, - _pa_destroy, - _pa_event, - NULL -}; - - -/* private */ -/* functions */ -/* pa_init */ -static Pulseaudio * _pa_init(PhonePluginHelper * helper) -{ - Pulseaudio * pa; - pa_mainloop_api * mapi = NULL; - -#ifdef DEBUG - fprintf(stderr, "DEBUG: %s()\n", __func__); -#endif - if((pa = object_new(sizeof(*pa))) == NULL) - return NULL; - pa->helper = helper; - pa->source = 0; - pa->pam = pa_threaded_mainloop_new(); - pa->pac = NULL; - pa->pao = NULL; - if(pa->pam == NULL) - { - _pa_destroy(pa); - error_set_code(1, "%s", "Could not initialize PulseAudio"); - return NULL; - } - mapi = pa_threaded_mainloop_get_api(pa->pam); - /* XXX update the context name */ - if((pa->pac = pa_context_new(mapi, PACKAGE)) == NULL) - { - _pa_destroy(pa); - error_set_code(1, "%s", "Could not initialize PulseAudio"); - return NULL; - } - pa_context_connect(pa->pac, NULL, 0, NULL); - pa_threaded_mainloop_start(pa->pam); - return pa; -} - - -/* pa_destroy */ -static void _pa_destroy(Pulseaudio * pa) -{ -#ifdef DEBUG - fprintf(stderr, "DEBUG: %s()\n", __func__); -#endif - if(pa->source != 0) - g_source_remove(pa->source); - if(pa->pao != NULL) - pa_operation_cancel(pa->pao); - if(pa->pac != NULL) - pa_context_unref(pa->pac); - pa_threaded_mainloop_free(pa->pam); - object_delete(pa); -} - - -/* pa_event */ -static int _event_modem_event(Pulseaudio * pa, ModemEvent * event); - -static int _pa_event(Pulseaudio * pa, PhoneEvent * event) -{ - switch(event->type) - { - case PHONE_EVENT_TYPE_AUDIO_PLAY: - _pa_play(pa, event->audio_play.sample); - break; - case PHONE_EVENT_TYPE_AUDIO_STOP: - _pa_play(pa, NULL); - break; - default: /* not relevant */ - break; - } - return 0; -} - - -/* pa_play */ -static void _pa_play(Pulseaudio * pa, char const * sample) -{ -#ifdef DEBUG - fprintf(stderr, "DEBUG: %s(\"%s\")\n", __func__, sample); -#endif - if(sample == NULL) - { - /* cancel the current sample */ - if(pa->pao != NULL) - pa_operation_cancel(pa->pao); - pa->pao = NULL; - } - else if(pa->pao == NULL) - /* FIXME apply the proper volume */ - pa->pao = pa_context_play_sample(pa->pac, sample, NULL, - PA_VOLUME_NORM, NULL, NULL); -}