From: Johnny P. <ele...@us...> - 2004-04-23 14:36:09
|
Update of /cvsroot/xpanda/Panda/Drivers/MACOSX/UDP In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20977/UDP Modified Files: main.cpp udpaudio.h Added Files: compile_linux.txt Log Message: fix Index: udpaudio.h =================================================================== RCS file: /cvsroot/xpanda/Panda/Drivers/MACOSX/UDP/udpaudio.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** udpaudio.h 15 Feb 2004 23:37:16 -0000 1.2 --- udpaudio.h 23 Apr 2004 14:36:00 -0000 1.3 *************** *** 1,20 **** /* ! udpaudio.h ! Copyright © Johnny Petrantoni 2004 ! This library is free software; you can redistribute it and modify it under ! the terms of the GNU Library General Public License as published by the ! Free Software Foundation version 2 of the License, or any later version. ! This library 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 Library General Public License ! for more details. ! You should have received a copy of the GNU Library General Public License ! along with this library; if not, write to the Free Software ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ --- 1,21 ---- /* ! udpaudio.h ! Copyright (c) Johnny Petrantoni 2004. ! 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ *************** *** 34,37 **** #ifdef __cplusplus ! } ! #endif \ No newline at end of file --- 35,39 ---- #ifdef __cplusplus ! }; ! #endif ! Index: main.cpp =================================================================== RCS file: /cvsroot/xpanda/Panda/Drivers/MACOSX/UDP/main.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** main.cpp 15 Feb 2004 23:37:16 -0000 1.2 --- main.cpp 23 Apr 2004 14:36:00 -0000 1.3 *************** *** 8,96 **** main.cpp - main file. ! under the terms of the Artistic License : ! ! The Artistic License ! ! Preamble ! ! The intent of this document is to state the conditions under which a Package may be copied, ! such that the Copyright Holder maintains some semblance of artistic control over the development of the package, ! while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, ! plus the right to make reasonable modifications. ! ! Definitions: ! ! "Package" refers to the collection of files distributed by the Copyright Holder, ! and derivatives of that collection of files created through textual modification. ! ! "Standard Version" refers to such a Package if it has not been modified, ! or has been modified in accordance with the wishes of the Copyright Holder. ! ! "Copyright Holder" is whoever is named in the copyright or copyrights for the package. ! ! "You" is you, if you're thinking about copying or distributing this Package. ! ! "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, ! time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, ! but only to the computing community at large as a market that must bear the fee.) ! ! "Freely Available" means that no fee is charged for the item itself, ! though there may be fees involved in handling the item. ! It also means that recipients of the item may redistribute it under the same conditions they received it. ! ! 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, ! provided that you duplicate all of the original copyright notices and associated disclaimers. ! ! 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. ! A Package modified in such a way shall still be considered the Standard Version. ! ! 3. You may otherwise modify your copy of this Package in any way, ! provided that you insert a prominent notice in each changed file stating how and when you changed that file, ! and provided that you do at least ONE of the following: ! ! a) place your modifications in the Public Domain or otherwise make them Freely Available, ! such as by posting said modifications to Usenet or an equivalent medium, ! or placing the modifications on a major archive site such as ftp.uu.net, ! or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. ! ! b) use the modified Package only within your corporation or organization. ! ! c) rename any non-standard executables so the names do not conflict with standard executables, ! which must also be provided, and provide a separate manual page for each non-standard executable ! that clearly documents how it differs from the Standard Version. ! ! d) make other distribution arrangements with the Copyright Holder. ! ! 4. You may distribute the programs of this Package in object code or executable form, ! provided that you do at least ONE of the following: ! ! a) distribute a Standard Version of the executables and library files, ! together with instructions (in the manual page or equivalent) on where to get the Standard Version. ! ! b) accompany the distribution with the machine-readable source of the Package with your modifications. ! ! c) accompany any non-standard executables with their corresponding Standard Version executables, ! giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), ! together with instructions on where to get the Standard Version. ! ! d) make other distribution arrangements with the Copyright Holder. ! ! 5. You may charge a reasonable copying fee for any distribution of this Package. ! You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. ! However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of ! a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. ! ! 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically ! fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. ! ! 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. ! ! 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. ! 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, ! INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! The End. */ --- 8,33 ---- main.cpp - main file. ! 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., 675 Mass Ave, Cambridge, MA 02139, USA. ! ! elementicaotici - by Johnny (Giovanni) Petrantoni, ITALY - Rome. ! e-mail: jo...@la... ! ! */ + /* + some part of this code is derived from the Jack audio server. + (c) Copyright (C) 2001 Paul Davis and Grame. */ *************** *** 103,106 **** --- 40,57 ---- #include "cycles.h" #include <stdio.h> + #include <unistd.h> + #include <inttypes.h> + #include <stdlib.h> + #include <sys/types.h> + #include <sys/time.h> + #include <limits.h> + #ifndef FALSE + #define FALSE 0 + #endif + #ifndef TRUE + #define TRUE 1 + #endif + #include <malloc.h> + #include <string.h> #else #include "pThreadUtilities.h" *************** *** 124,129 **** #ifdef __LINUX__ uint64_t cycle; ! uint64_t = _time_ratio; ! uint64_t = last_wait_ust; #else double cycle; --- 75,80 ---- #ifdef __LINUX__ uint64_t cycle; ! uint64_t _time_ratio; ! uint64_t last_wait_ust; #else double cycle; *************** *** 136,140 **** #ifdef __LINUX__ ! int setThreadPriority(int priority) { pthread_attr_t *attributes = 0; --- 87,91 ---- #ifdef __LINUX__ ! extern "C" int setThreadPriority(int priority) { pthread_attr_t *attributes = 0; *************** *** 166,171 **** } ! uint64_t ! jack_get_mhz (void) { FILE *f = fopen("/proc/cpuinfo", "r"); --- 117,121 ---- } ! extern "C" uint64_t jack_get_mhz (void) { FILE *f = fopen("/proc/cpuinfo", "r"); *************** *** 190,195 **** #if defined(__powerpc__) ret = sscanf(buf, "clock\t: %" SCNu64 "MHz", &mhz); ! #elif defined( __i386__ ) || defined (__hppa__) || defined (__ia64__) || \ ! defined(__x86_64__) ret = sscanf(buf, "cpu MHz : %" SCNu64, &mhz); #elif defined( __sparc__ ) --- 140,144 ---- #if defined(__powerpc__) ret = sscanf(buf, "clock\t: %" SCNu64 "MHz", &mhz); ! #elif defined( __i386__ ) || defined (__hppa__) || defined (__ia64__) || defined(__x86_64__) ret = sscanf(buf, "cpu MHz : %" SCNu64, &mhz); #elif defined( __sparc__ ) *************** *** 213,217 **** ! void renderWait(MyData *x) { #ifdef __LINUX__ uint64_t microsecs = get_cycles() / x->_time_ratio; --- 162,166 ---- ! extern "C" void renderWait(MyData *x) { #ifdef __LINUX__ uint64_t microsecs = get_cycles() / x->_time_ratio; *************** *** 227,231 **** } ! void * Render(void *x) { MyData *d = (MyData*)x; #ifdef __LINUX__ --- 176,180 ---- } ! extern "C" void * Render(void *x) { MyData *d = (MyData*)x; #ifdef __LINUX__ *************** *** 357,364 **** #ifdef __LINUX__ ! x->cycle = (uint64_t) (((float) x->bufferSize) / x->sampleRate) * 1000000.0f; x->_time_ratio = jack_get_mhz (); #else ! x->cycle = (((float) x->bufferSize) / x->sampleRate) * 1000000.0f; mach_timebase_info_data_t info; mach_timebase_info(&info); --- 306,313 ---- #ifdef __LINUX__ ! x->cycle = (uint64_t) floor((((float) x->bufferSize) / x->sampleRate) * 1000000.0f); x->_time_ratio = jack_get_mhz (); #else ! x->cycle = floor((((float) x->bufferSize) / x->sampleRate) * 1000000.0f); mach_timebase_info_data_t info; mach_timebase_info(&info); --- NEW FILE: compile_linux.txt --- gcc -shared -lPanda -lstdc++ -D__LINUX__=1 -D__i386__=1 main.cpp libudpaudio.a -o UDP.so |