Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 305107 Details for
Bug 386909
media-libs/libshairport: new package (used by xbmc + --enable-airtunes)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
01-libshairport-1.2.0.20310-add_ao.patch
01-libshairport-1.2.0.20310-add_ao.patch (text/plain), 9.11 KB, created by
hal
on 2012-03-13 01:45:35 UTC
(
hide
)
Description:
01-libshairport-1.2.0.20310-add_ao.patch
Filename:
MIME Type:
Creator:
hal
Created:
2012-03-13 01:45:35 UTC
Size:
9.11 KB
patch
obsolete
>diff -uP libshairport-1.2.0.20310_lib/src/ao.h ../../../../../libshairport-1.2.0.20310_lib/src/ao.h >--- src/ao.h 1970-01-01 01:00:00.000000000 +0100 >+++ src/ao.h 2011-09-25 20:36:36.000000000 +0200 >@@ -0,0 +1,156 @@ >+/* >+ * >+ * ao.h >+ * >+ * Original Copyright (C) Aaron Holtzman - May 1999 >+ * Modifications Copyright (C) Stan Seibert - July 2000, July 2001 >+ * More Modifications Copyright (C) Jack Moffitt - October 2000 >+ * >+ * This file is part of libao, a cross-platform audio outputlibrary. See >+ * README for a history of this source code. >+ * >+ * libao 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, or (at your option) >+ * any later version. >+ * >+ * libao 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 GNU Make; see the file COPYING. If not, write to >+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. >+ * >+ */ >+#ifndef __AO_H__ >+#define __AO_H__ >+ >+#ifdef __cplusplus >+extern "C" >+{ >+#endif /* __cplusplus */ >+ >+#include <stdio.h> >+#include <stdlib.h> >+#include <stdint.h> >+#include <errno.h> >+ >+/* --- Constants ---*/ >+ >+#define AO_TYPE_LIVE 1 >+#define AO_TYPE_FILE 2 >+ >+ >+#define AO_ENODRIVER 1 >+#define AO_ENOTFILE 2 >+#define AO_ENOTLIVE 3 >+#define AO_EBADOPTION 4 >+#define AO_EOPENDEVICE 5 >+#define AO_EOPENFILE 6 >+#define AO_EFILEEXISTS 7 >+#define AO_EBADFORMAT 8 >+ >+#define AO_EFAIL 100 >+ >+ >+#define AO_FMT_LITTLE 1 >+#define AO_FMT_BIG 2 >+#define AO_FMT_NATIVE 4 >+ >+/* --- Structures --- */ >+ >+typedef struct ao_info { >+ int type; /* live output or file output? */ >+ char *name; /* full name of driver */ >+ char *short_name; /* short name of driver */ >+ char *author; /* driver author */ >+ char *comment; /* driver comment */ >+ int preferred_byte_format; >+ int priority; >+ char **options; >+ int option_count; >+} ao_info; >+ >+typedef struct ao_functions ao_functions; >+typedef struct ao_device ao_device; >+ >+typedef struct ao_sample_format { >+ int bits; /* bits per sample */ >+ int rate; /* samples per second (in a single channel) */ >+ int channels; /* number of audio channels */ >+ int byte_format; /* Byte ordering in sample, see constants below */ >+ char *matrix; /* input channel location/ordering */ >+} ao_sample_format; >+ >+typedef struct ao_option { >+ char *key; >+ char *value; >+ struct ao_option *next; >+} ao_option; >+ >+#if defined(AO_BUILDING_LIBAO) >+#include "ao_private.h" >+#endif >+ >+/* --- Functions --- */ >+ >+/* library setup/teardown */ >+void ao_initialize(void); >+void ao_shutdown(void); >+ >+/* device setup/playback/teardown */ >+int ao_append_global_option(const char *key, >+ const char *value); >+int ao_append_option(ao_option **options, >+ const char *key, >+ const char *value); >+void ao_free_options(ao_option *options); >+ >+char* ao_get_option(ao_option *options, const char* key); >+ >+ao_device* ao_open_live(int driver_id, >+ ao_sample_format *format, >+ ao_option *option); >+ao_device* ao_open_file(int driver_id, >+ const char *filename, >+ int overwrite, >+ ao_sample_format *format, >+ ao_option *option); >+ >+int ao_play(ao_device *device, >+ char *output_samples, >+ uint32_t num_bytes); >+int ao_close(ao_device *device); >+ >+/* driver information */ >+int ao_driver_id(const char *short_name); >+int ao_default_driver_id(void); >+ao_info *ao_driver_info(int driver_id); >+ao_info **ao_driver_info_list(int *driver_count); >+char *ao_file_extension(int driver_id); >+ >+/* miscellaneous */ >+int ao_is_big_endian(void); >+ >+ >+#ifdef __cplusplus >+} >+#endif /* __cplusplus */ >+ >+#endif /* __AO_H__ */ >+ >+extern struct AudioOutput g_ao; >+struct AudioOutput >+ { >+ void (*ao_initialize)(void); >+ int (*ao_play)(ao_device *, char *, uint32_t); >+ int (*ao_default_driver_id)(void); >+ ao_device* (*ao_open_live)( int, ao_sample_format *, ao_option *); >+ int (*ao_close)(ao_device *); >+ /* -- Device Setup/Playback/Teardown -- */ >+ int (*ao_append_option)(ao_option **, const char *, const char *); >+ void (*ao_free_options)(ao_option *); >+ char* (*ao_get_option)(ao_option *, const char* ); >+ }; >diff -uP libshairport-1.2.0.20310_lib/src/hairtunes.c ../../../../../libshairport-1.2.0.20310_lib/src/hairtunes.c >--- src/hairtunes.c 2011-09-23 21:55:48.000000000 +0200 >+++ src/hairtunes.c 2011-09-25 20:37:49.000000000 +0200 >@@ -25,7 +25,7 @@ > */ > > #define XBMC >-//#defined HAS_AO >+#define HAS_AO > > #include <stdio.h> > #include <stdlib.h> >@@ -45,7 +45,7 @@ > #include <sys/signal.h> > #include <fcntl.h> > #ifdef HAS_AO >-#include <ao/ao.h> >+#include "ao.h" > #endif > > #ifdef FANCY_RESAMPLING >@@ -881,7 +881,7 @@ > } > #ifdef HAS_AO > } else { >- ao_play(dev, (char *)outbuf, play_samples*4); >+ g_ao.ao_play(dev, (char *)outbuf, play_samples*4); > #endif > } > } >@@ -906,7 +906,7 @@ > ao_device *dev; > > void* init_ao() { >- ao_initialize(); >+ g_ao.ao_initialize(); > > int driver; > #ifndef XBMC >@@ -921,7 +921,7 @@ > #endif > { > // otherwise choose the default >- driver = ao_default_driver_id(); >+ driver = g_ao.ao_default_driver_id(); > } > > ao_sample_format fmt; >@@ -944,9 +944,9 @@ > } > #endif > >- ao_append_option(&ao_opts, "name", "Streaming..."); >+ g_ao.ao_append_option(&ao_opts, "name", "Streaming..."); > >- dev = ao_open_live(driver, &fmt, ao_opts); >+ dev = g_ao.ao_open_live(driver, &fmt, ao_opts); > if (dev == NULL) { > die("Could not open ao device"); > } >@@ -985,7 +985,7 @@ > audio_running = 0; > pthread_join(audio_thread, NULL); > #ifdef HAS_AO >- ao_close(dev); >+ g_ao.ao_close(dev); > #endif > } > >diff -uP libshairport-1.2.0.20310_lib/src/shairport.c ../../../../../libshairport-1.2.0.20310_lib/src/shairport.c >--- src/shairport.c 2011-08-21 01:57:56.000000000 +0200 >+++ src/shairport.c 2011-09-25 20:44:40.000000000 +0200 >@@ -92,6 +92,14 @@ > static char tPassword[56] = ""; > static char tHWID[HWID_SIZE] = {0,51,52,53,54,55}; > >+#ifdef XBMC >+struct AudioOutput g_ao; >+void shairport_set_ao(struct AudioOutput *ao) >+{ >+ g_ao=*ao; >+} >+#endif >+ > #ifndef XBMC > int main(int argc, char **argv) > #else >diff -uP libshairport-1.2.0.20310_lib/src/shairport.h ../../../../../libshairport-1.2.0.20310_lib/src/shairport.h >--- src/shairport.h 2011-08-21 01:58:11.000000000 +0200 >+++ src/shairport.h 2011-09-25 20:36:43.000000000 +0200 >@@ -11,6 +11,7 @@ > #include <regex.h> > #include <sys/types.h> > #include <regex.h> >+#include "ao.h" > > > #define HWID_SIZE 6 >@@ -62,9 +63,11 @@ > void shairport_exit(void); > int shairport_loop(void); > int shairport_is_running(void); >+void shairport_set_ao(struct AudioOutput *ao); > > #ifdef __cplusplus > } > #endif /* __cplusplus */ > > #endif >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 386909
:
289661
|
305103
|
305105
|
305107
|
305109
|
305111
|
305113
|
305115
|
305117
|
305119
|
305121
|
314475
|
314477
|
314479
|
314481
|
314547
|
314549
|
314551
|
314553
|
314569
|
314923
|
339194
|
339196
|
339570
|
339574
|
339576
|
339620
|
339622
|
339686
|
339694