| @@ -23,6 +23,10 @@ if [ "$TRAVIS_OS_NAME" == "osx" ]; then | |||||
| if [ "${CC}" == "gcc-8" ]; then | if [ "${CC}" == "gcc-8" ]; then | ||||
| brew install gcc@8 | brew install gcc@8 | ||||
| fi | fi | ||||
| # force installation of gcc-9 if required | |||||
| if [ "${CC}" == "gcc-9" ]; then | |||||
| brew install gcc@9 | |||||
| fi | |||||
| fi | fi | ||||
| if [ "$TRAVIS_OS_NAME" == "linux" ]; then | if [ "$TRAVIS_OS_NAME" == "linux" ]; then | ||||
| @@ -34,7 +38,6 @@ if [ "$TRAVIS_OS_NAME" == "linux" ]; then | |||||
| libsndfile-dev \ | libsndfile-dev \ | ||||
| libasound2-dev \ | libasound2-dev \ | ||||
| libdb-dev \ | libdb-dev \ | ||||
| systemd-services \ | |||||
| systemd \ | systemd \ | ||||
| libsystemd-dev \ | libsystemd-dev \ | ||||
| libpam-systemd \ | libpam-systemd \ | ||||
| @@ -73,10 +76,26 @@ if [ "$TRAVIS_OS_NAME" == "linux" ]; then | |||||
| if [ "${CC}" == "gcc-8" ]; then | if [ "${CC}" == "gcc-8" ]; then | ||||
| sudo apt-get install gcc-8 g++-8 | sudo apt-get install gcc-8 g++-8 | ||||
| fi | fi | ||||
| # force installation of gcc-9 if required | |||||
| if [ "${CC}" == "gcc-9" ]; then | |||||
| sudo apt-get install gcc-9 g++-9 | |||||
| fi | |||||
| # force installation of clang-3.5 if required | |||||
| if [ "${CC}" == "clang-3.5" ]; then | |||||
| sudo apt-get install clang-3.5 | |||||
| fi | |||||
| # force installation of clang-3.8 if required | # force installation of clang-3.8 if required | ||||
| if [ "${CC}" == "clang-3.8" ]; then | if [ "${CC}" == "clang-3.8" ]; then | ||||
| sudo apt-get install clang-3.8 | sudo apt-get install clang-3.8 | ||||
| fi | fi | ||||
| # force installation of clang-6.0 if required | |||||
| if [ "${CC}" == "clang-6.0" ]; then | |||||
| sudo apt-get install clang-6.0 | |||||
| fi | |||||
| # force installation of clang-8 if required | |||||
| if [ "${CC}" == "clang-8" ]; then | |||||
| sudo apt-get install clang-8 | |||||
| fi | |||||
| fi | fi | ||||
| exit 0 | exit 0 | ||||
| @@ -1,8 +1,16 @@ | |||||
| build/ | build/ | ||||
| man/*.1 | man/*.1 | ||||
| .lock* | .lock* | ||||
| .stamp_* | |||||
| .DS_Store | |||||
| __pycache__ | __pycache__ | ||||
| *.pyc | *.pyc | ||||
| *.pkg | |||||
| android/.server/ | android/.server/ | ||||
| android/.client/ | android/.client/ | ||||
| codeBlocks | codeBlocks | ||||
| # macos release files | |||||
| macos/package.xml | |||||
| macos/package-welcome.txt | |||||
| @@ -4,6 +4,18 @@ sudo: required | |||||
| matrix: | matrix: | ||||
| include: | include: | ||||
| # linux with gcc 9 | |||||
| - os: linux | |||||
| addons: | |||||
| apt: | |||||
| sources: | |||||
| - ubuntu-toolchain-r-test | |||||
| install: | |||||
| - gcc-9 | |||||
| dist: bionic | |||||
| env: | |||||
| - MATRIX_EVAL="CC=gcc-9 CXX=g++-9" | |||||
| compiler: gcc | |||||
| # linux with gcc 8 | # linux with gcc 8 | ||||
| - os: linux | - os: linux | ||||
| addons: | addons: | ||||
| @@ -12,7 +24,7 @@ matrix: | |||||
| - ubuntu-toolchain-r-test | - ubuntu-toolchain-r-test | ||||
| install: | install: | ||||
| - gcc-8 | - gcc-8 | ||||
| dist: xenial | |||||
| dist: bionic | |||||
| env: | env: | ||||
| - MATRIX_EVAL="CC=gcc-8 CXX=g++-8" | - MATRIX_EVAL="CC=gcc-8 CXX=g++-8" | ||||
| compiler: gcc | compiler: gcc | ||||
| @@ -24,7 +36,7 @@ matrix: | |||||
| - ubuntu-toolchain-r-test | - ubuntu-toolchain-r-test | ||||
| install: | install: | ||||
| - gcc-7 | - gcc-7 | ||||
| dist: xenial | |||||
| dist: bionic | |||||
| env: | env: | ||||
| - MATRIX_EVAL="CC=gcc-7 CXX=g++-7" | - MATRIX_EVAL="CC=gcc-7 CXX=g++-7" | ||||
| compiler: gcc | compiler: gcc | ||||
| @@ -36,17 +48,45 @@ matrix: | |||||
| - ubuntu-toolchain-r-test | - ubuntu-toolchain-r-test | ||||
| install: | install: | ||||
| - gcc-6 | - gcc-6 | ||||
| dist: xenial | |||||
| dist: bionic | |||||
| env: | env: | ||||
| - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" | - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" | ||||
| compiler: gcc | compiler: gcc | ||||
| # linux with gcc default (4.8) | |||||
| # linux with gcc 5 | |||||
| - os: linux | - os: linux | ||||
| dist: xenial | |||||
| dist: bionic | |||||
| env: | |||||
| - MATRIX_EVAL="CC=gcc CXX=g++" | |||||
| compiler: gcc | compiler: gcc | ||||
| # linux with clang default (3.5) | |||||
| # linux with gcc 4 | |||||
| - os: linux | - os: linux | ||||
| dist: xenial | dist: xenial | ||||
| env: | |||||
| - MATRIX_EVAL="CC=gcc CXX=g++" | |||||
| compiler: gcc | |||||
| # linux with clang 8 | |||||
| - os: linux | |||||
| addons: | |||||
| apt: | |||||
| sources: | |||||
| - ubuntu-toolchain-r-test | |||||
| install: | |||||
| - clang-8 | |||||
| dist: bionic | |||||
| env: | |||||
| - MATRIX_EVAL="CC=clang-8 CXX=clang++-8" | |||||
| compiler: clang | |||||
| # linux with clang 6 | |||||
| - os: linux | |||||
| addons: | |||||
| apt: | |||||
| sources: | |||||
| - ubuntu-toolchain-r-test | |||||
| install: | |||||
| - clang-6.0 | |||||
| dist: bionic | |||||
| env: | |||||
| - MATRIX_EVAL="CC=clang-6.0 CXX=clang++-6.0" | |||||
| compiler: clang | compiler: clang | ||||
| # linux with clang 3.8 | # linux with clang 3.8 | ||||
| - os: linux | - os: linux | ||||
| @@ -60,31 +100,31 @@ matrix: | |||||
| env: | env: | ||||
| - MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8" | - MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8" | ||||
| compiler: clang | compiler: clang | ||||
| # osx with xcode8.3/clang | |||||
| - os: osx | |||||
| osx_image: xcode8.3 | |||||
| compiler: clang | |||||
| # osx with xcode9.2/clang | |||||
| - os: osx | |||||
| osx_image: xcode9.2 | |||||
| compiler: clang | |||||
| # osx with xcode10.0/clang | |||||
| - os: osx | |||||
| osx_image: xcode10 | |||||
| compiler: clang | |||||
| # osx with xcode10.1/clang | |||||
| - os: osx | |||||
| osx_image: xcode10.1 | |||||
| compiler: clang | |||||
| # osx with xcode/clang (default) | |||||
| - os: osx | |||||
| compiler: clang | |||||
| ## osx with xcode8.3/clang | |||||
| #- os: osx | |||||
| #osx_image: xcode8.3 | |||||
| #compiler: clang | |||||
| ## osx with xcode9.2/clang | |||||
| #- os: osx | |||||
| #osx_image: xcode9.2 | |||||
| #compiler: clang | |||||
| ## osx with xcode10.0/clang | |||||
| #- os: osx | |||||
| #osx_image: xcode10 | |||||
| #compiler: clang | |||||
| ## osx with xcode10.1/clang | |||||
| #- os: osx | |||||
| #osx_image: xcode10.1 | |||||
| #compiler: clang | |||||
| ## osx with xcode/clang (default) | |||||
| #- os: osx | |||||
| #compiler: clang | |||||
| before_install: | before_install: | ||||
| - eval "${MATRIX_EVAL}" | - eval "${MATRIX_EVAL}" | ||||
| # uninstalling oclint, as it's preinstalled and conflicts with all versions of gcc | # uninstalling oclint, as it's preinstalled and conflicts with all versions of gcc | ||||
| - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | ||||
| brew cask uninstall oclint || true | |||||
| brew cask uninstall oclint || true; | |||||
| brew update; | brew update; | ||||
| fi | fi | ||||
| - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi | ||||
| @@ -99,12 +139,13 @@ script: | |||||
| - if [ "$TRAVIS_OS_NAME" == "linux" ]; then | - if [ "$TRAVIS_OS_NAME" == "linux" ]; then | ||||
| ./waf configure --prefix=/usr --alsa --classic --dbus --systemd-unit; | ./waf configure --prefix=/usr --alsa --classic --dbus --systemd-unit; | ||||
| ./waf -v build; | ./waf -v build; | ||||
| sudo ./waf -v install; | |||||
| fi | fi | ||||
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then | - if [ "$TRAVIS_OS_NAME" == "osx" ]; then | ||||
| CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf configure; | |||||
| CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf -v build; | |||||
| CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" python2 ./waf configure; | |||||
| CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" python2 ./waf -v build; | |||||
| sudo python2 ./waf -v install; | |||||
| fi | fi | ||||
| - sudo ./waf -v install | |||||
| # run very basic tests | # run very basic tests | ||||
| - sudo .ci/test_run.sh | - sudo .ci/test_run.sh | ||||
| @@ -0,0 +1,280 @@ | |||||
| GNU GENERAL PUBLIC LICENSE | |||||
| Version 2, June 1991 | |||||
| Copyright (C) 1989, 1991 Free Software Foundation, Inc., | |||||
| 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| Everyone is permitted to copy and distribute verbatim copies | |||||
| of this license document, but changing it is not allowed. | |||||
| Preamble | |||||
| The licenses for most software are designed to take away your | |||||
| freedom to share and change it. By contrast, the GNU General Public | |||||
| License is intended to guarantee your freedom to share and change free | |||||
| software--to make sure the software is free for all its users. This | |||||
| General Public License applies to most of the Free Software | |||||
| Foundation's software and to any other program whose authors commit to | |||||
| using it. (Some other Free Software Foundation software is covered by | |||||
| the GNU Lesser General Public License instead.) You can apply it to | |||||
| your programs, too. | |||||
| When we speak of free software, we are referring to freedom, not | |||||
| price. Our General Public Licenses are designed to make sure that you | |||||
| have the freedom to distribute copies of free software (and charge for | |||||
| this service if you wish), that you receive source code or can get it | |||||
| if you want it, that you can change the software or use pieces of it | |||||
| in new free programs; and that you know you can do these things. | |||||
| To protect your rights, we need to make restrictions that forbid | |||||
| anyone to deny you these rights or to ask you to surrender the rights. | |||||
| These restrictions translate to certain responsibilities for you if you | |||||
| distribute copies of the software, or if you modify it. | |||||
| For example, if you distribute copies of such a program, whether | |||||
| gratis or for a fee, you must give the recipients all the rights that | |||||
| you have. You must make sure that they, too, receive or can get the | |||||
| source code. And you must show them these terms so they know their | |||||
| rights. | |||||
| We protect your rights with two steps: (1) copyright the software, and | |||||
| (2) offer you this license which gives you legal permission to copy, | |||||
| distribute and/or modify the software. | |||||
| Also, for each author's protection and ours, we want to make certain | |||||
| that everyone understands that there is no warranty for this free | |||||
| software. If the software is modified by someone else and passed on, we | |||||
| want its recipients to know that what they have is not the original, so | |||||
| that any problems introduced by others will not reflect on the original | |||||
| authors' reputations. | |||||
| Finally, any free program is threatened constantly by software | |||||
| patents. We wish to avoid the danger that redistributors of a free | |||||
| program will individually obtain patent licenses, in effect making the | |||||
| program proprietary. To prevent this, we have made it clear that any | |||||
| patent must be licensed for everyone's free use or not licensed at all. | |||||
| The precise terms and conditions for copying, distribution and | |||||
| modification follow. | |||||
| GNU GENERAL PUBLIC LICENSE | |||||
| TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |||||
| 0. This License applies to any program or other work which contains | |||||
| a notice placed by the copyright holder saying it may be distributed | |||||
| under the terms of this General Public License. The "Program", below, | |||||
| refers to any such program or work, and a "work based on the Program" | |||||
| means either the Program or any derivative work under copyright law: | |||||
| that is to say, a work containing the Program or a portion of it, | |||||
| either verbatim or with modifications and/or translated into another | |||||
| language. (Hereinafter, translation is included without limitation in | |||||
| the term "modification".) Each licensee is addressed as "you". | |||||
| Activities other than copying, distribution and modification are not | |||||
| covered by this License; they are outside its scope. The act of | |||||
| running the Program is not restricted, and the output from the Program | |||||
| is covered only if its contents constitute a work based on the | |||||
| Program (independent of having been made by running the Program). | |||||
| Whether that is true depends on what the Program does. | |||||
| 1. You may copy and distribute verbatim copies of the Program's | |||||
| source code as you receive it, in any medium, provided that you | |||||
| conspicuously and appropriately publish on each copy an appropriate | |||||
| copyright notice and disclaimer of warranty; keep intact all the | |||||
| notices that refer to this License and to the absence of any warranty; | |||||
| and give any other recipients of the Program a copy of this License | |||||
| along with the Program. | |||||
| You may charge a fee for the physical act of transferring a copy, and | |||||
| you may at your option offer warranty protection in exchange for a fee. | |||||
| 2. You may modify your copy or copies of the Program or any portion | |||||
| of it, thus forming a work based on the Program, and copy and | |||||
| distribute such modifications or work under the terms of Section 1 | |||||
| above, provided that you also meet all of these conditions: | |||||
| a) You must cause the modified files to carry prominent notices | |||||
| stating that you changed the files and the date of any change. | |||||
| b) You must cause any work that you distribute or publish, that in | |||||
| whole or in part contains or is derived from the Program or any | |||||
| part thereof, to be licensed as a whole at no charge to all third | |||||
| parties under the terms of this License. | |||||
| c) If the modified program normally reads commands interactively | |||||
| when run, you must cause it, when started running for such | |||||
| interactive use in the most ordinary way, to print or display an | |||||
| announcement including an appropriate copyright notice and a | |||||
| notice that there is no warranty (or else, saying that you provide | |||||
| a warranty) and that users may redistribute the program under | |||||
| these conditions, and telling the user how to view a copy of this | |||||
| License. (Exception: if the Program itself is interactive but | |||||
| does not normally print such an announcement, your work based on | |||||
| the Program is not required to print an announcement.) | |||||
| These requirements apply to the modified work as a whole. If | |||||
| identifiable sections of that work are not derived from the Program, | |||||
| and can be reasonably considered independent and separate works in | |||||
| themselves, then this License, and its terms, do not apply to those | |||||
| sections when you distribute them as separate works. But when you | |||||
| distribute the same sections as part of a whole which is a work based | |||||
| on the Program, the distribution of the whole must be on the terms of | |||||
| this License, whose permissions for other licensees extend to the | |||||
| entire whole, and thus to each and every part regardless of who wrote it. | |||||
| Thus, it is not the intent of this section to claim rights or contest | |||||
| your rights to work written entirely by you; rather, the intent is to | |||||
| exercise the right to control the distribution of derivative or | |||||
| collective works based on the Program. | |||||
| In addition, mere aggregation of another work not based on the Program | |||||
| with the Program (or with a work based on the Program) on a volume of | |||||
| a storage or distribution medium does not bring the other work under | |||||
| the scope of this License. | |||||
| 3. You may copy and distribute the Program (or a work based on it, | |||||
| under Section 2) in object code or executable form under the terms of | |||||
| Sections 1 and 2 above provided that you also do one of the following: | |||||
| a) Accompany it with the complete corresponding machine-readable | |||||
| source code, which must be distributed under the terms of Sections | |||||
| 1 and 2 above on a medium customarily used for software interchange; or, | |||||
| b) Accompany it with a written offer, valid for at least three | |||||
| years, to give any third party, for a charge no more than your | |||||
| cost of physically performing source distribution, a complete | |||||
| machine-readable copy of the corresponding source code, to be | |||||
| distributed under the terms of Sections 1 and 2 above on a medium | |||||
| customarily used for software interchange; or, | |||||
| c) Accompany it with the information you received as to the offer | |||||
| to distribute corresponding source code. (This alternative is | |||||
| allowed only for noncommercial distribution and only if you | |||||
| received the program in object code or executable form with such | |||||
| an offer, in accord with Subsection b above.) | |||||
| The source code for a work means the preferred form of the work for | |||||
| making modifications to it. For an executable work, complete source | |||||
| code means all the source code for all modules it contains, plus any | |||||
| associated interface definition files, plus the scripts used to | |||||
| control compilation and installation of the executable. However, as a | |||||
| special exception, the source code distributed need not include | |||||
| anything that is normally distributed (in either source or binary | |||||
| form) with the major components (compiler, kernel, and so on) of the | |||||
| operating system on which the executable runs, unless that component | |||||
| itself accompanies the executable. | |||||
| If distribution of executable or object code is made by offering | |||||
| access to copy from a designated place, then offering equivalent | |||||
| access to copy the source code from the same place counts as | |||||
| distribution of the source code, even though third parties are not | |||||
| compelled to copy the source along with the object code. | |||||
| 4. You may not copy, modify, sublicense, or distribute the Program | |||||
| except as expressly provided under this License. Any attempt | |||||
| otherwise to copy, modify, sublicense or distribute the Program is | |||||
| void, and will automatically terminate your rights under this License. | |||||
| However, parties who have received copies, or rights, from you under | |||||
| this License will not have their licenses terminated so long as such | |||||
| parties remain in full compliance. | |||||
| 5. You are not required to accept this License, since you have not | |||||
| signed it. However, nothing else grants you permission to modify or | |||||
| distribute the Program or its derivative works. These actions are | |||||
| prohibited by law if you do not accept this License. Therefore, by | |||||
| modifying or distributing the Program (or any work based on the | |||||
| Program), you indicate your acceptance of this License to do so, and | |||||
| all its terms and conditions for copying, distributing or modifying | |||||
| the Program or works based on it. | |||||
| 6. Each time you redistribute the Program (or any work based on the | |||||
| Program), the recipient automatically receives a license from the | |||||
| original licensor to copy, distribute or modify the Program subject to | |||||
| these terms and conditions. You may not impose any further | |||||
| restrictions on the recipients' exercise of the rights granted herein. | |||||
| You are not responsible for enforcing compliance by third parties to | |||||
| this License. | |||||
| 7. If, as a consequence of a court judgment or allegation of patent | |||||
| infringement or for any other reason (not limited to patent issues), | |||||
| conditions are imposed on you (whether by court order, agreement or | |||||
| otherwise) that contradict the conditions of this License, they do not | |||||
| excuse you from the conditions of this License. If you cannot | |||||
| distribute so as to satisfy simultaneously your obligations under this | |||||
| License and any other pertinent obligations, then as a consequence you | |||||
| may not distribute the Program at all. For example, if a patent | |||||
| license would not permit royalty-free redistribution of the Program by | |||||
| all those who receive copies directly or indirectly through you, then | |||||
| the only way you could satisfy both it and this License would be to | |||||
| refrain entirely from distribution of the Program. | |||||
| If any portion of this section is held invalid or unenforceable under | |||||
| any particular circumstance, the balance of the section is intended to | |||||
| apply and the section as a whole is intended to apply in other | |||||
| circumstances. | |||||
| It is not the purpose of this section to induce you to infringe any | |||||
| patents or other property right claims or to contest validity of any | |||||
| such claims; this section has the sole purpose of protecting the | |||||
| integrity of the free software distribution system, which is | |||||
| implemented by public license practices. Many people have made | |||||
| generous contributions to the wide range of software distributed | |||||
| through that system in reliance on consistent application of that | |||||
| system; it is up to the author/donor to decide if he or she is willing | |||||
| to distribute software through any other system and a licensee cannot | |||||
| impose that choice. | |||||
| This section is intended to make thoroughly clear what is believed to | |||||
| be a consequence of the rest of this License. | |||||
| 8. If the distribution and/or use of the Program is restricted in | |||||
| certain countries either by patents or by copyrighted interfaces, the | |||||
| original copyright holder who places the Program under this License | |||||
| may add an explicit geographical distribution limitation excluding | |||||
| those countries, so that distribution is permitted only in or among | |||||
| countries not thus excluded. In such case, this License incorporates | |||||
| the limitation as if written in the body of this License. | |||||
| 9. The Free Software Foundation may publish revised and/or new versions | |||||
| of the General Public License from time to time. Such new versions will | |||||
| be similar in spirit to the present version, but may differ in detail to | |||||
| address new problems or concerns. | |||||
| Each version is given a distinguishing version number. If the Program | |||||
| specifies a version number of this License which applies to it and "any | |||||
| later version", you have the option of following the terms and conditions | |||||
| either of that version or of any later version published by the Free | |||||
| Software Foundation. If the Program does not specify a version number of | |||||
| this License, you may choose any version ever published by the Free Software | |||||
| Foundation. | |||||
| 10. If you wish to incorporate parts of the Program into other free | |||||
| programs whose distribution conditions are different, write to the author | |||||
| to ask for permission. For software which is copyrighted by the Free | |||||
| Software Foundation, write to the Free Software Foundation; we sometimes | |||||
| make exceptions for this. Our decision will be guided by the two goals | |||||
| of preserving the free status of all derivatives of our free software and | |||||
| of promoting the sharing and reuse of software generally. | |||||
| NO WARRANTY | |||||
| 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | |||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | |||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | |||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |||||
| REPAIR OR CORRECTION. | |||||
| 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |||||
| POSSIBILITY OF SUCH DAMAGES. | |||||
| END OF TERMS AND CONDITIONS | |||||
| @@ -1,4 +1,4 @@ | |||||
| `JACK2 <http://jackaudio.org/>`_ | |||||
| `JACK2 <https://jackaudio.org/>`_ | |||||
| ################################ | ################################ | ||||
| .. image:: https://travis-ci.org/jackaudio/jack2.svg?branch=master | .. image:: https://travis-ci.org/jackaudio/jack2.svg?branch=master | ||||
| @@ -34,3 +34,5 @@ and robust system. | |||||
| mode usually result in fewer (less audible) audio glitches in a loaded | mode usually result in fewer (less audible) audio glitches in a loaded | ||||
| system. | system. | ||||
| For further information, see the JACK `homepage <https://jackaudio.org/>`_ and `wiki <https://github.com/jackaudio/jackaudio.github.com/wiki>`_. There are also the #jack and #lad chat channels on `freenode IRC <https://freenode.net>`_. | |||||
| @@ -32,41 +32,47 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include <dirent.h> | #include <dirent.h> | ||||
| #endif | #endif | ||||
| #ifdef WIN32 | |||||
| typedef wchar_t file_char_t; | |||||
| #else | |||||
| typedef char file_char_t; | |||||
| #endif | |||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| static char* locate_dll_driver_dir() | |||||
| static wchar_t* locate_dll_driver_dir() | |||||
| { | { | ||||
| HMODULE libjack_handle = NULL; | HMODULE libjack_handle = NULL; | ||||
| GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, | |||||
| reinterpret_cast<LPCSTR>(locate_dll_driver_dir), &libjack_handle); | |||||
| GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, | |||||
| reinterpret_cast<LPCWSTR>(locate_dll_driver_dir), &libjack_handle); | |||||
| // For WIN32 ADDON_DIR is defined in JackConstants.h as relative path | // For WIN32 ADDON_DIR is defined in JackConstants.h as relative path | ||||
| char driver_dir_storage[512]; | |||||
| if (3 < GetModuleFileName(libjack_handle, driver_dir_storage, 512)) { | |||||
| char *p = strrchr(driver_dir_storage, '\\'); | |||||
| wchar_t driver_dir_storage[512]; | |||||
| if (3 < GetModuleFileNameW(libjack_handle, driver_dir_storage, 512)) { | |||||
| wchar_t *p = wcsrchr(driver_dir_storage, L'\\'); | |||||
| if (p && (p != driver_dir_storage)) { | if (p && (p != driver_dir_storage)) { | ||||
| *p = 0; | *p = 0; | ||||
| } | |||||
| jack_info("Drivers/internals found in : %s", driver_dir_storage); | |||||
| strcat(driver_dir_storage, "/"); | |||||
| strcat(driver_dir_storage, ADDON_DIR); | |||||
| return strdup(driver_dir_storage); | |||||
| } | |||||
| jack_info("Drivers/internals found in : %S", driver_dir_storage); | |||||
| wcscat(driver_dir_storage, L"\\"); | |||||
| wcscat(driver_dir_storage, ADDON_DIRW); | |||||
| return wcsdup(driver_dir_storage); | |||||
| } else { | } else { | ||||
| jack_error("Cannot get JACK dll directory : %d", GetLastError()); | jack_error("Cannot get JACK dll directory : %d", GetLastError()); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| } | } | ||||
| static char* locate_driver_dir(HANDLE& file, WIN32_FIND_DATA& filedata) | |||||
| static wchar_t* locate_driver_dir(HANDLE& file, WIN32_FIND_DATAW& filedata) | |||||
| { | { | ||||
| // Search drivers/internals iin the same folder of "libjackserver.dll" | // Search drivers/internals iin the same folder of "libjackserver.dll" | ||||
| char* driver_dir = locate_dll_driver_dir(); | |||||
| char dll_filename[512]; | |||||
| snprintf(dll_filename, sizeof(dll_filename), "%s/*.dll", driver_dir); | |||||
| file = (HANDLE)FindFirstFile(dll_filename, &filedata); | |||||
| wchar_t* driver_dir = locate_dll_driver_dir(); | |||||
| wchar_t dll_filename[512]; | |||||
| swprintf(dll_filename, 510, L"%S/*.dll", driver_dir); | |||||
| file = (HANDLE)FindFirstFileW(dll_filename, &filedata); | |||||
| if (file == INVALID_HANDLE_VALUE) { | if (file == INVALID_HANDLE_VALUE) { | ||||
| jack_error("Drivers not found "); | |||||
| jack_error("Drivers not found in \"%S\": \"%S\"", driver_dir, dll_filename); | |||||
| free(driver_dir); | free(driver_dir); | ||||
| return NULL; | return NULL; | ||||
| } else { | } else { | ||||
| @@ -412,16 +418,20 @@ jack_driver_desc_t* jack_find_driver_descriptor (JSList * drivers, const char* n | |||||
| return desc; | return desc; | ||||
| } | } | ||||
| static void* check_symbol(const char* sofile, const char* symbol, const char* driver_dir, void** res_dllhandle = NULL) | |||||
| static void* check_symbol(const file_char_t* sofile, const char* symbol, const file_char_t* driver_dir, void** res_dllhandle = NULL) | |||||
| { | { | ||||
| void* dlhandle; | void* dlhandle; | ||||
| void* res = NULL; | void* res = NULL; | ||||
| char filename[1024]; | |||||
| sprintf(filename, "%s/%s", driver_dir, sofile); | |||||
| file_char_t filename[1024]; | |||||
| #ifdef WIN32 | |||||
| swprintf(filename, 1022, L"%S/%S", driver_dir, sofile); | |||||
| #else | |||||
| snprintf(filename, 1022, "%s/%s", driver_dir, sofile); | |||||
| #endif | |||||
| if ((dlhandle = LoadDriverModule(filename)) == NULL) { | if ((dlhandle = LoadDriverModule(filename)) == NULL) { | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| jack_error ("Could not open component .dll '%s': %ld", filename, GetLastError()); | |||||
| jack_error ("Could not open component .dll '%S': %ld", filename, GetLastError()); | |||||
| #else | #else | ||||
| jack_error ("Could not open component .so '%s': %s", filename, dlerror()); | jack_error ("Could not open component .so '%s': %s", filename, dlerror()); | ||||
| #endif | #endif | ||||
| @@ -437,25 +447,30 @@ static void* check_symbol(const char* sofile, const char* symbol, const char* dr | |||||
| return res; | return res; | ||||
| } | } | ||||
| static jack_driver_desc_t* jack_get_descriptor (JSList* drivers, const char* sofile, const char* symbol, const char* driver_dir) | |||||
| static jack_driver_desc_t* jack_get_descriptor (JSList* drivers, const file_char_t* sofile, const char* symbol, const file_char_t* driver_dir) | |||||
| { | { | ||||
| jack_driver_desc_t* descriptor = NULL; | jack_driver_desc_t* descriptor = NULL; | ||||
| jack_driver_desc_t* other_descriptor; | jack_driver_desc_t* other_descriptor; | ||||
| JackDriverDescFunction so_get_descriptor = NULL; | JackDriverDescFunction so_get_descriptor = NULL; | ||||
| char filename[1024]; | |||||
| file_char_t filename[1024]; | |||||
| JSList* node; | JSList* node; | ||||
| void* dlhandle = NULL; | void* dlhandle = NULL; | ||||
| sprintf(filename, "%s/%s", driver_dir, sofile); | |||||
| #ifdef WIN32 | |||||
| swprintf(filename, 1022, L"%S/%S", driver_dir, sofile); | |||||
| #else | |||||
| snprintf(filename, 1022, "%s/%s", driver_dir, sofile); | |||||
| #endif | |||||
| so_get_descriptor = (JackDriverDescFunction)check_symbol(sofile, symbol, driver_dir, &dlhandle); | so_get_descriptor = (JackDriverDescFunction)check_symbol(sofile, symbol, driver_dir, &dlhandle); | ||||
| if (so_get_descriptor == NULL) { | if (so_get_descriptor == NULL) { | ||||
| jack_error("jack_get_descriptor : dll %s is not a driver", sofile); | |||||
| jack_error("jack_get_descriptor : dll %S is not a driver", sofile); | |||||
| goto error; | goto error; | ||||
| } | } | ||||
| if ((descriptor = so_get_descriptor ()) == NULL) { | if ((descriptor = so_get_descriptor ()) == NULL) { | ||||
| jack_error("Driver from '%s' returned NULL descriptor", filename); | |||||
| jack_error("Driver from '%S' returned NULL descriptor", filename); | |||||
| goto error; | goto error; | ||||
| } | } | ||||
| @@ -463,15 +478,19 @@ static jack_driver_desc_t* jack_get_descriptor (JSList* drivers, const char* sof | |||||
| for (node = drivers; node; node = jack_slist_next (node)) { | for (node = drivers; node; node = jack_slist_next (node)) { | ||||
| other_descriptor = (jack_driver_desc_t*) node->data; | other_descriptor = (jack_driver_desc_t*) node->data; | ||||
| if (strcmp(descriptor->name, other_descriptor->name) == 0) { | if (strcmp(descriptor->name, other_descriptor->name) == 0) { | ||||
| jack_error("The drivers in '%s' and '%s' both have the name '%s'; using the first", | |||||
| jack_error("The drivers in '%S' and '%S' both have the name '%S'; using the first", | |||||
| other_descriptor->file, filename, other_descriptor->name); | other_descriptor->file, filename, other_descriptor->name); | ||||
| /* FIXME: delete the descriptor */ | /* FIXME: delete the descriptor */ | ||||
| goto error; | goto error; | ||||
| } | } | ||||
| } | } | ||||
| #ifdef WIN32 | |||||
| wcsncpy(descriptor->file, filename, JACK_PATH_MAX); | |||||
| #else | |||||
| strncpy(descriptor->file, filename, JACK_PATH_MAX); | strncpy(descriptor->file, filename, JACK_PATH_MAX); | ||||
| #endif | |||||
| error: | error: | ||||
| if (dlhandle) { | if (dlhandle) { | ||||
| UnloadDriverModule(dlhandle); | UnloadDriverModule(dlhandle); | ||||
| @@ -484,13 +503,13 @@ error: | |||||
| JSList * jack_drivers_load(JSList * drivers) | JSList * jack_drivers_load(JSList * drivers) | ||||
| { | { | ||||
| //char dll_filename[512]; | //char dll_filename[512]; | ||||
| WIN32_FIND_DATA filedata; | |||||
| WIN32_FIND_DATAW filedata; | |||||
| HANDLE file; | HANDLE file; | ||||
| const char* ptr = NULL; | |||||
| const wchar_t* ptr = NULL; | |||||
| JSList* driver_list = NULL; | JSList* driver_list = NULL; | ||||
| jack_driver_desc_t* desc = NULL; | jack_driver_desc_t* desc = NULL; | ||||
| char* driver_dir = locate_driver_dir(file, filedata); | |||||
| wchar_t* driver_dir = locate_driver_dir(file, filedata); | |||||
| if (!driver_dir) { | if (!driver_dir) { | ||||
| jack_error("Driver folder not found"); | jack_error("Driver folder not found"); | ||||
| goto error; | goto error; | ||||
| @@ -498,17 +517,17 @@ JSList * jack_drivers_load(JSList * drivers) | |||||
| do { | do { | ||||
| /* check the filename is of the right format */ | /* check the filename is of the right format */ | ||||
| if (strncmp ("jack_", filedata.cFileName, 5) != 0) { | |||||
| if (wcsncmp (L"jack_", filedata.cFileName, 5) != 0) { | |||||
| continue; | continue; | ||||
| } | } | ||||
| ptr = strrchr (filedata.cFileName, '.'); | |||||
| ptr = wcsrchr (filedata.cFileName, L'.'); | |||||
| if (!ptr) { | if (!ptr) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| ptr++; | ptr++; | ||||
| if (strncmp ("dll", ptr, 3) != 0) { | |||||
| if (wcsncmp (L"dll", ptr, 3) != 0) { | |||||
| continue; | continue; | ||||
| } | } | ||||
| @@ -521,13 +540,13 @@ JSList * jack_drivers_load(JSList * drivers) | |||||
| if (desc) { | if (desc) { | ||||
| driver_list = jack_slist_append (driver_list, desc); | driver_list = jack_slist_append (driver_list, desc); | ||||
| } else { | } else { | ||||
| jack_error ("jack_get_descriptor returns null for \'%s\'", filedata.cFileName); | |||||
| jack_error ("jack_get_descriptor returns null for \'%S\'", filedata.cFileName); | |||||
| } | } | ||||
| } while (FindNextFile(file, &filedata)); | |||||
| } while (FindNextFileW(file, &filedata)); | |||||
| if (!driver_list) { | if (!driver_list) { | ||||
| jack_error ("Could not find any drivers in %s!", driver_dir); | |||||
| jack_error ("Could not find any drivers in %S!", driver_dir); | |||||
| } | } | ||||
| error: | error: | ||||
| @@ -613,13 +632,13 @@ JSList* jack_drivers_load (JSList * drivers) | |||||
| JSList* jack_internals_load(JSList * internals) | JSList* jack_internals_load(JSList * internals) | ||||
| { | { | ||||
| ///char dll_filename[512]; | ///char dll_filename[512]; | ||||
| WIN32_FIND_DATA filedata; | |||||
| WIN32_FIND_DATAW filedata; | |||||
| HANDLE file; | HANDLE file; | ||||
| const char* ptr = NULL; | |||||
| const wchar_t* ptr = NULL; | |||||
| JSList* driver_list = NULL; | JSList* driver_list = NULL; | ||||
| jack_driver_desc_t* desc; | jack_driver_desc_t* desc; | ||||
| char* driver_dir = locate_driver_dir(file, filedata); | |||||
| wchar_t* driver_dir = locate_driver_dir(file, filedata); | |||||
| if (!driver_dir) { | if (!driver_dir) { | ||||
| jack_error("Driver folder not found"); | jack_error("Driver folder not found"); | ||||
| goto error; | goto error; | ||||
| @@ -627,13 +646,13 @@ JSList* jack_internals_load(JSList * internals) | |||||
| do { | do { | ||||
| ptr = strrchr (filedata.cFileName, '.'); | |||||
| ptr = wcsrchr (filedata.cFileName, L'.'); | |||||
| if (!ptr) { | if (!ptr) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| ptr++; | ptr++; | ||||
| if (strncmp ("dll", ptr, 3) != 0) { | |||||
| if (wcsncmp (L"dll", ptr, 3) != 0) { | |||||
| continue; | continue; | ||||
| } | } | ||||
| @@ -649,7 +668,7 @@ JSList* jack_internals_load(JSList * internals) | |||||
| jack_error ("jack_get_descriptor returns null for \'%s\'", filedata.cFileName); | jack_error ("jack_get_descriptor returns null for \'%s\'", filedata.cFileName); | ||||
| } | } | ||||
| } while (FindNextFile(file, &filedata)); | |||||
| } while (FindNextFileW(file, &filedata)); | |||||
| if (!driver_list) { | if (!driver_list) { | ||||
| jack_error ("Could not find any internals in %s!", driver_dir); | jack_error ("Could not find any internals in %s!", driver_dir); | ||||
| @@ -745,18 +764,26 @@ Jack::JackDriverClientInterface* JackDriverInfo::Open(jack_driver_desc_t* driver | |||||
| if (fHandle == NULL) { | if (fHandle == NULL) { | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| if ((errstr = GetLastError ()) != 0) { | if ((errstr = GetLastError ()) != 0) { | ||||
| jack_error ("Can't load \"%s\": %ld", driver_desc->file, errstr); | |||||
| jack_error ("Can't load \"%S\": %ld", driver_desc->file, errstr); | |||||
| #else | #else | ||||
| if ((errstr = dlerror ()) != 0) { | if ((errstr = dlerror ()) != 0) { | ||||
| jack_error ("Can't load \"%s\": %s", driver_desc->file, errstr); | jack_error ("Can't load \"%s\": %s", driver_desc->file, errstr); | ||||
| #endif | #endif | ||||
| } else { | } else { | ||||
| jack_error ("Error loading driver shared object %s", driver_desc->file); | |||||
| #ifdef WIN32 | |||||
| jack_error ("Error loading driver shared object %S", driver_desc->file); | |||||
| #else | |||||
| jack_error ("Error loading driver shared object %s", driver_desc->file); | |||||
| #endif | |||||
| } | } | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| //jack_error (" --------------------------------- Successfully opened driver \"%S\"\n", driver_desc->file); | |||||
| fInitialize = (driverInitialize)GetDriverProc(fHandle, "driver_initialize"); | fInitialize = (driverInitialize)GetDriverProc(fHandle, "driver_initialize"); | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| @@ -764,7 +791,12 @@ Jack::JackDriverClientInterface* JackDriverInfo::Open(jack_driver_desc_t* driver | |||||
| #else | #else | ||||
| if ((fInitialize == NULL) && (errstr = dlerror ()) != 0) { | if ((fInitialize == NULL) && (errstr = dlerror ()) != 0) { | ||||
| #endif | #endif | ||||
| #ifdef WIN32 | |||||
| jack_error("No initialize function in shared object %S\n", driver_desc->file); | |||||
| #else | |||||
| jack_error("No initialize function in shared object %s\n", driver_desc->file); | jack_error("No initialize function in shared object %s\n", driver_desc->file); | ||||
| #endif | |||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| @@ -34,8 +34,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include "JackChannel.h" | #include "JackChannel.h" | ||||
| #include "JackError.h" | #include "JackError.h" | ||||
| extern const char* JACK_METADATA_HARDWARE; | |||||
| extern const char* JACK_METADATA_PRETTY_NAME; | |||||
| extern const char JACK_METADATA_HARDWARE[]; | |||||
| extern const char JACK_METADATA_PRETTY_NAME[]; | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| @@ -118,6 +118,7 @@ struct SERVER_EXPORT JackEngineControl : public JackShmMem | |||||
| fMaxUsecs = 0; | fMaxUsecs = 0; | ||||
| ResetRollingUsecs(); | ResetRollingUsecs(); | ||||
| strncpy(fServerName, server_name, sizeof(fServerName)); | strncpy(fServerName, server_name, sizeof(fServerName)); | ||||
| fServerName[sizeof(fServerName) - 1] = 0; | |||||
| fCPULoad = 0.f; | fCPULoad = 0.f; | ||||
| fPeriod = 0; | fPeriod = 0; | ||||
| fComputation = 0; | fComputation = 0; | ||||
| @@ -24,7 +24,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| #include <assert.h> | #include <assert.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <algorithm> | #include <algorithm> | ||||
| #ifdef HAVE_TRE_REGEX_H | |||||
| #include <tre/regex.h> | |||||
| #else | |||||
| #include <regex.h> | #include <regex.h> | ||||
| #endif | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| @@ -77,6 +77,7 @@ int JackInternalClient::Open(const char* server_name, const char* name, jack_uui | |||||
| } | } | ||||
| strncpy(fServerName, server_name, sizeof(fServerName)); | strncpy(fServerName, server_name, sizeof(fServerName)); | ||||
| fServerName[sizeof(fServerName) - 1] = 0; | |||||
| // Open server/client direct channel | // Open server/client direct channel | ||||
| char name_res[JACK_CLIENT_NAME_SIZE + 1]; | char name_res[JACK_CLIENT_NAME_SIZE + 1]; | ||||
| @@ -106,6 +106,7 @@ int JackLibClient::Open(const char* server_name, const char* name, jack_uuid_t u | |||||
| } | } | ||||
| strncpy(fServerName, server_name, sizeof(fServerName)); | strncpy(fServerName, server_name, sizeof(fServerName)); | ||||
| fServerName[sizeof(fServerName) - 1] = 0; | |||||
| // Open server/client channel | // Open server/client channel | ||||
| char name_res[JACK_CLIENT_NAME_SIZE+1]; | char name_res[JACK_CLIENT_NAME_SIZE+1]; | ||||
| @@ -28,16 +28,16 @@ | |||||
| #define JACK_METADATA_PREFIX "http://jackaudio.org/metadata/" | #define JACK_METADATA_PREFIX "http://jackaudio.org/metadata/" | ||||
| LIB_EXPORT const char* JACK_METADATA_CONNECTED = JACK_METADATA_PREFIX "connected"; | |||||
| LIB_EXPORT const char* JACK_METADATA_EVENT_TYPES = JACK_METADATA_PREFIX "event-types"; | |||||
| LIB_EXPORT const char* JACK_METADATA_HARDWARE = JACK_METADATA_PREFIX "hardware"; | |||||
| LIB_EXPORT const char* JACK_METADATA_ICON_LARGE = JACK_METADATA_PREFIX "icon-large"; | |||||
| LIB_EXPORT const char* JACK_METADATA_ICON_NAME = JACK_METADATA_PREFIX "icon-name"; | |||||
| LIB_EXPORT const char* JACK_METADATA_ICON_SMALL = JACK_METADATA_PREFIX "icon-small"; | |||||
| LIB_EXPORT const char* JACK_METADATA_ORDER = JACK_METADATA_PREFIX "order"; | |||||
| LIB_EXPORT const char* JACK_METADATA_PORT_GROUP = JACK_METADATA_PREFIX "port-group"; | |||||
| LIB_EXPORT const char* JACK_METADATA_PRETTY_NAME = JACK_METADATA_PREFIX "pretty-name"; | |||||
| LIB_EXPORT const char* JACK_METADATA_SIGNAL_TYPE = JACK_METADATA_PREFIX "signal-type"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_CONNECTED[] = JACK_METADATA_PREFIX "connected"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_EVENT_TYPES[] = JACK_METADATA_PREFIX "event-types"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_HARDWARE[] = JACK_METADATA_PREFIX "hardware"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_ICON_LARGE[] = JACK_METADATA_PREFIX "icon-large"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_ICON_NAME[] = JACK_METADATA_PREFIX "icon-name"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_ICON_SMALL[] = JACK_METADATA_PREFIX "icon-small"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_ORDER[] = JACK_METADATA_PREFIX "order"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_PORT_GROUP[] = JACK_METADATA_PREFIX "port-group"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_PRETTY_NAME[] = JACK_METADATA_PREFIX "pretty-name"; | |||||
| LIB_EXPORT extern const char JACK_METADATA_SIGNAL_TYPE[] = JACK_METADATA_PREFIX "signal-type"; | |||||
| #undef JACK_METADATA_PREFIX | #undef JACK_METADATA_PREFIX | ||||
| namespace Jack | namespace Jack | ||||
| @@ -68,20 +68,20 @@ JackMetadata::~JackMetadata() | |||||
| if (fIsEngine) | if (fIsEngine) | ||||
| { | { | ||||
| // cleanup after libdb, nasty! | // cleanup after libdb, nasty! | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/metadata.db", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/metadata.db", fDBFilesDir); | |||||
| remove (dbpath); | remove (dbpath); | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.001", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.001", fDBFilesDir); | |||||
| remove (dbpath); | remove (dbpath); | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.002", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.002", fDBFilesDir); | |||||
| remove (dbpath); | remove (dbpath); | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.003", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/__db.003", fDBFilesDir); | |||||
| remove (dbpath); | remove (dbpath); | ||||
| // remove our custom dir | // remove our custom dir | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db", fDBFilesDir); | |||||
| rmdir (dbpath); | rmdir (dbpath); | ||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -94,6 +94,16 @@ int JackMetadata::PropertyInit() | |||||
| int ret; | int ret; | ||||
| char dbpath[PATH_MAX + 1]; | char dbpath[PATH_MAX + 1]; | ||||
| #ifdef WIN32 | |||||
| ret = GetTempPathA (PATH_MAX, fDBFilesDir); | |||||
| if ((ret > PATH_MAX) || (ret == 0)) { | |||||
| jack_error ("cannot get path for temp files"); | |||||
| return -1; | |||||
| } | |||||
| #else | |||||
| strncpy (fDBFilesDir, jack_server_dir, PATH_MAX); | |||||
| #endif | |||||
| /* idempotent */ | /* idempotent */ | ||||
| if (fDBenv) { | if (fDBenv) { | ||||
| @@ -105,24 +115,33 @@ int JackMetadata::PropertyInit() | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db", fDBFilesDir); | |||||
| #ifdef WIN32 | |||||
| mkdir (dbpath); | |||||
| #else | |||||
| mkdir (dbpath, S_IRWXU | S_IRWXG); | mkdir (dbpath, S_IRWXU | S_IRWXG); | ||||
| #endif | |||||
| if ((ret = fDBenv->open (fDBenv, dbpath, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL | DB_THREAD, 0)) != 0) { | if ((ret = fDBenv->open (fDBenv, dbpath, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL | DB_THREAD, 0)) != 0) { | ||||
| jack_error ("cannot open DB environment: %s", db_strerror (ret)); | jack_error ("cannot open DB environment: %s", db_strerror (ret)); | ||||
| fDBenv = NULL; | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| if ((ret = db_create (&fDB, fDBenv, 0)) != 0) { | if ((ret = db_create (&fDB, fDBenv, 0)) != 0) { | ||||
| jack_error ("Cannot initialize metadata DB (%s)", db_strerror (ret)); | jack_error ("Cannot initialize metadata DB (%s)", db_strerror (ret)); | ||||
| fDBenv->close (fDBenv, 0); | |||||
| fDBenv = NULL; | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/metadata.db", jack_server_dir); | |||||
| snprintf (dbpath, sizeof(dbpath), "%s/jack_db/metadata.db", fDBFilesDir); | |||||
| if ((ret = fDB->open (fDB, NULL, dbpath, NULL, DB_HASH, DB_CREATE | DB_THREAD, 0666)) != 0) { | if ((ret = fDB->open (fDB, NULL, dbpath, NULL, DB_HASH, DB_CREATE | DB_THREAD, 0666)) != 0) { | ||||
| jack_error ("Cannot open metadata DB at %s: %s", dbpath, db_strerror (ret)); | jack_error ("Cannot open metadata DB at %s: %s", dbpath, db_strerror (ret)); | ||||
| fDB->close (fDB, 0); | fDB->close (fDB, 0); | ||||
| fDB = NULL; | fDB = NULL; | ||||
| fDBenv->close (fDBenv, 0); | |||||
| fDBenv = NULL; | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -24,7 +24,14 @@ | |||||
| #include "config.h" | #include "config.h" | ||||
| #endif | #endif | ||||
| // libdb does not work in 32bit mixed mode | |||||
| #ifdef BUILD_WITH_32_64 | |||||
| #undef HAVE_DB | |||||
| #define HAVE_DB 0 | |||||
| #endif | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include <limits.h> | |||||
| #if HAVE_DB | #if HAVE_DB | ||||
| #include <db.h> | #include <db.h> | ||||
| @@ -82,6 +89,7 @@ class JackMetadata | |||||
| DB* fDB; | DB* fDB; | ||||
| DB_ENV* fDBenv; | DB_ENV* fDBenv; | ||||
| const bool fIsEngine; | const bool fIsEngine; | ||||
| char fDBFilesDir[PATH_MAX + 1]; | |||||
| #endif | #endif | ||||
| int PropertyInit(); | int PropertyInit(); | ||||
| @@ -30,7 +30,7 @@ static const JackPortType* gPortTypes[] = | |||||
| &gMidiPortType, | &gMidiPortType, | ||||
| }; | }; | ||||
| jack_port_type_id_t PORT_TYPES_MAX = sizeof(gPortTypes) / sizeof(gPortTypes[0]); | |||||
| const jack_port_type_id_t PORT_TYPES_MAX = sizeof(gPortTypes) / sizeof(gPortTypes[0]); | |||||
| jack_port_type_id_t GetPortTypeId(const char* port_type) | jack_port_type_id_t GetPortTypeId(const char* port_type) | ||||
| { | { | ||||
| @@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| extern jack_port_type_id_t PORT_TYPES_MAX; | |||||
| extern const jack_port_type_id_t PORT_TYPES_MAX; | |||||
| struct JackPortType | struct JackPortType | ||||
| { | { | ||||
| @@ -26,7 +26,6 @@ namespace Jack | |||||
| static unsigned int fSegmentNum = 0; | static unsigned int fSegmentNum = 0; | ||||
| static jack_shm_info_t gInfo; | static jack_shm_info_t gInfo; | ||||
| size_t JackMem::gSize = 0; | |||||
| JackShmMem::JackShmMem() | JackShmMem::JackShmMem() | ||||
| { | { | ||||
| @@ -39,45 +39,6 @@ void UnlockMemoryImp(void* ptr, size_t size); | |||||
| void LockAllMemory(); | void LockAllMemory(); | ||||
| void UnlockAllMemory(); | void UnlockAllMemory(); | ||||
| class JackMem | |||||
| { | |||||
| private: | |||||
| size_t fSize; | |||||
| static size_t gSize; | |||||
| protected: | |||||
| JackMem(): fSize(gSize) | |||||
| {} | |||||
| ~JackMem() | |||||
| {} | |||||
| public: | |||||
| void* operator new(size_t size) | |||||
| { | |||||
| gSize = size; | |||||
| return calloc(1, size); | |||||
| } | |||||
| void operator delete(void* ptr, size_t size) | |||||
| { | |||||
| free(ptr); | |||||
| } | |||||
| void LockMemory() | |||||
| { | |||||
| LockMemoryImp(this, fSize); | |||||
| } | |||||
| void UnlockMemory() | |||||
| { | |||||
| UnlockMemoryImp(this, fSize); | |||||
| } | |||||
| }; | |||||
| /*! | /*! | ||||
| \brief | \brief | ||||
| @@ -28,6 +28,7 @@ | |||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| #include <process.h> | #include <process.h> | ||||
| #include "JackPlatformPlug_os.h" | |||||
| #endif | #endif | ||||
| @@ -87,12 +88,12 @@ namespace Jack { | |||||
| /* returns the name of the per-user subdirectory of jack_tmpdir */ | /* returns the name of the per-user subdirectory of jack_tmpdir */ | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| char* JackTools::UserDir() | |||||
| const char* JackTools::UserDir() | |||||
| { | { | ||||
| return ""; | return ""; | ||||
| } | } | ||||
| char* JackTools::ServerDir(const char* server_name, char* server_dir) | |||||
| const char* JackTools::ServerDir(const char* server_name, char* server_dir) | |||||
| { | { | ||||
| return ""; | return ""; | ||||
| } | } | ||||
| @@ -105,7 +106,7 @@ namespace Jack { | |||||
| } | } | ||||
| #else | #else | ||||
| char* JackTools::UserDir() | |||||
| const char* JackTools::UserDir() | |||||
| { | { | ||||
| static char user_dir[JACK_PATH_MAX + 1] = ""; | static char user_dir[JACK_PATH_MAX + 1] = ""; | ||||
| @@ -122,7 +123,7 @@ namespace Jack { | |||||
| } | } | ||||
| /* returns the name of the per-server subdirectory of jack_user_dir() */ | /* returns the name of the per-server subdirectory of jack_user_dir() */ | ||||
| char* JackTools::ServerDir(const char* server_name, char* server_dir) | |||||
| const char* JackTools::ServerDir(const char* server_name, char* server_dir) | |||||
| { | { | ||||
| /* format the path name into the suppled server_dir char array, | /* format the path name into the suppled server_dir char array, | ||||
| * assuming that server_dir is at least as large as JACK_PATH_MAX + 1 */ | * assuming that server_dir is at least as large as JACK_PATH_MAX + 1 */ | ||||
| @@ -263,7 +264,7 @@ void PrintLoadError(const char* so_name) | |||||
| lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, | lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, | ||||
| (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)so_name) + 40) * sizeof(TCHAR)); | (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)so_name) + 40) * sizeof(TCHAR)); | ||||
| _snprintf((LPTSTR)lpDisplayBuf, LocalSize(lpDisplayBuf) / sizeof(TCHAR), | _snprintf((LPTSTR)lpDisplayBuf, LocalSize(lpDisplayBuf) / sizeof(TCHAR), | ||||
| TEXT("error loading %s err = %s"), so_name, lpMsgBuf); | |||||
| TEXT("error loading %s err = %s"), so_name, (LPCTSTR)lpMsgBuf); | |||||
| jack_error((LPCTSTR)lpDisplayBuf); | jack_error((LPCTSTR)lpDisplayBuf); | ||||
| @@ -60,8 +60,8 @@ namespace Jack | |||||
| static void KillServer(); | static void KillServer(); | ||||
| static int MkDir(const char* path); | static int MkDir(const char* path); | ||||
| static char* UserDir(); | |||||
| static char* ServerDir(const char* server_name, char* server_dir); | |||||
| static const char* UserDir(); | |||||
| static const char* ServerDir(const char* server_name, char* server_dir); | |||||
| static const char* DefaultServerName(); | static const char* DefaultServerName(); | ||||
| static void CleanupFiles(const char* server_name); | static void CleanupFiles(const char* server_name); | ||||
| static int GetTmpdir(); | static int GetTmpdir(); | ||||
| @@ -133,7 +133,11 @@ typedef struct { | |||||
| char name[JACK_DRIVER_NAME_MAX + 1]; /**< The driver's canonical name */ | char name[JACK_DRIVER_NAME_MAX + 1]; /**< The driver's canonical name */ | ||||
| jack_driver_type_t type; /**< The driver's type */ | jack_driver_type_t type; /**< The driver's type */ | ||||
| char desc[JACK_DRIVER_PARAM_DESC + 1]; /**< The driver's extended description */ | char desc[JACK_DRIVER_PARAM_DESC + 1]; /**< The driver's extended description */ | ||||
| #ifdef WIN32 | |||||
| wchar_t file[JACK_PATH_MAX + 1]; /**< The filename of the driver's shared object file */ | |||||
| #else | |||||
| char file[JACK_PATH_MAX + 1]; /**< The filename of the driver's shared object file */ | char file[JACK_PATH_MAX + 1]; /**< The filename of the driver's shared object file */ | ||||
| #endif | |||||
| uint32_t nparams; /**< The number of parameters the driver has */ | uint32_t nparams; /**< The number of parameters the driver has */ | ||||
| jack_driver_param_desc_t * params; /**< An array of parameter descriptors */ | jack_driver_param_desc_t * params; /**< An array of parameter descriptors */ | ||||
| } | } | ||||
| @@ -229,7 +229,7 @@ int jack_set_property_change_callback (jack_client_t* client, | |||||
| * A value that identifies what the hardware port is connected to (an external | * A value that identifies what the hardware port is connected to (an external | ||||
| * device of some kind). Possible values might be "E-Piano" or "Master 2 Track". | * device of some kind). Possible values might be "E-Piano" or "Master 2 Track". | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_CONNECTED; | |||||
| extern const char JACK_METADATA_CONNECTED[]; | |||||
| /** | /** | ||||
| * The supported event types of an event port. | * The supported event types of an event port. | ||||
| @@ -242,21 +242,21 @@ extern const char* JACK_METADATA_CONNECTED; | |||||
| * status byte will gracefully ignore OSC messages if the user makes an | * status byte will gracefully ignore OSC messages if the user makes an | ||||
| * inappropriate connection. | * inappropriate connection. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_EVENT_TYPES; | |||||
| extern const char JACK_METADATA_EVENT_TYPES[]; | |||||
| /** | /** | ||||
| * A value that should be shown when attempting to identify the | * A value that should be shown when attempting to identify the | ||||
| * specific hardware outputs of a client. Typical values might be | * specific hardware outputs of a client. Typical values might be | ||||
| * "ADAT1", "S/PDIF L" or "MADI 43". | * "ADAT1", "S/PDIF L" or "MADI 43". | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_HARDWARE; | |||||
| extern const char JACK_METADATA_HARDWARE[]; | |||||
| /** | /** | ||||
| * A value with a MIME type of "image/png;base64" that is an encoding of an | * A value with a MIME type of "image/png;base64" that is an encoding of an | ||||
| * NxN (with 32 < N <= 128) image to be used when displaying a visual | * NxN (with 32 < N <= 128) image to be used when displaying a visual | ||||
| * representation of that client or port. | * representation of that client or port. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_ICON_LARGE; | |||||
| extern const char JACK_METADATA_ICON_LARGE[]; | |||||
| /** | /** | ||||
| * The name of the icon for the subject (typically client). | * The name of the icon for the subject (typically client). | ||||
| @@ -265,16 +265,16 @@ extern const char* JACK_METADATA_ICON_LARGE; | |||||
| * themes. Icons should be searched for according to the freedesktop Icon | * themes. Icons should be searched for according to the freedesktop Icon | ||||
| * | * | ||||
| * Theme Specification: | * Theme Specification: | ||||
| * http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html | |||||
| * https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html | |||||
| */ | */ | ||||
| extern const char* JACK_METADATA_ICON_NAME; | |||||
| extern const char JACK_METADATA_ICON_NAME[]; | |||||
| /** | /** | ||||
| * A value with a MIME type of "image/png;base64" that is an encoding of an | * A value with a MIME type of "image/png;base64" that is an encoding of an | ||||
| * NxN (with N <=32) image to be used when displaying a visual representation | * NxN (with N <=32) image to be used when displaying a visual representation | ||||
| * of that client or port. | * of that client or port. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_ICON_SMALL; | |||||
| extern const char JACK_METADATA_ICON_SMALL[]; | |||||
| /** | /** | ||||
| * Order for a port. | * Order for a port. | ||||
| @@ -287,18 +287,18 @@ extern const char* JACK_METADATA_ICON_SMALL; | |||||
| * | * | ||||
| * It is encouraged to use http://www.w3.org/2001/XMLSchema#int as the type. | * It is encouraged to use http://www.w3.org/2001/XMLSchema#int as the type. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_ORDER; | |||||
| extern const char JACK_METADATA_ORDER[]; | |||||
| /** | /** | ||||
| * A value that should be shown to the user when displaying a port to the user, | * A value that should be shown to the user when displaying a port to the user, | ||||
| * unless the user has explicitly overridden that a request to show the port | * unless the user has explicitly overridden that a request to show the port | ||||
| * name, or some other key value. | * name, or some other key value. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_PRETTY_NAME; | |||||
| extern const char JACK_METADATA_PRETTY_NAME[]; | |||||
| /** | /** | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_PORT_GROUP; | |||||
| extern const char JACK_METADATA_PORT_GROUP[]; | |||||
| /** | /** | ||||
| * The type of an audio signal. | * The type of an audio signal. | ||||
| @@ -309,7 +309,7 @@ extern const char* JACK_METADATA_PORT_GROUP; | |||||
| * their output directly to speakers. In particular, CV ports are not | * their output directly to speakers. In particular, CV ports are not | ||||
| * necessarily periodic at all and may have very high DC. | * necessarily periodic at all and may have very high DC. | ||||
| */ | */ | ||||
| extern const char* JACK_METADATA_SIGNAL_TYPE; | |||||
| extern const char JACK_METADATA_SIGNAL_TYPE[]; | |||||
| /** | /** | ||||
| * @} | * @} | ||||
| @@ -30,6 +30,10 @@ extern "C" { | |||||
| /** | /** | ||||
| * @defgroup SessionClientFunctions Session API for clients. | * @defgroup SessionClientFunctions Session API for clients. | ||||
| * | |||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| * @{ | * @{ | ||||
| */ | */ | ||||
| @@ -156,6 +160,10 @@ typedef struct _jack_session_event jack_session_event_t; | |||||
| * | * | ||||
| * The client must promptly call jack_session_reply for this event. | * The client must promptly call jack_session_reply for this event. | ||||
| * | * | ||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| * | |||||
| * @param event The event structure. | * @param event The event structure. | ||||
| * @param arg Pointer to a client supplied structure. | * @param arg Pointer to a client supplied structure. | ||||
| */ | */ | ||||
| @@ -170,11 +178,15 @@ typedef void (*JackSessionCallback)(jack_session_event_t *event, | |||||
| * error. if you have a multiclient application its more sensible to create | * error. if you have a multiclient application its more sensible to create | ||||
| * a jack_client with only a session callback set. | * a jack_client with only a session callback set. | ||||
| * | * | ||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| * | |||||
| * @return 0 on success, otherwise a non-zero error code | * @return 0 on success, otherwise a non-zero error code | ||||
| */ | */ | ||||
| int jack_set_session_callback (jack_client_t *client, | int jack_set_session_callback (jack_client_t *client, | ||||
| JackSessionCallback session_callback, | JackSessionCallback session_callback, | ||||
| void *arg) JACK_WEAK_EXPORT; | |||||
| void *arg) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||||
| /** | /** | ||||
| * Reply to a session event. | * Reply to a session event. | ||||
| @@ -183,18 +195,26 @@ int jack_set_session_callback (jack_client_t *client, | |||||
| * different thread. For example, it is possible to push the event through a | * different thread. For example, it is possible to push the event through a | ||||
| * queue and execute the save code from the GUI thread. | * queue and execute the save code from the GUI thread. | ||||
| * | * | ||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| * | |||||
| * @return 0 on success, otherwise a non-zero error code | * @return 0 on success, otherwise a non-zero error code | ||||
| */ | */ | ||||
| int jack_session_reply (jack_client_t *client, | int jack_session_reply (jack_client_t *client, | ||||
| jack_session_event_t *event) JACK_WEAK_EXPORT; | |||||
| jack_session_event_t *event) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||||
| /** | /** | ||||
| * Free memory used by a jack_session_event_t. | * Free memory used by a jack_session_event_t. | ||||
| * | * | ||||
| * This also frees the memory used by the command_line pointer, if its non NULL. | * This also frees the memory used by the command_line pointer, if its non NULL. | ||||
| * | |||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| */ | */ | ||||
| void jack_session_event_free (jack_session_event_t *event) JACK_WEAK_EXPORT; | |||||
| void jack_session_event_free (jack_session_event_t *event) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||||
| /** | /** | ||||
| @@ -238,8 +258,12 @@ jack_session_command_t *jack_session_notify ( | |||||
| /** | /** | ||||
| * Free the memory allocated by a session command. | * Free the memory allocated by a session command. | ||||
| * | |||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| */ | */ | ||||
| void jack_session_commands_free (jack_session_command_t *cmds) JACK_WEAK_EXPORT; | |||||
| void jack_session_commands_free (jack_session_command_t *cmds) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||||
| /** | /** | ||||
| * Reserve a client name and associate it with a UUID. | * Reserve a client name and associate it with a UUID. | ||||
| @@ -258,11 +282,19 @@ jack_reserve_client_name (jack_client_t *client, | |||||
| /** | /** | ||||
| * Find out whether a client has set up a session callback. | * Find out whether a client has set up a session callback. | ||||
| * | * | ||||
| * @deprecated Use of JACK-Session is currently deprecated and unsupported. | |||||
| * JACK developers recommend the use of NSM instead. | |||||
| * See https://github.com/linuxaudio/new-session-manager | |||||
| * | |||||
| * @return 0 when the client has no session callback, 1 when it has one. | * @return 0 when the client has no session callback, 1 when it has one. | ||||
| * -1 on error. | * -1 on error. | ||||
| */ | */ | ||||
| int | int | ||||
| jack_client_has_session_callback (jack_client_t *client, const char *client_name) JACK_WEAK_EXPORT; | |||||
| jack_client_has_session_callback (jack_client_t *client, const char *client_name) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||
| @@ -70,14 +70,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #define __inline__ inline | #define __inline__ inline | ||||
| #if (!defined(int8_t) && !defined(_STDINT_H)) | #if (!defined(int8_t) && !defined(_STDINT_H)) | ||||
| #define __int8_t_defined | #define __int8_t_defined | ||||
| typedef char int8_t; | |||||
| typedef unsigned char uint8_t; | |||||
| typedef short int16_t; | |||||
| typedef unsigned short uint16_t; | |||||
| typedef long int32_t; | |||||
| typedef unsigned long uint32_t; | |||||
| typedef LONGLONG int64_t; | |||||
| typedef ULONGLONG uint64_t; | |||||
| typedef INT8 int8_t; | |||||
| typedef UINT8 uint8_t; | |||||
| typedef INT16 int16_t; | |||||
| typedef UINT16 uint16_t; | |||||
| typedef INT32 int32_t; | |||||
| typedef UINT32 uint32_t; | |||||
| typedef INT64 int64_t; | |||||
| typedef UINT64 uint64_t; | |||||
| #endif | #endif | ||||
| #elif __MINGW32__ /* MINGW */ | #elif __MINGW32__ /* MINGW */ | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| @@ -79,17 +79,17 @@ static int GetPID() | |||||
| } | } | ||||
| #ifdef USE_POSIX_SHM | #ifdef USE_POSIX_SHM | ||||
| static jack_shmtype_t jack_shmtype = shm_POSIX; | |||||
| static const jack_shmtype_t jack_shmtype = shm_POSIX; | |||||
| #elif WIN32 | #elif WIN32 | ||||
| static jack_shmtype_t jack_shmtype = shm_WIN32; | |||||
| static const jack_shmtype_t jack_shmtype = shm_WIN32; | |||||
| #else | #else | ||||
| static jack_shmtype_t jack_shmtype = shm_SYSV; | |||||
| static const jack_shmtype_t jack_shmtype = shm_SYSV; | |||||
| #endif | #endif | ||||
| /* interface-dependent forward declarations */ | /* interface-dependent forward declarations */ | ||||
| static int jack_access_registry (jack_shm_info_t *ri); | static int jack_access_registry (jack_shm_info_t *ri); | ||||
| static int jack_create_registry (jack_shm_info_t *ri); | static int jack_create_registry (jack_shm_info_t *ri); | ||||
| static void jack_remove_shm (jack_shm_id_t *id); | |||||
| static void jack_remove_shm (const jack_shm_id_t id); | |||||
| /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||
| * common interface-independent section | * common interface-independent section | ||||
| @@ -103,12 +103,19 @@ static void jack_remove_shm (jack_shm_id_t *id); | |||||
| */ | */ | ||||
| /* per-process global data for the SHM interfaces */ | /* per-process global data for the SHM interfaces */ | ||||
| #ifdef USE_POSIX_SHM | |||||
| static const jack_shm_id_t registry_id = "/jack-shm-registry"; | |||||
| #elif WIN32 | |||||
| static const jack_shm_id_t registry_id = "jack-shm-registry"; | |||||
| #else | |||||
| static jack_shm_id_t registry_id; /* SHM id for the registry */ | static jack_shm_id_t registry_id; /* SHM id for the registry */ | ||||
| #endif | |||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| static jack_shm_info_t registry_info = {/* SHM info for the registry */ | static jack_shm_info_t registry_info = {/* SHM info for the registry */ | ||||
| JACK_SHM_NULL_INDEX, | JACK_SHM_NULL_INDEX, | ||||
| NULL | |||||
| 0, | |||||
| { NULL } | |||||
| }; | }; | ||||
| #else | #else | ||||
| static jack_shm_info_t registry_info = { /* SHM info for the registry */ | static jack_shm_info_t registry_info = { /* SHM info for the registry */ | ||||
| @@ -120,7 +127,6 @@ static jack_shm_info_t registry_info = { /* SHM info for the registry */ | |||||
| /* pointers to registry header and array */ | /* pointers to registry header and array */ | ||||
| static jack_shm_header_t *jack_shm_header = NULL; | static jack_shm_header_t *jack_shm_header = NULL; | ||||
| static jack_shm_registry_t *jack_shm_registry = NULL; | static jack_shm_registry_t *jack_shm_registry = NULL; | ||||
| static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE+1] = ""; | |||||
| /* jack_shm_lock_registry() serializes updates to the shared memory | /* jack_shm_lock_registry() serializes updates to the shared memory | ||||
| * segment JACK uses to keep track of the SHM segments allocated to | * segment JACK uses to keep track of the SHM segments allocated to | ||||
| @@ -315,16 +321,16 @@ jack_shm_validate_registry () | |||||
| * name, in the interest of portability we use colons instead. | * name, in the interest of portability we use colons instead. | ||||
| */ | */ | ||||
| static void | static void | ||||
| jack_set_server_prefix (const char *server_name) | |||||
| jack_get_server_prefix (const char* const server_name, char* const prefix, const size_t size) | |||||
| { | { | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| char buffer[UNLEN+1]={0}; | char buffer[UNLEN+1]={0}; | ||||
| DWORD len = UNLEN+1; | DWORD len = UNLEN+1; | ||||
| GetUserName(buffer, &len); | GetUserName(buffer, &len); | ||||
| snprintf (jack_shm_server_prefix, sizeof (jack_shm_server_prefix), | |||||
| snprintf (prefix, size, | |||||
| "jack-%s:%s:", buffer, server_name); | "jack-%s:%s:", buffer, server_name); | ||||
| #else | #else | ||||
| snprintf (jack_shm_server_prefix, sizeof (jack_shm_server_prefix), | |||||
| snprintf (prefix, size, | |||||
| "jack-%d:%s:", GetUID(), server_name); | "jack-%d:%s:", GetUID(), server_name); | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -349,7 +355,7 @@ jack_server_initialize_shm (int new_registry) | |||||
| rc = jack_access_registry (®istry_info); | rc = jack_access_registry (®istry_info); | ||||
| if (new_registry) { | if (new_registry) { | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| rc = ENOENT; | rc = ENOENT; | ||||
| } | } | ||||
| @@ -365,7 +371,7 @@ jack_server_initialize_shm (int new_registry) | |||||
| /* Apparently, this registry was created by an older | /* Apparently, this registry was created by an older | ||||
| * JACK version. Delete it so we can try again. */ | * JACK version. Delete it so we can try again. */ | ||||
| jack_release_shm (®istry_info); | jack_release_shm (®istry_info); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| if ((rc = jack_create_registry (®istry_info)) != 0) { | if ((rc = jack_create_registry (®istry_info)) != 0) { | ||||
| jack_error ("incompatible shm registry (%s)", | jack_error ("incompatible shm registry (%s)", | ||||
| strerror (errno)); | strerror (errno)); | ||||
| @@ -394,11 +400,12 @@ int | |||||
| jack_initialize_shm (const char *server_name) | jack_initialize_shm (const char *server_name) | ||||
| { | { | ||||
| int rc; | int rc; | ||||
| char server_prefix[JACK_SERVER_NAME_SIZE+1]; | |||||
| if (jack_shm_header) | if (jack_shm_header) | ||||
| return 0; /* already initialized */ | return 0; /* already initialized */ | ||||
| jack_set_server_prefix (server_name); | |||||
| jack_get_server_prefix (server_name, server_prefix, sizeof(server_prefix)); | |||||
| if (jack_shm_lock_registry () < 0) { | if (jack_shm_lock_registry () < 0) { | ||||
| jack_error ("jack_shm_lock_registry fails..."); | jack_error ("jack_shm_lock_registry fails..."); | ||||
| @@ -429,7 +436,7 @@ jack_destroy_shm (jack_shm_info_t* si) | |||||
| if (si->index == JACK_SHM_NULL_INDEX) | if (si->index == JACK_SHM_NULL_INDEX) | ||||
| return; /* segment not allocated */ | return; /* segment not allocated */ | ||||
| jack_remove_shm (&jack_shm_registry[si->index].id); | |||||
| jack_remove_shm (jack_shm_registry[si->index].id); | |||||
| jack_release_shm_info (si->index); | jack_release_shm_info (si->index); | ||||
| } | } | ||||
| @@ -490,8 +497,9 @@ int | |||||
| jack_register_server (const char *server_name, int new_registry) | jack_register_server (const char *server_name, int new_registry) | ||||
| { | { | ||||
| int i, res = 0; | int i, res = 0; | ||||
| char server_prefix[JACK_SERVER_NAME_SIZE+1]; | |||||
| jack_set_server_prefix (server_name); | |||||
| jack_get_server_prefix (server_name, server_prefix, sizeof(server_prefix)); | |||||
| if (jack_server_initialize_shm (new_registry)) | if (jack_server_initialize_shm (new_registry)) | ||||
| return ENOMEM; | return ENOMEM; | ||||
| @@ -507,8 +515,8 @@ jack_register_server (const char *server_name, int new_registry) | |||||
| for (i = 0; i < MAX_SERVERS; i++) { | for (i = 0; i < MAX_SERVERS; i++) { | ||||
| if (strncmp (jack_shm_header->server[i].name, | if (strncmp (jack_shm_header->server[i].name, | ||||
| jack_shm_server_prefix, | |||||
| JACK_SERVER_NAME_SIZE) != 0) | |||||
| server_prefix, | |||||
| sizeof(server_prefix)) != 0) | |||||
| continue; /* no match */ | continue; /* no match */ | ||||
| if (jack_shm_header->server[i].pid == GetPID()){ | if (jack_shm_header->server[i].pid == GetPID()){ | ||||
| @@ -548,8 +556,8 @@ jack_register_server (const char *server_name, int new_registry) | |||||
| /* claim it */ | /* claim it */ | ||||
| jack_shm_header->server[i].pid = GetPID(); | jack_shm_header->server[i].pid = GetPID(); | ||||
| strncpy (jack_shm_header->server[i].name, | strncpy (jack_shm_header->server[i].name, | ||||
| jack_shm_server_prefix, | |||||
| JACK_SERVER_NAME_SIZE); | |||||
| server_prefix, | |||||
| sizeof(server_prefix)); | |||||
| unlock: | unlock: | ||||
| jack_shm_unlock_registry (); | jack_shm_unlock_registry (); | ||||
| @@ -630,7 +638,7 @@ jack_cleanup_shm () | |||||
| int index = copy.index; | int index = copy.index; | ||||
| if ((index >= 0) && (index < MAX_SHM_ID)) { | if ((index >= 0) && (index < MAX_SHM_ID)) { | ||||
| jack_remove_shm (&jack_shm_registry[index].id); | |||||
| jack_remove_shm (jack_shm_registry[index].id); | |||||
| jack_release_shm_entry (index); | jack_release_shm_entry (index); | ||||
| } | } | ||||
| r->size = 0; | r->size = 0; | ||||
| @@ -715,8 +723,6 @@ jack_access_registry (jack_shm_info_t *ri) | |||||
| /* registry must be locked */ | /* registry must be locked */ | ||||
| int shm_fd; | int shm_fd; | ||||
| strncpy (registry_id, "/jack-shm-registry", sizeof (registry_id)); | |||||
| /* try to open an existing segment */ | /* try to open an existing segment */ | ||||
| if ((shm_fd = shm_open (registry_id, O_RDWR, 0666)) < 0) { | if ((shm_fd = shm_open (registry_id, O_RDWR, 0666)) < 0) { | ||||
| int rc = errno; | int rc = errno; | ||||
| @@ -759,8 +765,6 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| /* registry must be locked */ | /* registry must be locked */ | ||||
| int shm_fd; | int shm_fd; | ||||
| strncpy (registry_id, "/jack-shm-registry", sizeof (registry_id)); | |||||
| if ((shm_fd = shm_open (registry_id, O_RDWR|O_CREAT, 0666)) < 0) { | if ((shm_fd = shm_open (registry_id, O_RDWR|O_CREAT, 0666)) < 0) { | ||||
| int rc = errno; | int rc = errno; | ||||
| jack_error ("Cannot create shm registry segment (%s)", | jack_error ("Cannot create shm registry segment (%s)", | ||||
| @@ -779,7 +783,7 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| if (ftruncate (shm_fd, JACK_SHM_REGISTRY_SIZE) < 0) { | if (ftruncate (shm_fd, JACK_SHM_REGISTRY_SIZE) < 0) { | ||||
| int rc = errno; | int rc = errno; | ||||
| jack_error ("Cannot set registry size (%s)", strerror (errno)); | jack_error ("Cannot set registry size (%s)", strerror (errno)); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| close (shm_fd); | close (shm_fd); | ||||
| return rc; | return rc; | ||||
| } | } | ||||
| @@ -789,7 +793,7 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| MAP_SHARED, shm_fd, 0)) == MAP_FAILED) { | MAP_SHARED, shm_fd, 0)) == MAP_FAILED) { | ||||
| jack_error ("Cannot mmap shm registry segment (%s)", | jack_error ("Cannot mmap shm registry segment (%s)", | ||||
| strerror (errno)); | strerror (errno)); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| close (shm_fd); | close (shm_fd); | ||||
| return EINVAL; | return EINVAL; | ||||
| } | } | ||||
| @@ -806,10 +810,10 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| } | } | ||||
| static void | static void | ||||
| jack_remove_shm (jack_shm_id_t *id) | |||||
| jack_remove_shm (const jack_shm_id_t id) | |||||
| { | { | ||||
| /* registry may or may not be locked */ | /* registry may or may not be locked */ | ||||
| shm_unlink ((char *) id); | |||||
| shm_unlink (id); | |||||
| } | } | ||||
| void | void | ||||
| @@ -955,7 +959,6 @@ jack_access_registry (jack_shm_info_t *ri) | |||||
| { | { | ||||
| /* registry must be locked */ | /* registry must be locked */ | ||||
| HANDLE shm_fd; | HANDLE shm_fd; | ||||
| strncpy (registry_id, "jack-shm-registry", sizeof (registry_id)); | |||||
| /* try to open an existing segment */ | /* try to open an existing segment */ | ||||
| @@ -969,7 +972,7 @@ jack_access_registry (jack_shm_info_t *ri) | |||||
| if ((ri->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, JACK_SHM_REGISTRY_SIZE)) == NULL) { | if ((ri->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, JACK_SHM_REGISTRY_SIZE)) == NULL) { | ||||
| jack_error ("Cannot mmap shm registry segment (%ld)", GetLastError()); | jack_error ("Cannot mmap shm registry segment (%ld)", GetLastError()); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| CloseHandle (shm_fd); | CloseHandle (shm_fd); | ||||
| return EINVAL; | return EINVAL; | ||||
| } | } | ||||
| @@ -989,8 +992,6 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| /* registry must be locked */ | /* registry must be locked */ | ||||
| HANDLE shm_fd; | HANDLE shm_fd; | ||||
| strncpy (registry_id, "jack-shm-registry", sizeof (registry_id)); | |||||
| if ((shm_fd = CreateFileMapping(INVALID_HANDLE_VALUE, | if ((shm_fd = CreateFileMapping(INVALID_HANDLE_VALUE, | ||||
| 0, PAGE_READWRITE, | 0, PAGE_READWRITE, | ||||
| 0, JACK_SHM_REGISTRY_SIZE, | 0, JACK_SHM_REGISTRY_SIZE, | ||||
| @@ -1002,7 +1003,7 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| if ((ri->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, JACK_SHM_REGISTRY_SIZE)) == NULL) { | if ((ri->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, JACK_SHM_REGISTRY_SIZE)) == NULL) { | ||||
| jack_error ("Cannot mmap shm registry segment (%ld)", GetLastError()); | jack_error ("Cannot mmap shm registry segment (%ld)", GetLastError()); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| CloseHandle (shm_fd); | CloseHandle (shm_fd); | ||||
| return EINVAL; | return EINVAL; | ||||
| } | } | ||||
| @@ -1020,7 +1021,7 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| } | } | ||||
| static void | static void | ||||
| jack_remove_shm (jack_shm_id_t *id) | |||||
| jack_remove_shm (const jack_shm_id_t id) | |||||
| { | { | ||||
| /* nothing to do */ | /* nothing to do */ | ||||
| } | } | ||||
| @@ -1102,7 +1103,7 @@ jack_attach_shm (jack_shm_info_t* si) | |||||
| if ((si->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, registry->size)) == NULL) { | if ((si->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_ALL_ACCESS, 0, 0, registry->size)) == NULL) { | ||||
| jack_error ("Cannot mmap shm segment (%ld)", GetLastError()); | jack_error ("Cannot mmap shm segment (%ld)", GetLastError()); | ||||
| jack_remove_shm (®istry_id); | |||||
| jack_remove_shm (registry_id); | |||||
| CloseHandle (shm_fd); | CloseHandle (shm_fd); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -1125,7 +1126,7 @@ jack_attach_shm_read (jack_shm_info_t* si) | |||||
| if ((si->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_READ, 0, 0, registry->size)) == NULL) { | if ((si->ptr.attached_at = MapViewOfFile (shm_fd, FILE_MAP_READ, 0, 0, registry->size)) == NULL) { | ||||
| jack_error("Cannot mmap shm segment (%ld)", GetLastError()); | jack_error("Cannot mmap shm segment (%ld)", GetLastError()); | ||||
| jack_remove_shm(®istry_id); | |||||
| jack_remove_shm(registry_id); | |||||
| CloseHandle(shm_fd); | CloseHandle(shm_fd); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -1224,10 +1225,10 @@ jack_create_registry (jack_shm_info_t *ri) | |||||
| } | } | ||||
| static void | static void | ||||
| jack_remove_shm (jack_shm_id_t *id) | |||||
| jack_remove_shm (jack_shm_id_t id) | |||||
| { | { | ||||
| /* registry may or may not be locked */ | /* registry may or may not be locked */ | ||||
| shmctl (*id, IPC_RMID, NULL); | |||||
| shmctl (id, IPC_RMID, NULL); | |||||
| } | } | ||||
| void | void | ||||
| @@ -10,12 +10,12 @@ def configure(conf): | |||||
| if conf.env['IS_WINDOWS']: | if conf.env['IS_WINDOWS']: | ||||
| try: | try: | ||||
| conf.check(function_name='regcomp', header_name='regex.h', lib='regex', uselib_store='REGEX', define_name='HAVE_REGEX_H') | |||||
| conf.check(header_name='regex.h', lib='regex', uselib_store='REGEX', define_name='HAVE_REGEX_H') | |||||
| except: | except: | ||||
| conf.check(function_name='regcomp', header_name='regex.h', lib='tre', uselib_store='REGEX', define_name='HAVE_REGEX_H') | |||||
| conf.check(function_name='htons', header_name='winsock2.h', lib='ws2_32', uselib_store='WS2_32', define_name='HAVE_WINSOCK2_H') | |||||
| conf.check(function_name='timeGetDevCaps', header_name=['windows.h', 'mmsystem.h'], lib='winmm', uselib_store='WINMM', define_name='HAVE_MMSYSTEM_H') | |||||
| conf.check(function_name='EnumProcesses', header_name=['windows.h', 'psapi.h'], lib='psapi', uselib_store='PSAPI', define_name='HAVE_PSAPI_H') | |||||
| conf.check(header_name='tre/regex.h', lib='tre', uselib_store='REGEX', define_name='HAVE_TRE_REGEX_H') | |||||
| conf.check(header_name='winsock2.h', lib='ws2_32', uselib_store='WS2_32', define_name='HAVE_WINSOCK2_H') | |||||
| conf.check(header_name=['windows.h', 'mmsystem.h'], lib='winmm', uselib_store='WINMM', define_name='HAVE_MMSYSTEM_H') | |||||
| conf.check(header_name=['windows.h', 'psapi.h'], lib='psapi', uselib_store='PSAPI', define_name='HAVE_PSAPI_H') | |||||
| def create_jack_process_obj(bld, target, sources, uselib = None, framework = None): | def create_jack_process_obj(bld, target, sources, uselib = None, framework = None): | ||||
| process = bld(features = ['cxx', 'cxxshlib']) | process = bld(features = ['cxx', 'cxxshlib']) | ||||
| @@ -74,7 +74,7 @@ def build(bld): | |||||
| includes.append('..') | includes.append('..') | ||||
| else: | else: | ||||
| includes.append('../..') | includes.append('../..') | ||||
| uselib = ['PTHREAD', 'CELT', 'OPUS', 'DB'] | |||||
| uselib = ['CELT', 'OPUS', 'DB', 'PTHREAD'] | |||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| common_libsources += [ | common_libsources += [ | ||||
| @@ -116,8 +116,7 @@ def build(bld): | |||||
| '../posix/JackPosixThread.cpp', | '../posix/JackPosixThread.cpp', | ||||
| '../posix/JackPosixMutex.cpp', | '../posix/JackPosixMutex.cpp', | ||||
| '../macosx/JackMachThread.mm', | '../macosx/JackMachThread.mm', | ||||
| #'../macosx/JackMachSemaphore.mm', | |||||
| '../posix/JackPosixSemaphore.cpp', | |||||
| '../macosx/JackMachSemaphore.mm', | |||||
| '../posix/JackSocket.cpp', | '../posix/JackSocket.cpp', | ||||
| '../macosx/JackMachTime.c', | '../macosx/JackMachTime.c', | ||||
| ] | ] | ||||
| @@ -132,11 +131,16 @@ def build(bld): | |||||
| '../windows/JackWinTime.c', | '../windows/JackWinTime.c', | ||||
| ] | ] | ||||
| includes = ['../windows' ] + includes | includes = ['../windows' ] + includes | ||||
| libsuffix = "64" if (bld.env['DEST_CPU'] == "x86_64" and not bld.variant) else "" | |||||
| staticbuild = bool('BUILD_STATIC' in bld.env and bld.env['BUILD_STATIC']) | |||||
| uselib.append('REGEX') | uselib.append('REGEX') | ||||
| uselib.append('WS2_32') | uselib.append('WS2_32') | ||||
| uselib.append('PSAPI') | uselib.append('PSAPI') | ||||
| uselib.append('WINMM') | uselib.append('WINMM') | ||||
| else: | |||||
| libsuffix = "" | |||||
| clientlib = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib']) | clientlib = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib']) | ||||
| if bld.env['IS_MACOSX']: | if bld.env['IS_MACOSX']: | ||||
| clientlib.framework = ['CoreAudio', 'Accelerate'] | clientlib.framework = ['CoreAudio', 'Accelerate'] | ||||
| @@ -144,14 +148,14 @@ def build(bld): | |||||
| clientlib.use = uselib | clientlib.use = uselib | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| clientlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | clientlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | ||||
| clientlib.install_path = '${BINDIR}' | |||||
| else: | |||||
| clientlib.install_path = '${LIBDIR}' | |||||
| clientlib.env['cxxstlib_PATTERN'] = 'lib%s.a' | |||||
| clientlib.env['implib_PATTERN'] = 'lib%s.dll.a' | |||||
| clientlib.install_path = '${LIBDIR}' | |||||
| if bld.env['AUTOSTART_METHOD'] == 'dbus': | if bld.env['AUTOSTART_METHOD'] == 'dbus': | ||||
| clientlib.use.append('DBUS-1') | clientlib.use.append('DBUS-1') | ||||
| clientlib.includes = includes | clientlib.includes = includes | ||||
| clientlib.name = 'clientlib' | clientlib.name = 'clientlib' | ||||
| clientlib.target = 'jack' | |||||
| clientlib.target = 'jack'+libsuffix | |||||
| clientlib.source = [] + common_libsources | clientlib.source = [] + common_libsources | ||||
| clientlib.source += [ | clientlib.source += [ | ||||
| 'JackLibClient.cpp', | 'JackLibClient.cpp', | ||||
| @@ -185,7 +189,8 @@ def build(bld): | |||||
| '../windows/JackMMCSS.cpp', | '../windows/JackMMCSS.cpp', | ||||
| ] | ] | ||||
| clientlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| if not bld.env['IS_WINDOWS']: | |||||
| clientlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | clientlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| @@ -197,6 +202,15 @@ def build(bld): | |||||
| if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
| clientlib.env.append_value('LINKFLAGS', '-lnsl -lsocket') | clientlib.env.append_value('LINKFLAGS', '-lnsl -lsocket') | ||||
| if bld.env['IS_WINDOWS']: | |||||
| # remove switch to shared binaries if possible, as we most likely want static builds on Windows | |||||
| if staticbuild: | |||||
| clientlib.env['SHLIB_MARKER'] = '' | |||||
| # statically link libjack to libstdc++, some client apps like ardour come | |||||
| # with a different version of libstdc++.dll that takes precedence and results | |||||
| # in missing symbols during runtime | |||||
| clientlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import']) | |||||
| if bld.variant: | if bld.variant: | ||||
| # if there is variant defined, we expect it to be the 32bit client lib one | # if there is variant defined, we expect it to be the 32bit client lib one | ||||
| # we don't want to build other stuff in this variant | # we don't want to build other stuff in this variant | ||||
| @@ -207,14 +221,17 @@ def build(bld): | |||||
| serverlib.framework = ['CoreAudio', 'CoreFoundation', 'Accelerate'] | serverlib.framework = ['CoreAudio', 'CoreFoundation', 'Accelerate'] | ||||
| serverlib.defines = ['HAVE_CONFIG_H','SERVER_SIDE'] | serverlib.defines = ['HAVE_CONFIG_H','SERVER_SIDE'] | ||||
| serverlib.includes = includes | serverlib.includes = includes | ||||
| serverlib.name = 'serverlib' | |||||
| serverlib.target = 'jackserver' | |||||
| serverlib.name = 'serverlib' | |||||
| serverlib.target = 'jackserver'+libsuffix | |||||
| serverlib.use = uselib | serverlib.use = uselib | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| serverlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | |||||
| serverlib.install_path = '${BINDIR}' | |||||
| else: | |||||
| serverlib.install_path = '${LIBDIR}' | |||||
| serverlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | |||||
| serverlib.env['cxxstlib_PATTERN'] = 'lib%s.a' | |||||
| serverlib.env['implib_PATTERN'] = 'lib%s.dll.a' | |||||
| if staticbuild: | |||||
| serverlib.env['SHLIB_MARKER'] = '' | |||||
| serverlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import']) | |||||
| serverlib.install_path = '${LIBDIR}' | |||||
| serverlib.source = [] + common_libsources | serverlib.source = [] + common_libsources | ||||
| serverlib.source += [ | serverlib.source += [ | ||||
| 'JackAudioDriver.cpp', | 'JackAudioDriver.cpp', | ||||
| @@ -287,7 +304,8 @@ def build(bld): | |||||
| '../windows/JackNetWinSocket.cpp', | '../windows/JackNetWinSocket.cpp', | ||||
| ] | ] | ||||
| serverlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| if not bld.env['IS_WINDOWS']: | |||||
| serverlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
| serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | serverlib.env.append_value('CPPFLAGS', '-fvisibility=hidden') | ||||
| @@ -305,18 +323,19 @@ def build(bld): | |||||
| netlib.framework = ['CoreAudio'] | netlib.framework = ['CoreAudio'] | ||||
| netlib.defines = ['HAVE_CONFIG_H','SERVER_SIDE'] | netlib.defines = ['HAVE_CONFIG_H','SERVER_SIDE'] | ||||
| netlib.includes = includes | netlib.includes = includes | ||||
| netlib.name = 'netlib' | |||||
| netlib.target = 'jacknet' | |||||
| netlib.name = 'netlib' | |||||
| netlib.target = 'jacknet'+libsuffix | |||||
| netlib.use = ['SAMPLERATE', 'CELT', 'OPUS', 'PTHREAD'] | netlib.use = ['SAMPLERATE', 'CELT', 'OPUS', 'PTHREAD'] | ||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll' | ||||
| netlib.install_path = '${BINDIR}' | |||||
| netlib.env['cxxstlib_PATTERN'] = 'lib%s.a' | |||||
| netlib.env['implib_PATTERN'] = 'lib%s.dll.a' | |||||
| if staticbuild: | |||||
| netlib.env['SHLIB_MARKER'] = '' | |||||
| netlib.use += ['WS2_32', 'WINMM'] | netlib.use += ['WS2_32', 'WINMM'] | ||||
| elif bld.env['IS_MACOSX']: | |||||
| netlib.install_path = '${LIBDIR}' | |||||
| else: | |||||
| elif not bld.env['IS_MACOSX']: | |||||
| netlib.use += ['RT'] | netlib.use += ['RT'] | ||||
| netlib.install_path = '${LIBDIR}' | |||||
| netlib.install_path = '${LIBDIR}' | |||||
| netlib.source = [ | netlib.source = [ | ||||
| 'JackNetAPI.cpp', | 'JackNetAPI.cpp', | ||||
| 'JackNetInterface.cpp', | 'JackNetInterface.cpp', | ||||
| @@ -344,7 +363,8 @@ def build(bld): | |||||
| if bld.env['IS_WINDOWS']: | if bld.env['IS_WINDOWS']: | ||||
| netlib.source += ['../windows/JackNetWinSocket.cpp','../windows/JackWinThread.cpp', '../windows/JackMMCSS.cpp', '../windows/JackWinTime.c'] | netlib.source += ['../windows/JackNetWinSocket.cpp','../windows/JackWinThread.cpp', '../windows/JackMMCSS.cpp', '../windows/JackWinTime.c'] | ||||
| netlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| if not bld.env['IS_WINDOWS']: | |||||
| netlib.vnum = bld.env['JACK_API_VERSION'] | |||||
| create_jack_process_obj(bld, 'netmanager', 'JackNetManager.cpp', serverlib) | create_jack_process_obj(bld, 'netmanager', 'JackNetManager.cpp', serverlib) | ||||
| @@ -388,12 +408,12 @@ def build(bld): | |||||
| if bld.env['BUILD_ADAPTER'] and bld.env['IS_LINUX'] and bld.env['BUILD_DRIVER_ALSA']: | if bld.env['BUILD_ADAPTER'] and bld.env['IS_LINUX'] and bld.env['BUILD_DRIVER_ALSA']: | ||||
| audio_adapter_sources += ['../linux/alsa/JackAlsaAdapter.cpp'] | audio_adapter_sources += ['../linux/alsa/JackAlsaAdapter.cpp'] | ||||
| process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib) | process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib) | ||||
| process.use = ['ALSA', 'SAMPLERATE'] | |||||
| process.use += ['ALSA', 'SAMPLERATE'] | |||||
| if bld.env['BUILD_ADAPTER'] and bld.env['IS_SUN']: | if bld.env['BUILD_ADAPTER'] and bld.env['IS_SUN']: | ||||
| audio_adapter_sources += ['../solaris/oss/JackOSSAdapter.cpp', 'memops.c'] | audio_adapter_sources += ['../solaris/oss/JackOSSAdapter.cpp', 'memops.c'] | ||||
| process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib) | process = create_jack_process_obj(bld, 'audioadapter', audio_adapter_sources, serverlib) | ||||
| process.use = 'SAMPLERATE' | |||||
| process.use += 'SAMPLERATE' | |||||
| if bld.env['BUILD_ADAPTER'] and bld.env['IS_WINDOWS']: | if bld.env['BUILD_ADAPTER'] and bld.env['IS_WINDOWS']: | ||||
| audio_adapter_sources += ['../windows/portaudio/JackPortAudioAdapter.cpp', '../windows/portaudio/JackPortAudioDevices.cpp'] | audio_adapter_sources += ['../windows/portaudio/JackPortAudioAdapter.cpp', '../windows/portaudio/JackPortAudioDevices.cpp'] | ||||
| @@ -408,7 +428,8 @@ def build(bld): | |||||
| features = 'subst_pc', | features = 'subst_pc', | ||||
| source = '../jack.pc.in', | source = '../jack.pc.in', | ||||
| target = 'jack.pc', | target = 'jack.pc', | ||||
| install_path = '${LIBDIR}/pkgconfig/', | |||||
| install_path = '${PKGCONFDIR}', | |||||
| INCLUDEDIR = os.path.normpath(bld.env['PREFIX'] + '/include'), | INCLUDEDIR = os.path.normpath(bld.env['PREFIX'] + '/include'), | ||||
| CLIENTLIB = clientlib.target, | |||||
| SERVERLIB = serverlib.target, | SERVERLIB = serverlib.target, | ||||
| ) | ) | ||||
| @@ -792,7 +792,7 @@ HTML_HEADER = | |||||
| # each generated HTML page. If it is left blank doxygen will generate a | # each generated HTML page. If it is left blank doxygen will generate a | ||||
| # standard footer. | # standard footer. | ||||
| HTML_FOOTER = @SRCDIR@/no_date_footer.html | |||||
| HTML_FOOTER = | |||||
| # The HTML_STYLESHEET tag can be used to specify a user-defined cascading | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading | ||||
| # style sheet that is used by each HTML page. It can be used to | # style sheet that is used by each HTML page. It can be used to | ||||
| @@ -88,7 +88,7 @@ main (int argc, char *argv[]) | |||||
| while ((c = getopt_long (argc, argv, "s:hvu", long_options, &option_index)) >= 0) { | while ((c = getopt_long (argc, argv, "s:hvu", long_options, &option_index)) >= 0) { | ||||
| switch (c) { | switch (c) { | ||||
| case 's': | case 's': | ||||
| server_name = (char *) malloc (sizeof (char) * strlen(optarg)); | |||||
| server_name = (char *) malloc (sizeof (char) * (strlen(optarg) + 1)); | |||||
| strcpy (server_name, optarg); | strcpy (server_name, optarg); | ||||
| options |= JackServerName; | options |= JackServerName; | ||||
| break; | break; | ||||
| @@ -43,7 +43,7 @@ def python_type_to_jackdbus_type(value, type_char): | |||||
| if type_char == "b": | if type_char == "b": | ||||
| return bool_convert(value); | return bool_convert(value); | ||||
| elif type_char == "y": | elif type_char == "y": | ||||
| return dbus.Byte(value); | |||||
| return dbus.Byte(ord(value)); | |||||
| elif type_char == "i": | elif type_char == "i": | ||||
| return dbus.Int32(value) | return dbus.Int32(value) | ||||
| elif type_char == "u": | elif type_char == "u": | ||||
| @@ -154,7 +154,7 @@ def maybe_print_param_constraint(iface, param): | |||||
| def main(): | def main(): | ||||
| if len(sys.argv) == 1 or sys.argv[1] in ["-h", "--help", "help"]: | if len(sys.argv) == 1 or sys.argv[1] in ["-h", "--help", "help"]: | ||||
| print_help() | print_help() | ||||
| sys.exit(0) | |||||
| return 0 | |||||
| bus = dbus.SessionBus() | bus = dbus.SessionBus() | ||||
| @@ -175,10 +175,10 @@ def main(): | |||||
| print("--- status") | print("--- status") | ||||
| if control_iface.IsStarted(): | if control_iface.IsStarted(): | ||||
| print("started") | print("started") | ||||
| sys.exit(0) | |||||
| return 0 | |||||
| else: | else: | ||||
| print("stopped") | print("stopped") | ||||
| sys.exit(1) | |||||
| return 1 | |||||
| elif arg == 'start': | elif arg == 'start': | ||||
| print("--- start") | print("--- start") | ||||
| control_iface.StartServer() | control_iface.StartServer() | ||||
| @@ -205,7 +205,7 @@ def main(): | |||||
| elif arg == 'ds': | elif arg == 'ds': | ||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("driver select command requires driver name argument") | print("driver select command requires driver name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| arg = sys.argv[index] | arg = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -218,7 +218,7 @@ def main(): | |||||
| elif arg == 'dpd': | elif arg == 'dpd': | ||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("get driver parameter long description command requires parameter name argument") | print("get driver parameter long description command requires parameter name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param = sys.argv[index] | param = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -230,7 +230,7 @@ def main(): | |||||
| elif arg == 'dps': | elif arg == 'dps': | ||||
| if index + 1 >= len(sys.argv): | if index + 1 >= len(sys.argv): | ||||
| print("driver parameter set command requires parameter name and value arguments") | print("driver parameter set command requires parameter name and value arguments") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param = sys.argv[index] | param = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -244,7 +244,7 @@ def main(): | |||||
| elif arg == 'dpr': | elif arg == 'dpr': | ||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("driver parameter reset command requires parameter name argument") | print("driver parameter reset command requires parameter name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param = sys.argv[index] | param = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -257,7 +257,7 @@ def main(): | |||||
| elif arg == 'epd': | elif arg == 'epd': | ||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("get engine parameter long description command requires parameter name argument") | print("get engine parameter long description command requires parameter name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param_name = sys.argv[index] | param_name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -270,7 +270,7 @@ def main(): | |||||
| elif arg == 'eps': | elif arg == 'eps': | ||||
| if index + 1 >= len(sys.argv): | if index + 1 >= len(sys.argv): | ||||
| print("engine parameter set command requires parameter name and value arguments") | print("engine parameter set command requires parameter name and value arguments") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param = sys.argv[index] | param = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -284,7 +284,7 @@ def main(): | |||||
| elif arg == 'epr': | elif arg == 'epr': | ||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("engine parameter reset command requires parameter name") | print("engine parameter reset command requires parameter name") | ||||
| sys.exit() | |||||
| return 1 | |||||
| param = sys.argv[index] | param = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -303,7 +303,7 @@ def main(): | |||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("internal parameters command requires internal name argument") | print("internal parameters command requires internal name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| internal_name = sys.argv[index] | internal_name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -312,7 +312,7 @@ def main(): | |||||
| elif arg == 'ipd': | elif arg == 'ipd': | ||||
| if index + 1 >= len(sys.argv): | if index + 1 >= len(sys.argv): | ||||
| print("get internal parameter long description command requires internal and parameter name arguments") | print("get internal parameter long description command requires internal and parameter name arguments") | ||||
| sys.exit() | |||||
| return 1 | |||||
| name = sys.argv[index] | name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -325,7 +325,7 @@ def main(): | |||||
| elif arg == 'ips': | elif arg == 'ips': | ||||
| if index + 2 >= len(sys.argv): | if index + 2 >= len(sys.argv): | ||||
| print("internal parameter set command requires internal, parameter name and value arguments") | print("internal parameter set command requires internal, parameter name and value arguments") | ||||
| sys.exit() | |||||
| return 1 | |||||
| internal_name = sys.argv[index] | internal_name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -341,7 +341,7 @@ def main(): | |||||
| elif arg == 'ipr': | elif arg == 'ipr': | ||||
| if index + 1 >= len(sys.argv): | if index + 1 >= len(sys.argv): | ||||
| print("reset internal parameter command requires internal and parameter name arguments") | print("reset internal parameter command requires internal and parameter name arguments") | ||||
| sys.exit() | |||||
| return 1 | |||||
| internal_name = sys.argv[index] | internal_name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -356,7 +356,7 @@ def main(): | |||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("load internal command requires internal name argument") | print("load internal command requires internal name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| name = sys.argv[index] | name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -366,7 +366,7 @@ def main(): | |||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("unload internal command requires internal name argument") | print("unload internal command requires internal name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| name = sys.argv[index] | name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -376,7 +376,7 @@ def main(): | |||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("add slave driver command requires driver name argument") | print("add slave driver command requires driver name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| name = sys.argv[index] | name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -386,7 +386,7 @@ def main(): | |||||
| if index >= len(sys.argv): | if index >= len(sys.argv): | ||||
| print("remove slave driver command requires driver name argument") | print("remove slave driver command requires driver name argument") | ||||
| sys.exit() | |||||
| return 1 | |||||
| name = sys.argv[index] | name = sys.argv[index] | ||||
| index += 1 | index += 1 | ||||
| @@ -395,6 +395,9 @@ def main(): | |||||
| print("Unknown command '%s'" % arg) | print("Unknown command '%s'" % arg) | ||||
| except dbus.DBusException as e: | except dbus.DBusException as e: | ||||
| print("DBus exception: %s" % str(e)) | print("DBus exception: %s" % str(e)) | ||||
| return 1 | |||||
| return 0 | |||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||
| main() | |||||
| sys.exit(main()) | |||||
| @@ -17,20 +17,20 @@ static char* subject = NULL; | |||||
| static void | static void | ||||
| show_usage (void) | show_usage (void) | ||||
| { | { | ||||
| fprintf (stderr, "\nUsage: jack_property [options] UUID [ key [ value [ type ] ] ]\n"); | |||||
| fprintf (stderr, "Set/Display JACK properties (metadata).\n\n"); | |||||
| fprintf (stderr, "Set options:\n"); | |||||
| fprintf (stderr, " -s, --set Set property \"key\" to \"value\" for \"UUID\" with optional MIME type \"type\"\n"); | |||||
| fprintf (stderr, " -d, --delete Remove/delete property \"key\" for \"UUID\"\n"); | |||||
| fprintf (stderr, " -d, --delete UUID Remove/delete all properties for \"UUID\"\n"); | |||||
| fprintf (stderr, " -D, --delete-all Remove/delete all properties\n"); | |||||
| fprintf (stderr, "\nUsage: jack_property [options] UUID [ key [ value [ type ] ] ]\n"); | |||||
| fprintf (stderr, "Set/Display JACK properties (metadata).\n\n"); | |||||
| fprintf (stderr, "Set options:\n"); | |||||
| fprintf (stderr, " -s, --set Set property \"key\" to \"value\" for \"UUID\" with optional MIME type \"type\"\n"); | |||||
| fprintf (stderr, " -d, --delete Remove/delete property \"key\" for \"UUID\"\n"); | |||||
| fprintf (stderr, " -d, --delete UUID Remove/delete all properties for \"UUID\"\n"); | |||||
| fprintf (stderr, " -D, --delete-all Remove/delete all properties\n"); | |||||
| fprintf (stderr, " --client Interpret UUID as a client name, not a UUID\n"); | fprintf (stderr, " --client Interpret UUID as a client name, not a UUID\n"); | ||||
| fprintf (stderr, " --port \tInterpret UUID as a port name, not a UUID\n"); | fprintf (stderr, " --port \tInterpret UUID as a port name, not a UUID\n"); | ||||
| fprintf (stderr, "\nDisplay options:\n"); | |||||
| fprintf (stderr, " -l Show all properties\n"); | |||||
| fprintf (stderr, " -l, --list UUID \tShow value all properties of UUID\n"); | |||||
| fprintf (stderr, " -l, --list UUID key Show value for key of UUID\n"); | |||||
| fprintf (stderr, "\nFor more information see http://jackaudio.org/\n"); | |||||
| fprintf (stderr, "\nDisplay options:\n"); | |||||
| fprintf (stderr, " -l Show all properties\n"); | |||||
| fprintf (stderr, " -l, --list UUID \tShow value for all properties of UUID\n"); | |||||
| fprintf (stderr, " -l, --list UUID key Show value for key of UUID\n"); | |||||
| fprintf (stderr, "\nFor more information see https://jackaudio.org/\n"); | |||||
| } | } | ||||
| static int | static int | ||||
| @@ -82,7 +82,7 @@ get_subject (jack_client_t* client, char* argv[], int* optind) | |||||
| int main (int argc, char* argv[]) | int main (int argc, char* argv[]) | ||||
| { | { | ||||
| jack_client_t* client = NULL; | jack_client_t* client = NULL; | ||||
| jack_options_t options = JackNoStartServer; | |||||
| jack_options_t options = JackNoStartServer; | |||||
| char* key = NULL; | char* key = NULL; | ||||
| char* value = NULL; | char* value = NULL; | ||||
| char* type = NULL; | char* type = NULL; | ||||
| @@ -90,32 +90,32 @@ int main (int argc, char* argv[]) | |||||
| int delete = 0; | int delete = 0; | ||||
| int delete_all = 0; | int delete_all = 0; | ||||
| int c; | int c; | ||||
| int option_index; | |||||
| extern int optind; | |||||
| struct option long_options[] = { | |||||
| { "set", 0, 0, 's' }, | |||||
| { "delete", 0, 0, 'd' }, | |||||
| { "delete-all", 0, 0, 'D' }, | |||||
| { "list", 0, 0, 'l' }, | |||||
| { "client", 0, 0, 'c' }, | |||||
| { "port", 0, 0, 'p' }, | |||||
| { 0, 0, 0, 0 } | |||||
| }; | |||||
| int option_index; | |||||
| extern int optind; | |||||
| struct option long_options[] = { | |||||
| { "set", 0, 0, 's' }, | |||||
| { "delete", 0, 0, 'd' }, | |||||
| { "delete-all", 0, 0, 'D' }, | |||||
| { "list", 0, 0, 'l' }, | |||||
| { "client", 0, 0, 'c' }, | |||||
| { "port", 0, 0, 'p' }, | |||||
| { 0, 0, 0, 0 } | |||||
| }; | |||||
| if (argc < 2) { | if (argc < 2) { | ||||
| show_usage (); | show_usage (); | ||||
| exit (1); | exit (1); | ||||
| } | } | ||||
| while ((c = getopt_long (argc, argv, "sdDlaApc", long_options, &option_index)) >= 0) { | |||||
| switch (c) { | |||||
| case 's': | |||||
| while ((c = getopt_long (argc, argv, "sdDlaApc", long_options, &option_index)) >= 0) { | |||||
| switch (c) { | |||||
| case 's': | |||||
| if (argc < 5) { | if (argc < 5) { | ||||
| show_usage (); | show_usage (); | ||||
| exit (1); | exit (1); | ||||
| } | } | ||||
| set = 1; | |||||
| break; | |||||
| set = 1; | |||||
| break; | |||||
| case 'd': | case 'd': | ||||
| if (argc < 3) { | if (argc < 3) { | ||||
| show_usage (); | show_usage (); | ||||
| @@ -222,7 +222,7 @@ int main (int argc, char* argv[]) | |||||
| } | } | ||||
| if (jack_set_property (client, uuid, key, value, type)) { | if (jack_set_property (client, uuid, key, value, type)) { | ||||
| fprintf (stderr, "cannot set value for key %s of %s\n", value, subject); | |||||
| fprintf (stderr, "cannot set value for key %s of %s\n", key, subject); | |||||
| exit (1); | exit (1); | ||||
| } | } | ||||
| @@ -258,7 +258,7 @@ int main (int argc, char* argv[]) | |||||
| /* list all properties for a given UUID */ | /* list all properties for a given UUID */ | ||||
| jack_description_t description; | jack_description_t description; | ||||
| size_t cnt, n; | |||||
| int cnt, n; | |||||
| if (get_subject (client, argv, &optind)) { | if (get_subject (client, argv, &optind)) { | ||||
| return -1; | return -1; | ||||
| @@ -289,9 +289,8 @@ int main (int argc, char* argv[]) | |||||
| /* list all properties */ | /* list all properties */ | ||||
| jack_description_t* description; | jack_description_t* description; | ||||
| int cnt; | |||||
| int cnt, n; | |||||
| size_t p; | size_t p; | ||||
| int n; | |||||
| char buf[JACK_UUID_STRING_SIZE]; | char buf[JACK_UUID_STRING_SIZE]; | ||||
| if ((cnt = jack_get_all_properties (&description)) < 0) { | if ((cnt = jack_get_all_properties (&description)) < 0) { | ||||
| @@ -17,6 +17,7 @@ show_usage(void) | |||||
| fprintf(stderr, "Check for jack existence, or wait, until it either quits, or gets started\n"); | fprintf(stderr, "Check for jack existence, or wait, until it either quits, or gets started\n"); | ||||
| fprintf(stderr, "options:\n"); | fprintf(stderr, "options:\n"); | ||||
| fprintf(stderr, " -s, --server <name> Connect to the jack server named <name>\n"); | fprintf(stderr, " -s, --server <name> Connect to the jack server named <name>\n"); | ||||
| fprintf(stderr, " -n, --name <name> Set client name to <name>\n"); | |||||
| fprintf(stderr, " -w, --wait Wait for server to become available\n"); | fprintf(stderr, " -w, --wait Wait for server to become available\n"); | ||||
| fprintf(stderr, " -q, --quit Wait until server is quit\n"); | fprintf(stderr, " -q, --quit Wait until server is quit\n"); | ||||
| fprintf(stderr, " -c, --check Check whether server is running\n"); | fprintf(stderr, " -c, --check Check whether server is running\n"); | ||||
| @@ -34,6 +35,7 @@ main(int argc, char *argv[]) | |||||
| int c; | int c; | ||||
| int option_index; | int option_index; | ||||
| char *server_name = NULL; | char *server_name = NULL; | ||||
| char *client_name = NULL; | |||||
| int wait_for_start = 0; | int wait_for_start = 0; | ||||
| int wait_for_quit = 0; | int wait_for_quit = 0; | ||||
| int just_check = 0; | int just_check = 0; | ||||
| @@ -44,6 +46,7 @@ main(int argc, char *argv[]) | |||||
| struct option long_options[] = { | struct option long_options[] = { | ||||
| { "server", 1, 0, 's' }, | { "server", 1, 0, 's' }, | ||||
| { "wait", 0, 0, 'w' }, | { "wait", 0, 0, 'w' }, | ||||
| { "name", 1, 0, 'n'}, | |||||
| { "quit", 0, 0, 'q' }, | { "quit", 0, 0, 'q' }, | ||||
| { "check", 0, 0, 'c' }, | { "check", 0, 0, 'c' }, | ||||
| { "timeout", 1, 0, 't' }, | { "timeout", 1, 0, 't' }, | ||||
| @@ -58,13 +61,17 @@ main(int argc, char *argv[]) | |||||
| my_name ++; | my_name ++; | ||||
| } | } | ||||
| while ((c = getopt_long (argc, argv, "s:wqct:hv", long_options, &option_index)) >= 0) { | |||||
| while ((c = getopt_long (argc, argv, "s:n:wqct:hv", long_options, &option_index)) >= 0) { | |||||
| switch (c) { | switch (c) { | ||||
| case 's': | case 's': | ||||
| server_name = (char *) malloc (sizeof (char) * strlen(optarg)); | |||||
| server_name = (char *) malloc (sizeof (char) * (strlen(optarg) + 1)); | |||||
| strcpy (server_name, optarg); | strcpy (server_name, optarg); | ||||
| options |= JackServerName; | options |= JackServerName; | ||||
| break; | break; | ||||
| case 'n': | |||||
| client_name = (char *) malloc (sizeof (char) * (strlen(optarg) + 1)); | |||||
| strcpy (client_name, optarg); | |||||
| break; | |||||
| case 'w': | case 'w': | ||||
| wait_for_start = 1; | wait_for_start = 1; | ||||
| break; | break; | ||||
| @@ -93,7 +100,12 @@ main(int argc, char *argv[]) | |||||
| start_timestamp = time(NULL); | start_timestamp = time(NULL); | ||||
| while (1) { | while (1) { | ||||
| client = jack_client_open ("wait", options, &status, server_name); | |||||
| if (client_name) { | |||||
| client = jack_client_open (client_name, options, &status, server_name); | |||||
| } | |||||
| else { | |||||
| client = jack_client_open ("wait", options, &status, server_name); | |||||
| } | |||||
| /* check for some real error and bail out */ | /* check for some real error and bail out */ | ||||
| if ((client == NULL) && !(status & JackServerFailed)) { | if ((client == NULL) && !(status & JackServerFailed)) { | ||||
| fprintf (stderr, "jack_client_open() failed, " | fprintf (stderr, "jack_client_open() failed, " | ||||
| @@ -7,5 +7,5 @@ server_libs=-L@LIBDIR@ -l@SERVERLIB@ | |||||
| Name: jack | Name: jack | ||||
| Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server | Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server | ||||
| Version: @JACK_VERSION@ | Version: @JACK_VERSION@ | ||||
| Libs: -L@LIBDIR@ -ljack | |||||
| Libs: -L@LIBDIR@ -l@CLIENTLIB@ | |||||
| Cflags: -I@INCLUDEDIR@ | Cflags: -I@INCLUDEDIR@ | ||||
| @@ -35,8 +35,8 @@ namespace Jack | |||||
| inline void* aligned_calloc ( size_t nmemb, size_t size ) { return ( void* ) calloc ( nmemb, size ); } | inline void* aligned_calloc ( size_t nmemb, size_t size ) { return ( void* ) calloc ( nmemb, size ); } | ||||
| #define max(x,y) (((x)>(y)) ? (x) : (y)) | |||||
| #define min(x,y) (((x)<(y)) ? (x) : (y)) | |||||
| #define jack_max(x,y) (((x)>(y)) ? (x) : (y)) | |||||
| #define jack_min(x,y) (((x)<(y)) ? (x) : (y)) | |||||
| #define check_error(err) if (err) { jack_error("%s:%d, alsa error %d : %s", __FILE__, __LINE__, err, snd_strerror(err)); return err; } | #define check_error(err) if (err) { jack_error("%s:%d, alsa error %d : %s", __FILE__, __LINE__, err, snd_strerror(err)); return err; } | ||||
| #define check_error_msg(err,msg) if (err) { jack_error("%s:%d, %s : %s(%d)", __FILE__, __LINE__, msg, snd_strerror(err), err); return err; } | #define check_error_msg(err,msg) if (err) { jack_error("%s:%d, %s : %s(%d)", __FILE__, __LINE__, msg, snd_strerror(err), err); return err; } | ||||
| @@ -259,9 +259,9 @@ namespace Jack | |||||
| } | } | ||||
| //set floating point buffers needed by the dsp code | //set floating point buffers needed by the dsp code | ||||
| fSoftInputs = max ( fSoftInputs, fCardInputs ); | |||||
| fSoftInputs = jack_max ( fSoftInputs, fCardInputs ); | |||||
| assert ( fSoftInputs < 256 ); | assert ( fSoftInputs < 256 ); | ||||
| fSoftOutputs = max ( fSoftOutputs, fCardOutputs ); | |||||
| fSoftOutputs = jack_max ( fSoftOutputs, fCardOutputs ); | |||||
| assert ( fSoftOutputs < 256 ); | assert ( fSoftOutputs < 256 ); | ||||
| for ( unsigned int i = 0; i < fSoftInputs; i++ ) | for ( unsigned int i = 0; i < fSoftInputs; i++ ) | ||||
| @@ -447,7 +447,7 @@ namespace Jack | |||||
| for ( unsigned int c = 0; c < fCardOutputs; c++ ) | for ( unsigned int c = 0; c < fCardOutputs; c++ ) | ||||
| { | { | ||||
| jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | ||||
| buffer16b[c + f * fCardOutputs] = short(max(min (x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(SHRT_MAX)); | |||||
| buffer16b[c + f * fCardOutputs] = short(jack_max(jack_min (x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(SHRT_MAX)); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -459,7 +459,7 @@ namespace Jack | |||||
| for ( unsigned int c = 0; c < fCardOutputs; c++ ) | for ( unsigned int c = 0; c < fCardOutputs; c++ ) | ||||
| { | { | ||||
| jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | ||||
| buffer32b[c + f * fCardOutputs] = int32_t(max(min(x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(INT_MAX)); | |||||
| buffer32b[c + f * fCardOutputs] = int32_t(jack_max(jack_min(x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(INT_MAX)); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -481,7 +481,7 @@ namespace Jack | |||||
| for ( f = 0; f < fBuffering; f++ ) | for ( f = 0; f < fBuffering; f++ ) | ||||
| { | { | ||||
| jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | ||||
| chan16b[f] = short(max(min (x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(SHRT_MAX)); | |||||
| chan16b[f] = short(jack_max(jack_min (x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(SHRT_MAX)); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -493,7 +493,7 @@ namespace Jack | |||||
| for ( f = 0; f < fBuffering; f++ ) | for ( f = 0; f < fBuffering; f++ ) | ||||
| { | { | ||||
| jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | jack_default_audio_sample_t x = fOutputSoftChannels[c][f]; | ||||
| chan32b[f] = int32_t(max(min(x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(INT_MAX)); | |||||
| chan32b[f] = int32_t(jack_max(jack_min(x, jack_default_audio_sample_t(1.0)), jack_default_audio_sample_t(-1.0)) * jack_default_audio_sample_t(INT_MAX)); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -755,8 +755,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver, | |||||
| if (c_period_size != driver->frames_per_cycle) { | if (c_period_size != driver->frames_per_cycle) { | ||||
| jack_error ("alsa_pcm: requested an interrupt every %" | jack_error ("alsa_pcm: requested an interrupt every %" | ||||
| PRIu32 | PRIu32 | ||||
| " frames but got %uc frames for capture", | |||||
| driver->frames_per_cycle, p_period_size); | |||||
| " frames but got %u frames for capture", | |||||
| driver->frames_per_cycle, c_period_size); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| } | } | ||||
| @@ -1367,12 +1367,14 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float | |||||
| if (poll_result < 0) { | if (poll_result < 0) { | ||||
| if (errno == EINTR) { | if (errno == EINTR) { | ||||
| jack_info ("poll interrupt"); | |||||
| const char poll_log[] = "ALSA: poll interrupt"; | |||||
| // this happens mostly when run | // this happens mostly when run | ||||
| // under gdb, or when exiting due to a signal | // under gdb, or when exiting due to a signal | ||||
| if (under_gdb) { | if (under_gdb) { | ||||
| jack_info(poll_log); | |||||
| goto again; | goto again; | ||||
| } | } | ||||
| jack_error(poll_log); | |||||
| *status = -2; | *status = -2; | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -1395,9 +1397,9 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float | |||||
| *status = -5; | *status = -5; | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| jack_log ("ALSA: poll time out, polled for %" PRIu64 | |||||
| " usecs, Retrying with a recovery, retry cnt = %d", | |||||
| poll_ret - poll_enter, retry_cnt); | |||||
| jack_error ("ALSA: poll time out, polled for %" PRIu64 | |||||
| " usecs, Retrying with a recovery, retry cnt = %d", | |||||
| poll_ret - poll_enter, retry_cnt); | |||||
| *status = alsa_driver_xrun_recovery (driver, delayed_usecs); | *status = alsa_driver_xrun_recovery (driver, delayed_usecs); | ||||
| if(*status != 0) { | if(*status != 0) { | ||||
| jack_error ("ALSA: poll time out, recovery failed with status = %d", *status); | jack_error ("ALSA: poll time out, recovery failed with status = %d", *status); | ||||
| @@ -41,13 +41,18 @@ class SERVER_EXPORT JackMachSemaphore : public detail::JackSynchro | |||||
| semaphore_t fSemaphore; | semaphore_t fSemaphore; | ||||
| mach_port_t fBootPort; | mach_port_t fBootPort; | ||||
| int fSharedMem; | |||||
| char* fSharedName; | |||||
| bool recursiveBootstrapRegister(int counter); | |||||
| protected: | protected: | ||||
| void BuildName(const char* name, const char* server_name, char* res, int size); | void BuildName(const char* name, const char* server_name, char* res, int size); | ||||
| public: | public: | ||||
| JackMachSemaphore():JackSynchro(), fSemaphore(0), fBootPort(0) | |||||
| JackMachSemaphore():JackSynchro(), fSemaphore(0), fBootPort(0), fSharedMem(0), fSharedName(NULL) | |||||
| {} | {} | ||||
| bool Signal(); | bool Signal(); | ||||
| @@ -21,7 +21,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| #include "JackConstants.h" | #include "JackConstants.h" | ||||
| #include "JackTools.h" | #include "JackTools.h" | ||||
| #include "JackError.h" | #include "JackError.h" | ||||
| #include <fcntl.h> | |||||
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <sys/mman.h> | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| @@ -30,7 +32,12 @@ void JackMachSemaphore::BuildName(const char* client_name, const char* server_na | |||||
| { | { | ||||
| char ext_client_name[SYNC_MAX_NAME_SIZE + 1]; | char ext_client_name[SYNC_MAX_NAME_SIZE + 1]; | ||||
| JackTools::RewriteName(client_name, ext_client_name); | JackTools::RewriteName(client_name, ext_client_name); | ||||
| snprintf(res, size, "jack_mach_sem.%d_%s_%s", JackTools::GetUID(), server_name, ext_client_name); | |||||
| // make the name as small as possible, as macos has issues with long semaphore names | |||||
| if (strcmp(server_name, "default") == 0) | |||||
| server_name = ""; | |||||
| snprintf(res, std::min(size, 32), "js%d.%s%s", JackTools::GetUID(), server_name, ext_client_name); | |||||
| } | } | ||||
| bool JackMachSemaphore::Signal() | bool JackMachSemaphore::Signal() | ||||
| @@ -102,6 +109,39 @@ bool JackMachSemaphore::TimedWait(long usec) | |||||
| return (res == KERN_SUCCESS); | return (res == KERN_SUCCESS); | ||||
| } | } | ||||
| bool JackMachSemaphore::recursiveBootstrapRegister(int counter) | |||||
| { | |||||
| if (counter == 99) | |||||
| return false; | |||||
| kern_return_t res; | |||||
| if ((res = bootstrap_register(fBootPort, fSharedName, fSemaphore)) != KERN_SUCCESS) { | |||||
| switch (res) { | |||||
| case BOOTSTRAP_SUCCESS : | |||||
| break; | |||||
| case BOOTSTRAP_NOT_PRIVILEGED : | |||||
| case BOOTSTRAP_NAME_IN_USE : | |||||
| case BOOTSTRAP_UNKNOWN_SERVICE : | |||||
| case BOOTSTRAP_SERVICE_ACTIVE : | |||||
| // try again with next suffix | |||||
| snprintf(fSharedName, sizeof(fName), "%s-%d", fName, ++counter); | |||||
| return recursiveBootstrapRegister(counter); | |||||
| break; | |||||
| default : | |||||
| jack_log("bootstrap_register() err = %i:%s", res, bootstrap_strerror(res)); | |||||
| break; | |||||
| } | |||||
| jack_error("Allocate: can't check in mach semaphore name = %s err = %i:%s", fName, res, bootstrap_strerror(res)); | |||||
| return false; | |||||
| } | |||||
| return true; | |||||
| } | |||||
| // Server side : publish the semaphore in the global namespace | // Server side : publish the semaphore in the global namespace | ||||
| bool JackMachSemaphore::Allocate(const char* name, const char* server_name, int value) | bool JackMachSemaphore::Allocate(const char* name, const char* server_name, int value) | ||||
| { | { | ||||
| @@ -116,34 +156,39 @@ bool JackMachSemaphore::Allocate(const char* name, const char* server_name, int | |||||
| } | } | ||||
| } | } | ||||
| if ((res = semaphore_create(task, &fSemaphore, SYNC_POLICY_FIFO, value)) != KERN_SUCCESS) { | |||||
| jack_error("Allocate: can create semaphore err = %s", mach_error_string(res)); | |||||
| if ((fSharedMem = shm_open(fName, O_CREAT | O_RDWR, 0777)) < 0) { | |||||
| jack_error("Allocate: can't check in mach shared name = %s err = %s", fName, strerror(errno)); | |||||
| return false; | return false; | ||||
| } | } | ||||
| if ((res = bootstrap_register(fBootPort, fName, fSemaphore)) != KERN_SUCCESS) { | |||||
| jack_error("Allocate: can't check in mach semaphore name = %s err = %s", fName, mach_error_string(res)); | |||||
| switch (res) { | |||||
| case BOOTSTRAP_SUCCESS : | |||||
| /* service not currently registered, "a good thing" (tm) */ | |||||
| break; | |||||
| case BOOTSTRAP_NOT_PRIVILEGED : | |||||
| jack_log("bootstrap_register(): bootstrap not privileged"); | |||||
| break; | |||||
| case BOOTSTRAP_SERVICE_ACTIVE : | |||||
| jack_log("bootstrap_register(): bootstrap service active"); | |||||
| break; | |||||
| default : | |||||
| jack_log("bootstrap_register() err = %s", mach_error_string(res)); | |||||
| break; | |||||
| struct stat st; | |||||
| if (fstat(fSharedMem, &st) != -1 && st.st_size == 0) { | |||||
| if (ftruncate(fSharedMem, SYNC_MAX_NAME_SIZE+1) != 0) { | |||||
| jack_error("Allocate: can't set shared memory size in mach shared name = %s err = %s", fName, strerror(errno)); | |||||
| return false; | |||||
| } | } | ||||
| } | |||||
| char* const sharedName = (char*)mmap(NULL, SYNC_MAX_NAME_SIZE+1, PROT_READ|PROT_WRITE, MAP_SHARED, fSharedMem, 0); | |||||
| if (sharedName == NULL || sharedName == MAP_FAILED) { | |||||
| jack_error("Allocate: can't check in mach shared name = %s err = %s", fName, strerror(errno)); | |||||
| close(fSharedMem); | |||||
| fSharedMem = -1; | |||||
| shm_unlink(fName); | |||||
| return false; | |||||
| } | |||||
| fSharedName = sharedName; | |||||
| strcpy(fSharedName, fName); | |||||
| if ((res = semaphore_create(task, &fSemaphore, SYNC_POLICY_FIFO, value)) != KERN_SUCCESS) { | |||||
| jack_error("Allocate: can create semaphore err = %i:%s", res, mach_error_string(res)); | |||||
| return false; | return false; | ||||
| } | } | ||||
| jack_log("JackMachSemaphore::Allocate name = %s", fName); | jack_log("JackMachSemaphore::Allocate name = %s", fName); | ||||
| return true; | |||||
| return recursiveBootstrapRegister(1); | |||||
| } | } | ||||
| // Client side : get the published semaphore from server | // Client side : get the published semaphore from server | ||||
| @@ -152,6 +197,12 @@ bool JackMachSemaphore::ConnectInput(const char* name, const char* server_name) | |||||
| BuildName(name, server_name, fName, sizeof(fName)); | BuildName(name, server_name, fName, sizeof(fName)); | ||||
| kern_return_t res; | kern_return_t res; | ||||
| // Temporary... | |||||
| if (fSharedName) { | |||||
| jack_log("Already connected name = %s", name); | |||||
| return true; | |||||
| } | |||||
| if (fBootPort == 0) { | if (fBootPort == 0) { | ||||
| if ((res = task_get_bootstrap_port(mach_task_self(), &fBootPort)) != KERN_SUCCESS) { | if ((res = task_get_bootstrap_port(mach_task_self(), &fBootPort)) != KERN_SUCCESS) { | ||||
| jack_error("Connect: can't find bootstrap port err = %s", mach_error_string(res)); | jack_error("Connect: can't find bootstrap port err = %s", mach_error_string(res)); | ||||
| @@ -159,11 +210,29 @@ bool JackMachSemaphore::ConnectInput(const char* name, const char* server_name) | |||||
| } | } | ||||
| } | } | ||||
| if ((res = bootstrap_look_up(fBootPort, fName, &fSemaphore)) != KERN_SUCCESS) { | |||||
| jack_error("Connect: can't find mach semaphore name = %s err = %s", fName, mach_error_string(res)); | |||||
| if ((fSharedMem = shm_open(fName, O_RDWR, 0)) < 0) { | |||||
| jack_error("Connect: can't connect mach shared name = %s err = %s", fName, strerror(errno)); | |||||
| return false; | return false; | ||||
| } | } | ||||
| char* const sharedName = (char*)mmap(NULL, SYNC_MAX_NAME_SIZE+1, PROT_READ|PROT_WRITE, MAP_SHARED, fSharedMem, 0); | |||||
| if (sharedName == NULL || sharedName == MAP_FAILED) { | |||||
| jack_error("Connect: can't connect mach shared name = %s err = %s", fName, strerror(errno)); | |||||
| close(fSharedMem); | |||||
| fSharedMem = -1; | |||||
| return false; | |||||
| } | |||||
| if ((res = bootstrap_look_up(fBootPort, sharedName, &fSemaphore)) != KERN_SUCCESS) { | |||||
| jack_error("Connect: can't find mach semaphore name = %s, sname = %s, err = %s", fName, sharedName, bootstrap_strerror(res)); | |||||
| close(fSharedMem); | |||||
| fSharedMem = -1; | |||||
| return false; | |||||
| } | |||||
| fSharedName = sharedName; | |||||
| jack_log("JackMachSemaphore::Connect name = %s ", fName); | jack_log("JackMachSemaphore::Connect name = %s ", fName); | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -184,7 +253,16 @@ bool JackMachSemaphore::Disconnect() | |||||
| jack_log("JackMachSemaphore::Disconnect name = %s", fName); | jack_log("JackMachSemaphore::Disconnect name = %s", fName); | ||||
| fSemaphore = 0; | fSemaphore = 0; | ||||
| } | } | ||||
| // Nothing to do | |||||
| if (!fSharedName) { | |||||
| return true; | |||||
| } | |||||
| munmap(fSharedName, SYNC_MAX_NAME_SIZE+1); | |||||
| fSharedName = NULL; | |||||
| close(fSharedMem); | |||||
| fSharedMem = -1; | |||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -202,6 +280,18 @@ void JackMachSemaphore::Destroy() | |||||
| } else { | } else { | ||||
| jack_error("JackMachSemaphore::Destroy semaphore < 0"); | jack_error("JackMachSemaphore::Destroy semaphore < 0"); | ||||
| } | } | ||||
| if (!fSharedName) { | |||||
| return; | |||||
| } | |||||
| munmap(fSharedName, SYNC_MAX_NAME_SIZE+1); | |||||
| fSharedName = NULL; | |||||
| close(fSharedMem); | |||||
| fSharedMem = -1; | |||||
| shm_unlink(fName); | |||||
| } | } | ||||
| } // end of namespace | } // end of namespace | ||||
| @@ -41,13 +41,6 @@ namespace Jack | |||||
| class JackSocketNotifyChannel; | class JackSocketNotifyChannel; | ||||
| class JackNetUnixSocket; | class JackNetUnixSocket; | ||||
| #ifdef MY_TARGET_OS_IPHONE | |||||
| class JackClient; | |||||
| class JackGraphManager; | |||||
| class JackEngineControl; | |||||
| class JackSynchro; | |||||
| #endif | |||||
| } | } | ||||
| /* __JackPlatformMutex__ */ | /* __JackPlatformMutex__ */ | ||||
| @@ -59,21 +52,13 @@ namespace Jack { typedef JackPosixMutex JackMutex; } | |||||
| namespace Jack { typedef JackMachThread JackThread; } | namespace Jack { typedef JackMachThread JackThread; } | ||||
| /* __JackPlatformSynchro__ client activation */ | /* __JackPlatformSynchro__ client activation */ | ||||
| #ifndef MY_TARGET_OS_IPHONE | |||||
| //#include "JackMachSemaphore.h" | |||||
| //namespace Jack { typedef JackMachSemaphore JackSynchro; } | |||||
| #include "JackPosixSemaphore.h" | |||||
| namespace Jack { typedef JackPosixSemaphore JackSynchro; } | |||||
| #endif | |||||
| #include "JackMachSemaphore.h" | |||||
| namespace Jack { typedef JackMachSemaphore JackSynchro; } | |||||
| /* __JackPlatformProcessSync__ */ | /* __JackPlatformProcessSync__ */ | ||||
| #include "JackPosixProcessSync.h" | #include "JackPosixProcessSync.h" | ||||
| namespace Jack { typedef JackPosixProcessSync JackProcessSync; } | namespace Jack { typedef JackPosixProcessSync JackProcessSync; } | ||||
| #ifndef MY_TARGET_OS_IPHONE | |||||
| /* __JackPlatformServerChannel__ */ | /* __JackPlatformServerChannel__ */ | ||||
| #include "JackSocketServerChannel.h" | #include "JackSocketServerChannel.h" | ||||
| namespace Jack { typedef JackSocketServerChannel JackServerChannel; } | namespace Jack { typedef JackSocketServerChannel JackServerChannel; } | ||||
| @@ -89,7 +74,6 @@ namespace Jack { typedef JackSocketServerNotifyChannel JackServerNotifyChannel; | |||||
| /* __JackPlatformNotifyChannel__ */ | /* __JackPlatformNotifyChannel__ */ | ||||
| #include "JackSocketNotifyChannel.h" | #include "JackSocketNotifyChannel.h" | ||||
| namespace Jack { typedef JackSocketNotifyChannel JackNotifyChannel; } | namespace Jack { typedef JackSocketNotifyChannel JackNotifyChannel; } | ||||
| #endif | |||||
| /* __JackPlatformNetSocket__ */ | /* __JackPlatformNetSocket__ */ | ||||
| #include "JackNetUnixSocket.h" | #include "JackNetUnixSocket.h" | ||||
| @@ -0,0 +1,54 @@ | |||||
| #!/bin/bash | |||||
| set -e | |||||
| cd $(dirname ${0}) | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| installed_prefix="${1}" | |||||
| if [ -z "${installed_prefix}" ]; then | |||||
| echo "usage: ${0} <installed_prefix>" | |||||
| exit 1 | |||||
| fi | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| VERSION=$(cat ../wscript | awk 'sub("VERSION=","")' | tr -d "'") | |||||
| rm -f jack2-osx-root.pkg | |||||
| rm -f jack2-osx-${VERSION}.pkg | |||||
| rm -f package.xml | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| pkgbuild \ | |||||
| --identifier org.jackaudio.jack2 \ | |||||
| --install-location "/usr/local/" \ | |||||
| --root "${installed_prefix}/" \ | |||||
| jack2-osx-root.pkg | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html | |||||
| pushd "${installed_prefix}" | |||||
| mkdir -p share/jack2 | |||||
| touch share/jack2/jack2-osx-files.txt | |||||
| find -sL . -type f | awk 'sub("./","/usr/local/")' > share/jack2/jack2-osx-files.txt | |||||
| popd | |||||
| sed -e "s|@CURDIR@|${PWD}|" package.xml.in > package.xml | |||||
| cat package-welcome.txt.in "${installed_prefix}/share/jack2/jack2-osx-files.txt" > package-welcome.txt | |||||
| productbuild \ | |||||
| --distribution package.xml \ | |||||
| --identifier org.jackaudio.jack2 \ | |||||
| --package-path "${PWD}" \ | |||||
| --version ${VERSION} \ | |||||
| jack2-osx-${VERSION}.pkg | |||||
| rm jack2-osx-root.pkg package.xml package-welcome.txt | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| @@ -1,30 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||||
| <plist version="1.0"> | |||||
| <dict> | |||||
| <key>CFBundleDevelopmentRegion</key> | |||||
| <string>English</string> | |||||
| <key>CFBundleDisplayName</key> | |||||
| <string>${PRODUCT_NAME}</string> | |||||
| <key>CFBundleExecutable</key> | |||||
| <string>${EXECUTABLE_NAME}</string> | |||||
| <key>CFBundleIconFile</key> | |||||
| <string></string> | |||||
| <key>CFBundleIdentifier</key> | |||||
| <string>fr.grame.iGrame.iPhoneFaustNet</string> | |||||
| <key>CFBundleInfoDictionaryVersion</key> | |||||
| <string>6.0</string> | |||||
| <key>CFBundleName</key> | |||||
| <string>${PRODUCT_NAME}</string> | |||||
| <key>CFBundlePackageType</key> | |||||
| <string>APPL</string> | |||||
| <key>CFBundleSignature</key> | |||||
| <string>????</string> | |||||
| <key>CFBundleVersion</key> | |||||
| <string>1.0</string> | |||||
| <key>LSRequiresIPhoneOS</key> | |||||
| <true/> | |||||
| <key>NSMainNibFile</key> | |||||
| <string>MainWindow</string> | |||||
| </dict> | |||||
| </plist> | |||||
| @@ -1,440 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> | |||||
| <data> | |||||
| <int key="IBDocument.SystemTarget">528</int> | |||||
| <string key="IBDocument.SystemVersion">10C540</string> | |||||
| <string key="IBDocument.InterfaceBuilderVersion">740</string> | |||||
| <string key="IBDocument.AppKitVersion">1038.25</string> | |||||
| <string key="IBDocument.HIToolboxVersion">458.00</string> | |||||
| <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> | |||||
| <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> | |||||
| <string key="NS.object.0">62</string> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <integer value="2"/> | |||||
| </object> | |||||
| <object class="NSArray" key="IBDocument.PluginDependencies"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> | |||||
| </object> | |||||
| <object class="NSMutableDictionary" key="IBDocument.Metadata"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="NSArray" key="dict.sortedKeys" id="0"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| </object> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBProxyObject" id="841351856"> | |||||
| <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> | |||||
| </object> | |||||
| <object class="IBProxyObject" id="427554174"> | |||||
| <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> | |||||
| </object> | |||||
| <object class="IBUICustomObject" id="664661524"/> | |||||
| <object class="IBUIWindow" id="380026005"> | |||||
| <reference key="NSNextResponder"/> | |||||
| <int key="NSvFlags">1316</int> | |||||
| <object class="NSMutableArray" key="NSSubviews"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBUILabel" id="622412730"> | |||||
| <reference key="NSNextResponder" ref="380026005"/> | |||||
| <int key="NSvFlags">1316</int> | |||||
| <string key="NSFrame">{{25, 40}, {267, 21}}</string> | |||||
| <reference key="NSSuperview" ref="380026005"/> | |||||
| <bool key="IBUIOpaque">NO</bool> | |||||
| <bool key="IBUIClipsSubviews">YES</bool> | |||||
| <bool key="IBUIUserInteractionEnabled">NO</bool> | |||||
| <string key="IBUIText">NetJack : client on JACK server </string> | |||||
| <object class="NSFont" key="IBUIFont"> | |||||
| <string key="NSName">Helvetica-Bold</string> | |||||
| <double key="NSSize">17</double> | |||||
| <int key="NSfFlags">16</int> | |||||
| </object> | |||||
| <object class="NSColor" key="IBUITextColor"> | |||||
| <int key="NSColorSpace">1</int> | |||||
| <bytes key="NSRGB">MCAwIDAAA</bytes> | |||||
| </object> | |||||
| <nil key="IBUIHighlightedColor"/> | |||||
| <int key="IBUIBaselineAdjustment">1</int> | |||||
| <float key="IBUIMinimumFontSize">10</float> | |||||
| </object> | |||||
| </object> | |||||
| <object class="NSPSMatrix" key="NSFrameMatrix"/> | |||||
| <string key="NSFrameSize">{320, 480}</string> | |||||
| <reference key="NSSuperview"/> | |||||
| <object class="NSColor" key="IBUIBackgroundColor"> | |||||
| <int key="NSColorSpace">1</int> | |||||
| <bytes key="NSRGB">MSAxIDEAA</bytes> | |||||
| </object> | |||||
| <bool key="IBUIOpaque">NO</bool> | |||||
| <bool key="IBUIClearsContextBeforeDrawing">NO</bool> | |||||
| <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBObjectContainer" key="IBDocument.Objects"> | |||||
| <object class="NSMutableArray" key="connectionRecords"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBConnectionRecord"> | |||||
| <object class="IBCocoaTouchOutletConnection" key="connection"> | |||||
| <string key="label">delegate</string> | |||||
| <reference key="source" ref="841351856"/> | |||||
| <reference key="destination" ref="664661524"/> | |||||
| </object> | |||||
| <int key="connectionID">4</int> | |||||
| </object> | |||||
| <object class="IBConnectionRecord"> | |||||
| <object class="IBCocoaTouchOutletConnection" key="connection"> | |||||
| <string key="label">window</string> | |||||
| <reference key="source" ref="664661524"/> | |||||
| <reference key="destination" ref="380026005"/> | |||||
| </object> | |||||
| <int key="connectionID">5</int> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBMutableOrderedSet" key="objectRecords"> | |||||
| <object class="NSArray" key="orderedObjects"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">0</int> | |||||
| <reference key="object" ref="0"/> | |||||
| <reference key="children" ref="1000"/> | |||||
| <nil key="parent"/> | |||||
| </object> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">2</int> | |||||
| <reference key="object" ref="380026005"/> | |||||
| <object class="NSMutableArray" key="children"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <reference ref="622412730"/> | |||||
| </object> | |||||
| <reference key="parent" ref="0"/> | |||||
| </object> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">-1</int> | |||||
| <reference key="object" ref="841351856"/> | |||||
| <reference key="parent" ref="0"/> | |||||
| <string key="objectName">File's Owner</string> | |||||
| </object> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">3</int> | |||||
| <reference key="object" ref="664661524"/> | |||||
| <reference key="parent" ref="0"/> | |||||
| </object> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">-2</int> | |||||
| <reference key="object" ref="427554174"/> | |||||
| <reference key="parent" ref="0"/> | |||||
| </object> | |||||
| <object class="IBObjectRecord"> | |||||
| <int key="objectID">10</int> | |||||
| <reference key="object" ref="622412730"/> | |||||
| <reference key="parent" ref="380026005"/> | |||||
| </object> | |||||
| </object> | |||||
| </object> | |||||
| <object class="NSMutableDictionary" key="flattenedProperties"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="NSArray" key="dict.sortedKeys"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <string>-1.CustomClassName</string> | |||||
| <string>-2.CustomClassName</string> | |||||
| <string>10.IBPluginDependency</string> | |||||
| <string>2.IBAttributePlaceholdersKey</string> | |||||
| <string>2.IBEditorWindowLastContentRect</string> | |||||
| <string>2.IBPluginDependency</string> | |||||
| <string>2.IBUserGuides</string> | |||||
| <string>3.CustomClassName</string> | |||||
| <string>3.IBPluginDependency</string> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <string>UIApplication</string> | |||||
| <string>UIResponder</string> | |||||
| <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> | |||||
| <object class="NSMutableDictionary"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <reference key="dict.sortedKeys" ref="0"/> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| </object> | |||||
| </object> | |||||
| <string>{{366, 320}, {320, 480}}</string> | |||||
| <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> | |||||
| <object class="NSMutableArray"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBUserGuide"> | |||||
| <reference key="view" ref="380026005"/> | |||||
| <double key="location">153.5</double> | |||||
| <int key="affinity">0</int> | |||||
| </object> | |||||
| </object> | |||||
| <string>iPhoneNetAppDelegate</string> | |||||
| <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="NSMutableDictionary" key="unlocalizedProperties"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <reference key="dict.sortedKeys" ref="0"/> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| </object> | |||||
| </object> | |||||
| <nil key="activeLocalization"/> | |||||
| <object class="NSMutableDictionary" key="localizations"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <reference key="dict.sortedKeys" ref="0"/> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| </object> | |||||
| </object> | |||||
| <nil key="sourceID"/> | |||||
| <int key="maxID">11</int> | |||||
| </object> | |||||
| <object class="IBClassDescriber" key="IBDocument.Classes"> | |||||
| <object class="NSMutableArray" key="referencedPartialClassDescriptions"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">iPhoneNetAppDelegate</string> | |||||
| <string key="superclassName">NSObject</string> | |||||
| <object class="NSMutableDictionary" key="outlets"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="NSArray" key="dict.sortedKeys"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <string>navigationController</string> | |||||
| <string>window</string> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="dict.values"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <string>UINavigationController</string> | |||||
| <string>UIWindow</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBProjectSource</string> | |||||
| <string key="minorKey">iPhoneNetAppDelegate.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">iPhoneNetAppDelegate</string> | |||||
| <string key="superclassName">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBUserSource</string> | |||||
| <string key="minorKey"/> | |||||
| </object> | |||||
| </object> | |||||
| </object> | |||||
| <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> | |||||
| <bool key="EncodedWithXMLCoder">YES</bool> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSError.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSPort.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSStream.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIApplication</string> | |||||
| <string key="superclassName">UIResponder</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UIApplication.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UILabel</string> | |||||
| <string key="superclassName">UIView</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UILabel.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UINavigationController</string> | |||||
| <string key="superclassName">UIViewController</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier" id="325457853"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIResponder</string> | |||||
| <string key="superclassName">NSObject</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UISearchBar</string> | |||||
| <string key="superclassName">UIView</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIView</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UITextField.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIView</string> | |||||
| <string key="superclassName">UIResponder</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UIView.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIViewController</string> | |||||
| <reference key="sourceIdentifier" ref="325457853"/> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIViewController</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIViewController</string> | |||||
| <string key="superclassName">UIResponder</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string> | |||||
| </object> | |||||
| </object> | |||||
| <object class="IBPartialClassDescription"> | |||||
| <string key="className">UIWindow</string> | |||||
| <string key="superclassName">UIView</string> | |||||
| <object class="IBClassDescriptionSource" key="sourceIdentifier"> | |||||
| <string key="majorKey">IBFrameworkSource</string> | |||||
| <string key="minorKey">UIKit.framework/Headers/UIWindow.h</string> | |||||
| </object> | |||||
| </object> | |||||
| </object> | |||||
| </object> | |||||
| <int key="IBDocument.localizationMode">0</int> | |||||
| <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies"> | |||||
| <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> | |||||
| <integer value="528" key="NS.object.0"/> | |||||
| </object> | |||||
| <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> | |||||
| <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> | |||||
| <integer value="544" key="NS.object.0"/> | |||||
| </object> | |||||
| <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> | |||||
| <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> | |||||
| <integer value="3000" key="NS.object.0"/> | |||||
| </object> | |||||
| <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> | |||||
| <string key="IBDocument.LastKnownRelativeProjectPath">iPhoneNet.xcodeproj</string> | |||||
| <int key="IBDocument.defaultPropertyAccessControl">3</int> | |||||
| <string key="IBCocoaTouchPluginVersion">3.1</string> | |||||
| </data> | |||||
| </archive> | |||||
| @@ -1,35 +0,0 @@ | |||||
| #include "JackAudioQueueAdapter.h" | |||||
| #define CHANNELS 2 | |||||
| static void DSPcompute(int count, float** input, float** output) | |||||
| { | |||||
| for (int i = 0; i < CHANNELS; i++) { | |||||
| memcpy(output[i], input[i], count * sizeof(float)); | |||||
| } | |||||
| } | |||||
| int main(int argc, char *argv[]) { | |||||
| NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; | |||||
| Jack::JackAudioQueueAdapter audio(2, 2, 512, 44100, DSPcompute); | |||||
| if (audio.Open() < 0) { | |||||
| fprintf(stderr, "Cannot open audio\n"); | |||||
| return 1; | |||||
| } | |||||
| // Hang around forever... | |||||
| while(1) CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.25, false); | |||||
| int retVal = UIApplicationMain(argc, argv, nil, nil); | |||||
| [pool release]; | |||||
| if (audio.Close() < 0) { | |||||
| fprintf(stderr, "Cannot close audio\n"); | |||||
| } | |||||
| return retVal; | |||||
| } | |||||
| @@ -1,750 +0,0 @@ | |||||
| //----------------------------------------------------- | |||||
| // name: "freeverb" | |||||
| // version: "1.0" | |||||
| // author: "Grame" | |||||
| // license: "BSD" | |||||
| // copyright: "(c)GRAME 2006" | |||||
| // | |||||
| // Code generated with Faust 0.9.9.5b2 (http://faust.grame.fr) | |||||
| //----------------------------------------------------- | |||||
| /* link with */ | |||||
| /* link with */ | |||||
| #include <math.h> | |||||
| /* link with */ | |||||
| #include <stdlib.h> | |||||
| #include <stdio.h> | |||||
| #include <string.h> | |||||
| #include <limits.h> | |||||
| #include <math.h> | |||||
| #include <errno.h> | |||||
| #include <time.h> | |||||
| #include <sys/ioctl.h> | |||||
| #include <unistd.h> | |||||
| #include <fcntl.h> | |||||
| #include <pwd.h> | |||||
| #include <sys/types.h> | |||||
| #include <assert.h> | |||||
| #include <pthread.h> | |||||
| #include <sys/wait.h> | |||||
| #include <libgen.h> | |||||
| #include <jack/net.h> | |||||
| #include <list> | |||||
| #include <vector> | |||||
| #include <iostream> | |||||
| #include <fstream> | |||||
| #include <stack> | |||||
| #include <list> | |||||
| #include <map> | |||||
| #include "JackAudioQueueAdapter.h" | |||||
| using namespace std; | |||||
| // On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) | |||||
| // flags to avoid costly denormals | |||||
| #ifdef __SSE__ | |||||
| #include <xmmintrin.h> | |||||
| #ifdef __SSE2__ | |||||
| #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) | |||||
| #else | |||||
| #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) | |||||
| #endif | |||||
| #else | |||||
| #define AVOIDDENORMALS | |||||
| #endif | |||||
| //#define BENCHMARKMODE | |||||
| struct Meta : map<const char*, const char*> | |||||
| { | |||||
| void declare (const char* key, const char* value) { (*this)[key]=value; } | |||||
| }; | |||||
| #define max(x,y) (((x)>(y)) ? (x) : (y)) | |||||
| #define min(x,y) (((x)<(y)) ? (x) : (y)) | |||||
| inline int lsr (int x, int n) { return int(((unsigned int)x) >> n); } | |||||
| inline int int2pow2 (int x) { int r = 0; while ((1<<r)<x) r++; return r; } | |||||
| /****************************************************************************** | |||||
| ******************************************************************************* | |||||
| VECTOR INTRINSICS | |||||
| ******************************************************************************* | |||||
| *******************************************************************************/ | |||||
| /****************************************************************************** | |||||
| ******************************************************************************* | |||||
| USER INTERFACE | |||||
| ******************************************************************************* | |||||
| *******************************************************************************/ | |||||
| class UI | |||||
| { | |||||
| bool fStopped; | |||||
| public: | |||||
| UI() : fStopped(false) {} | |||||
| virtual ~UI() {} | |||||
| // -- active widgets | |||||
| virtual void addButton(const char* label, float* zone) = 0; | |||||
| virtual void addToggleButton(const char* label, float* zone) = 0; | |||||
| virtual void addCheckButton(const char* label, float* zone) = 0; | |||||
| virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; | |||||
| virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) = 0; | |||||
| virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) = 0; | |||||
| // -- passive widgets | |||||
| virtual void addNumDisplay(const char* label, float* zone, int precision) = 0; | |||||
| virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) = 0; | |||||
| virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) = 0; | |||||
| virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) = 0; | |||||
| // -- frames and labels | |||||
| virtual void openFrameBox(const char* label) = 0; | |||||
| virtual void openTabBox(const char* label) = 0; | |||||
| virtual void openHorizontalBox(const char* label) = 0; | |||||
| virtual void openVerticalBox(const char* label) = 0; | |||||
| virtual void closeBox() = 0; | |||||
| virtual void show() = 0; | |||||
| virtual void run() = 0; | |||||
| void stop() { fStopped = true; } | |||||
| bool stopped() { return fStopped; } | |||||
| virtual void declare(float* zone, const char* key, const char* value) {} | |||||
| }; | |||||
| struct param { | |||||
| float* fZone; float fMin; float fMax; | |||||
| param(float* z, float a, float b) : fZone(z), fMin(a), fMax(b) {} | |||||
| }; | |||||
| class CMDUI : public UI | |||||
| { | |||||
| int fArgc; | |||||
| char** fArgv; | |||||
| stack<string> fPrefix; | |||||
| map<string, param> fKeyParam; | |||||
| void addOption(const char* label, float* zone, float min, float max) | |||||
| { | |||||
| string fullname = fPrefix.top() + label; | |||||
| fKeyParam.insert(make_pair(fullname, param(zone, min, max))); | |||||
| } | |||||
| void openAnyBox(const char* label) | |||||
| { | |||||
| string prefix; | |||||
| if (label && label[0]) { | |||||
| prefix = fPrefix.top() + "-" + label; | |||||
| } else { | |||||
| prefix = fPrefix.top(); | |||||
| } | |||||
| fPrefix.push(prefix); | |||||
| } | |||||
| public: | |||||
| CMDUI(int argc, char *argv[]) : UI(), fArgc(argc), fArgv(argv) { fPrefix.push("--"); } | |||||
| virtual ~CMDUI() {} | |||||
| virtual void addButton(const char* label, float* zone) {}; | |||||
| virtual void addToggleButton(const char* label, float* zone) {}; | |||||
| virtual void addCheckButton(const char* label, float* zone) {}; | |||||
| virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) | |||||
| { | |||||
| addOption(label,zone,min,max); | |||||
| } | |||||
| virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) | |||||
| { | |||||
| addOption(label,zone,min,max); | |||||
| } | |||||
| virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) | |||||
| { | |||||
| addOption(label,zone,min,max); | |||||
| } | |||||
| // -- passive widgets | |||||
| virtual void addNumDisplay(const char* label, float* zone, int precision) {} | |||||
| virtual void addTextDisplay(const char* label, float* zone, char* names[], float min, float max) {} | |||||
| virtual void addHorizontalBargraph(const char* label, float* zone, float min, float max) {} | |||||
| virtual void addVerticalBargraph(const char* label, float* zone, float min, float max) {} | |||||
| virtual void openFrameBox(const char* label) { openAnyBox(label); } | |||||
| virtual void openTabBox(const char* label) { openAnyBox(label); } | |||||
| virtual void openHorizontalBox(const char* label) { openAnyBox(label); } | |||||
| virtual void openVerticalBox(const char* label) { openAnyBox(label); } | |||||
| virtual void closeBox() { fPrefix.pop(); } | |||||
| virtual void show() {} | |||||
| virtual void run() | |||||
| { | |||||
| char c; | |||||
| printf("Type 'q' to quit\n"); | |||||
| while ((c = getchar()) != 'q') { | |||||
| sleep(1); | |||||
| } | |||||
| } | |||||
| void print() | |||||
| { | |||||
| map<string, param>::iterator i; | |||||
| cout << fArgc << "\n"; | |||||
| cout << fArgv[0] << " option list : "; | |||||
| for (i = fKeyParam.begin(); i != fKeyParam.end(); i++) { | |||||
| cout << "[ " << i->first << " " << i->second.fMin << ".." << i->second.fMax <<" ] "; | |||||
| } | |||||
| } | |||||
| void process_command() | |||||
| { | |||||
| map<string, param>::iterator p; | |||||
| for (int i = 1; i < fArgc; i++) { | |||||
| if (fArgv[i][0] == '-') { | |||||
| p = fKeyParam.find(fArgv[i]); | |||||
| if (p == fKeyParam.end()) { | |||||
| cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; | |||||
| print(); | |||||
| exit(1); | |||||
| } | |||||
| char* end; | |||||
| *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); | |||||
| i++; | |||||
| } | |||||
| } | |||||
| } | |||||
| void process_init() | |||||
| { | |||||
| map<string, param>::iterator p; | |||||
| for (int i = 1; i < fArgc; i++) { | |||||
| if (fArgv[i][0] == '-') { | |||||
| p = fKeyParam.find(fArgv[i]); | |||||
| if (p == fKeyParam.end()) { | |||||
| cout << fArgv[0] << " : unrecognized option " << fArgv[i] << "\n"; | |||||
| exit(1); | |||||
| } | |||||
| char* end; | |||||
| *(p->second.fZone) = float(strtod(fArgv[i+1], &end)); | |||||
| i++; | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | |||||
| //---------------------------------------------------------------- | |||||
| // Signal processor definition | |||||
| //---------------------------------------------------------------- | |||||
| class dsp { | |||||
| protected: | |||||
| int fSamplingFreq; | |||||
| public: | |||||
| dsp() {} | |||||
| virtual ~dsp() {} | |||||
| virtual int getNumInputs() = 0; | |||||
| virtual int getNumOutputs() = 0; | |||||
| virtual void buildUserInterface(UI* interface) = 0; | |||||
| virtual void init(int samplingRate) = 0; | |||||
| virtual void compute(int len, float** inputs, float** outputs) = 0; | |||||
| virtual void conclude() {} | |||||
| }; | |||||
| //---------------------------------------------------------------------------- | |||||
| // FAUST generated code | |||||
| //---------------------------------------------------------------------------- | |||||
| class mydsp : public dsp { | |||||
| private: | |||||
| float fslider0; | |||||
| float fRec9[2]; | |||||
| float fslider1; | |||||
| int IOTA; | |||||
| float fVec0[2048]; | |||||
| float fRec8[2]; | |||||
| float fRec11[2]; | |||||
| float fVec1[2048]; | |||||
| float fRec10[2]; | |||||
| float fRec13[2]; | |||||
| float fVec2[2048]; | |||||
| float fRec12[2]; | |||||
| float fRec15[2]; | |||||
| float fVec3[2048]; | |||||
| float fRec14[2]; | |||||
| float fRec17[2]; | |||||
| float fVec4[2048]; | |||||
| float fRec16[2]; | |||||
| float fRec19[2]; | |||||
| float fVec5[2048]; | |||||
| float fRec18[2]; | |||||
| float fRec21[2]; | |||||
| float fVec6[2048]; | |||||
| float fRec20[2]; | |||||
| float fRec23[2]; | |||||
| float fVec7[2048]; | |||||
| float fRec22[2]; | |||||
| float fVec8[1024]; | |||||
| float fRec6[2]; | |||||
| float fVec9[512]; | |||||
| float fRec4[2]; | |||||
| float fVec10[512]; | |||||
| float fRec2[2]; | |||||
| float fVec11[256]; | |||||
| float fRec0[2]; | |||||
| float fslider2; | |||||
| float fRec33[2]; | |||||
| float fVec12[2048]; | |||||
| float fRec32[2]; | |||||
| float fRec35[2]; | |||||
| float fVec13[2048]; | |||||
| float fRec34[2]; | |||||
| float fRec37[2]; | |||||
| float fVec14[2048]; | |||||
| float fRec36[2]; | |||||
| float fRec39[2]; | |||||
| float fVec15[2048]; | |||||
| float fRec38[2]; | |||||
| float fRec41[2]; | |||||
| float fVec16[2048]; | |||||
| float fRec40[2]; | |||||
| float fRec43[2]; | |||||
| float fVec17[2048]; | |||||
| float fRec42[2]; | |||||
| float fRec45[2]; | |||||
| float fVec18[2048]; | |||||
| float fRec44[2]; | |||||
| float fRec47[2]; | |||||
| float fVec19[2048]; | |||||
| float fRec46[2]; | |||||
| float fVec20[1024]; | |||||
| float fRec30[2]; | |||||
| float fVec21[512]; | |||||
| float fRec28[2]; | |||||
| float fVec22[512]; | |||||
| float fRec26[2]; | |||||
| float fVec23[256]; | |||||
| float fRec24[2]; | |||||
| public: | |||||
| static void metadata(Meta* m) { | |||||
| m->declare("name", "freeverb"); | |||||
| m->declare("version", "1.0"); | |||||
| m->declare("author", "Grame"); | |||||
| m->declare("license", "BSD"); | |||||
| m->declare("copyright", "(c)GRAME 2006"); | |||||
| } | |||||
| virtual int getNumInputs() { return 2; } | |||||
| virtual int getNumOutputs() { return 2; } | |||||
| static void classInit(int samplingFreq) { | |||||
| } | |||||
| virtual void instanceInit(int samplingFreq) { | |||||
| fSamplingFreq = samplingFreq; | |||||
| fslider0 = 0.5f; | |||||
| for (int i=0; i<2; i++) fRec9[i] = 0; | |||||
| fslider1 = 0.8f; | |||||
| IOTA = 0; | |||||
| for (int i=0; i<2048; i++) fVec0[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec8[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec11[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec1[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec10[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec13[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec2[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec12[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec15[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec3[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec14[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec17[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec4[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec16[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec19[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec5[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec18[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec21[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec6[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec20[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec23[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec7[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec22[i] = 0; | |||||
| for (int i=0; i<1024; i++) fVec8[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec6[i] = 0; | |||||
| for (int i=0; i<512; i++) fVec9[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec4[i] = 0; | |||||
| for (int i=0; i<512; i++) fVec10[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec2[i] = 0; | |||||
| for (int i=0; i<256; i++) fVec11[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec0[i] = 0; | |||||
| fslider2 = 0.8f; | |||||
| for (int i=0; i<2; i++) fRec33[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec12[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec32[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec35[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec13[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec34[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec37[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec14[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec36[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec39[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec15[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec38[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec41[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec16[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec40[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec43[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec17[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec42[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec45[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec18[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec44[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec47[i] = 0; | |||||
| for (int i=0; i<2048; i++) fVec19[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec46[i] = 0; | |||||
| for (int i=0; i<1024; i++) fVec20[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec30[i] = 0; | |||||
| for (int i=0; i<512; i++) fVec21[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec28[i] = 0; | |||||
| for (int i=0; i<512; i++) fVec22[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec26[i] = 0; | |||||
| for (int i=0; i<256; i++) fVec23[i] = 0; | |||||
| for (int i=0; i<2; i++) fRec24[i] = 0; | |||||
| } | |||||
| virtual void init(int samplingFreq) { | |||||
| classInit(samplingFreq); | |||||
| instanceInit(samplingFreq); | |||||
| } | |||||
| virtual void buildUserInterface(UI* interface) { | |||||
| interface->openVerticalBox("Freeverb"); | |||||
| interface->addHorizontalSlider("Damp", &fslider0, 0.5f, 0.0f, 1.0f, 2.500000e-02f); | |||||
| interface->addHorizontalSlider("RoomSize", &fslider1, 0.8f, 0.0f, 1.0f, 2.500000e-02f); | |||||
| interface->addHorizontalSlider("Wet", &fslider2, 0.8f, 0.0f, 1.0f, 2.500000e-02f); | |||||
| interface->closeBox(); | |||||
| } | |||||
| virtual void compute (int count, float** input, float** output) { | |||||
| float fSlow0 = (0.4f * fslider0); | |||||
| float fSlow1 = (1 - fSlow0); | |||||
| float fSlow2 = (0.7f + (0.28f * fslider1)); | |||||
| float fSlow3 = fslider2; | |||||
| float fSlow4 = (1 - fSlow3); | |||||
| float* input0 = input[0]; | |||||
| float* input1 = input[1]; | |||||
| float* output0 = output[0]; | |||||
| float* output1 = output[1]; | |||||
| for (int i=0; i<count; i++) { | |||||
| fRec9[0] = ((fSlow1 * fRec8[1]) + (fSlow0 * fRec9[1])); | |||||
| float fTemp0 = input1[i]; | |||||
| float fTemp1 = input0[i]; | |||||
| float fTemp2 = (1.500000e-02f * (fTemp1 + fTemp0)); | |||||
| fVec0[IOTA&2047] = (fTemp2 + (fSlow2 * fRec9[0])); | |||||
| fRec8[0] = fVec0[(IOTA-1617)&2047]; | |||||
| fRec11[0] = ((fSlow1 * fRec10[1]) + (fSlow0 * fRec11[1])); | |||||
| fVec1[IOTA&2047] = (fTemp2 + (fSlow2 * fRec11[0])); | |||||
| fRec10[0] = fVec1[(IOTA-1557)&2047]; | |||||
| fRec13[0] = ((fSlow1 * fRec12[1]) + (fSlow0 * fRec13[1])); | |||||
| fVec2[IOTA&2047] = (fTemp2 + (fSlow2 * fRec13[0])); | |||||
| fRec12[0] = fVec2[(IOTA-1491)&2047]; | |||||
| fRec15[0] = ((fSlow1 * fRec14[1]) + (fSlow0 * fRec15[1])); | |||||
| fVec3[IOTA&2047] = (fTemp2 + (fSlow2 * fRec15[0])); | |||||
| fRec14[0] = fVec3[(IOTA-1422)&2047]; | |||||
| fRec17[0] = ((fSlow1 * fRec16[1]) + (fSlow0 * fRec17[1])); | |||||
| fVec4[IOTA&2047] = (fTemp2 + (fSlow2 * fRec17[0])); | |||||
| fRec16[0] = fVec4[(IOTA-1356)&2047]; | |||||
| fRec19[0] = ((fSlow1 * fRec18[1]) + (fSlow0 * fRec19[1])); | |||||
| fVec5[IOTA&2047] = (fTemp2 + (fSlow2 * fRec19[0])); | |||||
| fRec18[0] = fVec5[(IOTA-1277)&2047]; | |||||
| fRec21[0] = ((fSlow1 * fRec20[1]) + (fSlow0 * fRec21[1])); | |||||
| fVec6[IOTA&2047] = (fTemp2 + (fSlow2 * fRec21[0])); | |||||
| fRec20[0] = fVec6[(IOTA-1188)&2047]; | |||||
| fRec23[0] = ((fSlow1 * fRec22[1]) + (fSlow0 * fRec23[1])); | |||||
| fVec7[IOTA&2047] = (fTemp2 + (fSlow2 * fRec23[0])); | |||||
| fRec22[0] = fVec7[(IOTA-1116)&2047]; | |||||
| float fTemp3 = (((((((fRec22[0] + fRec20[0]) + fRec18[0]) + fRec16[0]) + fRec14[0]) + fRec12[0]) + fRec10[0]) + fRec8[0]); | |||||
| fVec8[IOTA&1023] = (fTemp3 + (0.5f * fRec6[1])); | |||||
| fRec6[0] = fVec8[(IOTA-556)&1023]; | |||||
| float fRec7 = (0 - (fTemp3 - fRec6[1])); | |||||
| fVec9[IOTA&511] = (fRec7 + (0.5f * fRec4[1])); | |||||
| fRec4[0] = fVec9[(IOTA-441)&511]; | |||||
| float fRec5 = (fRec4[1] - fRec7); | |||||
| fVec10[IOTA&511] = (fRec5 + (0.5f * fRec2[1])); | |||||
| fRec2[0] = fVec10[(IOTA-341)&511]; | |||||
| float fRec3 = (fRec2[1] - fRec5); | |||||
| fVec11[IOTA&255] = (fRec3 + (0.5f * fRec0[1])); | |||||
| fRec0[0] = fVec11[(IOTA-225)&255]; | |||||
| float fRec1 = (fRec0[1] - fRec3); | |||||
| output0[i] = ((fSlow4 * fTemp1) + (fSlow3 * fRec1)); | |||||
| fRec33[0] = ((fSlow1 * fRec32[1]) + (fSlow0 * fRec33[1])); | |||||
| fVec12[IOTA&2047] = (fTemp2 + (fSlow2 * fRec33[0])); | |||||
| fRec32[0] = fVec12[(IOTA-1640)&2047]; | |||||
| fRec35[0] = ((fSlow1 * fRec34[1]) + (fSlow0 * fRec35[1])); | |||||
| fVec13[IOTA&2047] = (fTemp2 + (fSlow2 * fRec35[0])); | |||||
| fRec34[0] = fVec13[(IOTA-1580)&2047]; | |||||
| fRec37[0] = ((fSlow1 * fRec36[1]) + (fSlow0 * fRec37[1])); | |||||
| fVec14[IOTA&2047] = (fTemp2 + (fSlow2 * fRec37[0])); | |||||
| fRec36[0] = fVec14[(IOTA-1514)&2047]; | |||||
| fRec39[0] = ((fSlow1 * fRec38[1]) + (fSlow0 * fRec39[1])); | |||||
| fVec15[IOTA&2047] = (fTemp2 + (fSlow2 * fRec39[0])); | |||||
| fRec38[0] = fVec15[(IOTA-1445)&2047]; | |||||
| fRec41[0] = ((fSlow1 * fRec40[1]) + (fSlow0 * fRec41[1])); | |||||
| fVec16[IOTA&2047] = (fTemp2 + (fSlow2 * fRec41[0])); | |||||
| fRec40[0] = fVec16[(IOTA-1379)&2047]; | |||||
| fRec43[0] = ((fSlow1 * fRec42[1]) + (fSlow0 * fRec43[1])); | |||||
| fVec17[IOTA&2047] = (fTemp2 + (fSlow2 * fRec43[0])); | |||||
| fRec42[0] = fVec17[(IOTA-1300)&2047]; | |||||
| fRec45[0] = ((fSlow1 * fRec44[1]) + (fSlow0 * fRec45[1])); | |||||
| fVec18[IOTA&2047] = (fTemp2 + (fSlow2 * fRec45[0])); | |||||
| fRec44[0] = fVec18[(IOTA-1211)&2047]; | |||||
| fRec47[0] = ((fSlow1 * fRec46[1]) + (fSlow0 * fRec47[1])); | |||||
| fVec19[IOTA&2047] = (fTemp2 + (fSlow2 * fRec47[0])); | |||||
| fRec46[0] = fVec19[(IOTA-1139)&2047]; | |||||
| float fTemp4 = (((((((fRec46[0] + fRec44[0]) + fRec42[0]) + fRec40[0]) + fRec38[0]) + fRec36[0]) + fRec34[0]) + fRec32[0]); | |||||
| fVec20[IOTA&1023] = (fTemp4 + (0.5f * fRec30[1])); | |||||
| fRec30[0] = fVec20[(IOTA-579)&1023]; | |||||
| float fRec31 = (0 - (fTemp4 - fRec30[1])); | |||||
| fVec21[IOTA&511] = (fRec31 + (0.5f * fRec28[1])); | |||||
| fRec28[0] = fVec21[(IOTA-464)&511]; | |||||
| float fRec29 = (fRec28[1] - fRec31); | |||||
| fVec22[IOTA&511] = (fRec29 + (0.5f * fRec26[1])); | |||||
| fRec26[0] = fVec22[(IOTA-364)&511]; | |||||
| float fRec27 = (fRec26[1] - fRec29); | |||||
| fVec23[IOTA&255] = (fRec27 + (0.5f * fRec24[1])); | |||||
| fRec24[0] = fVec23[(IOTA-248)&255]; | |||||
| float fRec25 = (fRec24[1] - fRec27); | |||||
| output1[i] = ((fSlow4 * fTemp0) + (fSlow3 * fRec25)); | |||||
| // post processing | |||||
| fRec24[1] = fRec24[0]; | |||||
| fRec26[1] = fRec26[0]; | |||||
| fRec28[1] = fRec28[0]; | |||||
| fRec30[1] = fRec30[0]; | |||||
| fRec46[1] = fRec46[0]; | |||||
| fRec47[1] = fRec47[0]; | |||||
| fRec44[1] = fRec44[0]; | |||||
| fRec45[1] = fRec45[0]; | |||||
| fRec42[1] = fRec42[0]; | |||||
| fRec43[1] = fRec43[0]; | |||||
| fRec40[1] = fRec40[0]; | |||||
| fRec41[1] = fRec41[0]; | |||||
| fRec38[1] = fRec38[0]; | |||||
| fRec39[1] = fRec39[0]; | |||||
| fRec36[1] = fRec36[0]; | |||||
| fRec37[1] = fRec37[0]; | |||||
| fRec34[1] = fRec34[0]; | |||||
| fRec35[1] = fRec35[0]; | |||||
| fRec32[1] = fRec32[0]; | |||||
| fRec33[1] = fRec33[0]; | |||||
| fRec0[1] = fRec0[0]; | |||||
| fRec2[1] = fRec2[0]; | |||||
| fRec4[1] = fRec4[0]; | |||||
| fRec6[1] = fRec6[0]; | |||||
| fRec22[1] = fRec22[0]; | |||||
| fRec23[1] = fRec23[0]; | |||||
| fRec20[1] = fRec20[0]; | |||||
| fRec21[1] = fRec21[0]; | |||||
| fRec18[1] = fRec18[0]; | |||||
| fRec19[1] = fRec19[0]; | |||||
| fRec16[1] = fRec16[0]; | |||||
| fRec17[1] = fRec17[0]; | |||||
| fRec14[1] = fRec14[0]; | |||||
| fRec15[1] = fRec15[0]; | |||||
| fRec12[1] = fRec12[0]; | |||||
| fRec13[1] = fRec13[0]; | |||||
| fRec10[1] = fRec10[0]; | |||||
| fRec11[1] = fRec11[0]; | |||||
| fRec8[1] = fRec8[0]; | |||||
| IOTA = IOTA+1; | |||||
| fRec9[1] = fRec9[0]; | |||||
| } | |||||
| } | |||||
| }; | |||||
| mydsp DSP; | |||||
| /****************************************************************************** | |||||
| ******************************************************************************* | |||||
| NETJACK AUDIO INTERFACE | |||||
| ******************************************************************************* | |||||
| *******************************************************************************/ | |||||
| //---------------------------------------------------------------------------- | |||||
| // number of input and output channels | |||||
| //---------------------------------------------------------------------------- | |||||
| int gNumInChans; | |||||
| int gNumOutChans; | |||||
| //---------------------------------------------------------------------------- | |||||
| // Jack Callbacks | |||||
| //---------------------------------------------------------------------------- | |||||
| static void net_shutdown(void *) | |||||
| { | |||||
| exit(1); | |||||
| } | |||||
| #ifdef BENCHMARKMODE | |||||
| // measuring jack performances | |||||
| static __inline__ unsigned long long int rdtsc(void) | |||||
| { | |||||
| unsigned long long int x; | |||||
| __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); | |||||
| return x; | |||||
| } | |||||
| #define KSKIP 10 | |||||
| #define KMESURE 1024 | |||||
| int mesure = 0; | |||||
| unsigned long long int starts[KMESURE]; | |||||
| unsigned long long int stops [KMESURE]; | |||||
| #define STARTMESURE starts[mesure%KMESURE] = rdtsc(); | |||||
| #define STOPMESURE stops[mesure%KMESURE] = rdtsc(); mesure = mesure+1; | |||||
| void printstats() | |||||
| { | |||||
| unsigned long long int low, hi, tot; | |||||
| low = hi = tot = (stops[KSKIP] - starts[KSKIP]); | |||||
| if (mesure < KMESURE) { | |||||
| for (int i = KSKIP+1; i<mesure; i++) { | |||||
| unsigned long long int m = stops[i] - starts[i]; | |||||
| if (m<low) low = m; | |||||
| if (m>hi) hi = m; | |||||
| tot += m; | |||||
| } | |||||
| cout << low << ' ' << tot/(mesure-KSKIP) << ' ' << hi << endl; | |||||
| } else { | |||||
| for (int i = KSKIP+1; i<KMESURE; i++) { | |||||
| unsigned long long int m = stops[i] - starts[i]; | |||||
| if (m<low) low = m; | |||||
| if (m>hi) hi = m; | |||||
| tot += m; | |||||
| } | |||||
| cout << low << ' ' << tot/(KMESURE-KSKIP) << ' ' << hi << endl; | |||||
| } | |||||
| } | |||||
| #else | |||||
| #define STARTMESURE | |||||
| #define STOPMESURE | |||||
| #endif | |||||
| static int net_process(jack_nframes_t buffer_size, | |||||
| int audio_input, | |||||
| float** audio_input_buffer, | |||||
| int midi_input, | |||||
| void** midi_input_buffer, | |||||
| int audio_output, | |||||
| float** audio_output_buffer, | |||||
| int midi_output, | |||||
| void** midi_output_buffer, | |||||
| void* data) | |||||
| { | |||||
| AVOIDDENORMALS; | |||||
| STARTMESURE | |||||
| DSP.compute(buffer_size, audio_input_buffer, audio_output_buffer); | |||||
| STOPMESURE | |||||
| return 0; | |||||
| } | |||||
| /****************************************************************************** | |||||
| ******************************************************************************* | |||||
| MAIN PLAY THREAD | |||||
| ******************************************************************************* | |||||
| *******************************************************************************/ | |||||
| //------------------------------------------------------------------------- | |||||
| // MAIN | |||||
| //------------------------------------------------------------------------- | |||||
| #define TEST_MASTER "194.5.49.5" | |||||
| int main(int argc, char *argv[]) { | |||||
| UI* interface = new CMDUI(argc, argv); | |||||
| jack_net_slave_t* net; | |||||
| NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; | |||||
| //Jack::JackAudioQueueAdapter audio(2, 2, 1024, 44100, NULL); | |||||
| gNumInChans = DSP.getNumInputs(); | |||||
| gNumOutChans = DSP.getNumOutputs(); | |||||
| jack_slave_t request = { gNumInChans, gNumOutChans, 0, 0, DEFAULT_MTU, -1, 2 }; | |||||
| jack_master_t result; | |||||
| printf("Network\n"); | |||||
| //if (audio.Open() < 0) { | |||||
| // fprintf(stderr, "Cannot open audio\n"); | |||||
| // return 1; | |||||
| //} | |||||
| //audio.Start(); | |||||
| // Hang around forever... | |||||
| //while(1) CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.25, false); | |||||
| if ((net = jack_net_slave_open(TEST_MASTER, DEFAULT_PORT, "iPhone", &request, &result)) == 0) { | |||||
| fprintf(stderr, "jack remote server not running ?\n"); | |||||
| return 1; | |||||
| } | |||||
| jack_set_net_slave_process_callback(net, net_process, NULL); | |||||
| // We want to restart (that is "wait for available master" again) | |||||
| //jack_set_net_shutdown_callback(net, net_shutdown, 0); | |||||
| DSP.init(result.sample_rate); | |||||
| DSP.buildUserInterface(interface); | |||||
| if (jack_net_slave_activate(net) != 0) { | |||||
| fprintf(stderr, "cannot activate net"); | |||||
| return 1; | |||||
| } | |||||
| int retVal = UIApplicationMain(argc, argv, nil, nil); | |||||
| [pool release]; | |||||
| // Wait for application end | |||||
| jack_net_slave_deactivate(net); | |||||
| jack_net_slave_close(net); | |||||
| //if (audio.Close() < 0) { | |||||
| // fprintf(stderr, "Cannot close audio\n"); | |||||
| //} | |||||
| return retVal; | |||||
| } | |||||
| @@ -1,23 +0,0 @@ | |||||
| // | |||||
| // iPhoneNetAppDelegate.h | |||||
| // iPhoneNet | |||||
| // | |||||
| // Created by Stéphane LETZ on 16/02/09. | |||||
| // Copyright Grame 2009. All rights reserved. | |||||
| // | |||||
| #import <UIKit/UIKit.h> | |||||
| @interface iPhoneNetAppDelegate : NSObject <UIApplicationDelegate> { | |||||
| // UIWindow *window; | |||||
| IBOutlet UIWindow *window; | |||||
| IBOutlet UINavigationController *navigationController; | |||||
| } | |||||
| //@property (nonatomic, retain) IBOutlet UIWindow *window; | |||||
| @property (nonatomic, retain) UIWindow *window; | |||||
| @property (nonatomic, retain) UINavigationController *navigationController; | |||||
| @end | |||||
| @@ -1,32 +0,0 @@ | |||||
| // | |||||
| // iPhoneNetAppDelegate.m | |||||
| // iPhoneNet | |||||
| // | |||||
| // Created by Stéphane LETZ on 16/02/09. | |||||
| // Copyright Grame 2009. All rights reserved. | |||||
| // | |||||
| #import "iPhoneNetAppDelegate.h" | |||||
| @implementation iPhoneNetAppDelegate | |||||
| @synthesize window, navigationController; | |||||
| - (void)applicationDidFinishLaunching:(UIApplication *)application { | |||||
| // Override point for customization after application launch | |||||
| // add the navigation controller's view to the window | |||||
| [window addSubview: navigationController.view]; | |||||
| [window makeKeyAndVisible]; | |||||
| } | |||||
| - (void)dealloc { | |||||
| [navigationController release]; | |||||
| [window release]; | |||||
| [super dealloc]; | |||||
| } | |||||
| @end | |||||
| @@ -1,10 +0,0 @@ | |||||
| // | |||||
| // Prefix header for all source files of the 'iPhoneNet' target in the 'iPhoneNet' project | |||||
| // | |||||
| #ifdef __OBJC__ | |||||
| #import <Foundation/Foundation.h> | |||||
| #import <UIKit/UIKit.h> | |||||
| #endif | |||||
| #define MY_TARGET_OS_IPHONE 1 | |||||
| @@ -1,155 +0,0 @@ | |||||
| // | |||||
| // main.m | |||||
| // iPhoneNet | |||||
| // | |||||
| // Created by Stéphane LETZ on 16/02/09. | |||||
| // Copyright Grame 2009. All rights reserved. | |||||
| // | |||||
| #import <UIKit/UIKit.h> | |||||
| #include <jack/net.h> | |||||
| #include "TiPhoneCoreAudioRenderer.h" | |||||
| #define NUM_INPUT 2 | |||||
| #define NUM_OUTPUT 2 | |||||
| jack_net_master_t* net; | |||||
| jack_adapter_t* adapter; | |||||
| float** audio_input_buffer = NULL; | |||||
| float** audio_output_buffer = NULL; | |||||
| int buffer_size = 1024; | |||||
| int sample_rate = 22050; | |||||
| //int sample_rate = 32000; | |||||
| jack_master_t request = { -1, -1, -1, -1, buffer_size, sample_rate, "master" }; | |||||
| jack_slave_t result; | |||||
| static void MixAudio(float** dst, float** src1, float** src2, int channels, int buffer_size) | |||||
| { | |||||
| for (int chan = 0; chan < channels; chan++) { | |||||
| for (int frame = 0; frame < buffer_size; frame++) { | |||||
| dst[chan][frame] = src1[chan][frame] + src2[chan][frame]; | |||||
| } | |||||
| } | |||||
| } | |||||
| static void MasterAudioCallback(int frames, float** inputs, float** outputs, void* arg) | |||||
| { | |||||
| int i; | |||||
| // Copy from iPod input to network buffers | |||||
| for (i = 0; i < result.audio_input; i++) { | |||||
| memcpy(audio_input_buffer[i], inputs[i], buffer_size * sizeof(float)); | |||||
| } | |||||
| /* | |||||
| // Copy from network out buffers to network in buffers (audio thru) | |||||
| for (i = 0; i < result.audio_input; i++) { | |||||
| memcpy(audio_input_buffer[i], audio_output_buffer[i], buffer_size * sizeof(float)); | |||||
| } | |||||
| */ | |||||
| // Mix iPod input and network in buffers to network out buffers | |||||
| //MixAudio(audio_input_buffer, inputs, audio_output_buffer, result.audio_input, buffer_size); | |||||
| // Send network buffers | |||||
| if (jack_net_master_send(net, result.audio_input, audio_input_buffer, 0, NULL) < 0) { | |||||
| printf("jack_net_master_send error..\n"); | |||||
| } | |||||
| // Recv network buffers | |||||
| if (jack_net_master_recv(net, result.audio_output, audio_output_buffer, 0, NULL) < 0) { | |||||
| printf("jack_net_master_recv error..\n"); | |||||
| } | |||||
| // Copy from network buffers to iPod output | |||||
| for (i = 0; i < result.audio_output; i++) { | |||||
| memcpy(outputs[i], audio_output_buffer[i], buffer_size * sizeof(float)); | |||||
| } | |||||
| } | |||||
| int main(int argc, char *argv[]) { | |||||
| NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; | |||||
| int i; | |||||
| if ((net = jack_net_master_open(DEFAULT_MULTICAST_IP, DEFAULT_PORT, "iPhone", &request, &result)) == 0) { | |||||
| printf("jack_net_master_open error..\n"); | |||||
| return -1; | |||||
| } | |||||
| TiPhoneCoreAudioRenderer audio_device(result.audio_input, result.audio_output); | |||||
| // Allocate buffers | |||||
| if (result.audio_input > 0) { | |||||
| audio_input_buffer = (float**)calloc(result.audio_input, sizeof(float*)); | |||||
| for (i = 0; i < result.audio_input; i++) { | |||||
| audio_input_buffer[i] = (float*)(calloc(buffer_size, sizeof(float))); | |||||
| } | |||||
| } | |||||
| if (result.audio_output > 0) { | |||||
| audio_output_buffer = (float**)calloc(result.audio_output, sizeof(float*)); | |||||
| for (i = 0; i < result.audio_output; i++) { | |||||
| audio_output_buffer[i] = (float*)(calloc(buffer_size, sizeof(float))); | |||||
| } | |||||
| } | |||||
| if (audio_device.Open(buffer_size, sample_rate) < 0) { | |||||
| return -1; | |||||
| } | |||||
| audio_device.SetAudioCallback(MasterAudioCallback, NULL); | |||||
| if (audio_device.Start() < 0) { | |||||
| return -1; | |||||
| } | |||||
| /* | |||||
| // Quite brutal way, the application actually does not start completely, the netjack audio processing loop is used instead... | |||||
| // Run until interrupted | |||||
| int wait_usec = (unsigned long)((((float)buffer_size) / ((float)sample_rate)) * 1000000.0f); | |||||
| while (1) { | |||||
| // Copy input to output | |||||
| for (i = 0; i < result.audio_input; i++) { | |||||
| memcpy(audio_output_buffer[i], audio_input_buffer[i], buffer_size * sizeof(float)); | |||||
| } | |||||
| if (jack_net_master_send(net, result.audio_output, audio_output_buffer, 0, NULL) < 0) { | |||||
| printf("jack_net_master_send error..\n"); | |||||
| } | |||||
| if (jack_net_master_recv(net, result.audio_input, audio_input_buffer, 0, NULL) < 0) { | |||||
| printf("jack_net_master_recv error..\n"); | |||||
| } | |||||
| usleep(wait_usec); | |||||
| }; | |||||
| */ | |||||
| int retVal = UIApplicationMain(argc, argv, nil, nil); | |||||
| audio_device.Stop(); | |||||
| audio_device.Close(); | |||||
| // Wait for application end | |||||
| jack_net_master_close(net); | |||||
| for (i = 0; i < result.audio_input; i++) { | |||||
| free(audio_input_buffer[i]); | |||||
| } | |||||
| free(audio_input_buffer); | |||||
| for (i = 0; i < result.audio_output; i++) { | |||||
| free(audio_output_buffer[i]); | |||||
| } | |||||
| free(audio_output_buffer); | |||||
| [pool release]; | |||||
| return retVal; | |||||
| } | |||||
| @@ -1,114 +0,0 @@ | |||||
| // | |||||
| // main.m | |||||
| // iPhoneNet | |||||
| // | |||||
| // Created by Stéphane LETZ on 16/02/09. | |||||
| // Copyright Grame 2009. All rights reserved. | |||||
| // | |||||
| #import <UIKit/UIKit.h> | |||||
| #include <jack/net.h> | |||||
| #include "TiPhoneCoreAudioRenderer.h" | |||||
| #define NUM_INPUT 0 | |||||
| #define NUM_OUTPUT 2 | |||||
| jack_net_slave_t* net = NULL; | |||||
| jack_adapter_t* adapter = NULL; | |||||
| int buffer_size; | |||||
| int sample_rate; | |||||
| static int net_process(jack_nframes_t buffer_size, | |||||
| int audio_input, | |||||
| float** audio_input_buffer, | |||||
| int midi_input, | |||||
| void** midi_input_buffer, | |||||
| int audio_output, | |||||
| float** audio_output_buffer, | |||||
| int midi_output, | |||||
| void** midi_output_buffer, | |||||
| void* data) | |||||
| { | |||||
| jack_adapter_pull_and_push(adapter, audio_output_buffer, audio_input_buffer, buffer_size); | |||||
| // Process input, produce output | |||||
| if (audio_input == audio_output) { | |||||
| // Copy net input to net output | |||||
| for (int i = 0; i < audio_input; i++) { | |||||
| memcpy(audio_output_buffer[i], audio_input_buffer[i], buffer_size * sizeof(float)); | |||||
| } | |||||
| } | |||||
| return 0; | |||||
| } | |||||
| static void net_shutdown(void *arg) | |||||
| { | |||||
| if (adapter) | |||||
| jack_flush_adapter(adapter); | |||||
| } | |||||
| static void SlaveAudioCallback(int frames, float** inputs, float** outputs, void* arg) | |||||
| { | |||||
| jack_adapter_push_and_pull(adapter, inputs, outputs, frames); | |||||
| } | |||||
| //http://www.securityfocus.com/infocus/1884 | |||||
| #define WIFI_MTU 1500 | |||||
| int main(int argc, char *argv[]) { | |||||
| NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; | |||||
| jack_slave_t request = { NUM_OUTPUT, NUM_INPUT, 0, 0, WIFI_MTU, -1, JackCeltEncoder, 128, 2 }; | |||||
| jack_master_t result; | |||||
| //if ((net = jack_net_slave_open("169.254.112.119", DEFAULT_PORT, "iPhone", &request, &result)) == 0) { | |||||
| if ((net = jack_net_slave_open(DEFAULT_MULTICAST_IP, DEFAULT_PORT, "iPod", &request, &result)) == 0) { | |||||
| printf("jack_net_slave_open error...\n"); | |||||
| return -1; | |||||
| } | |||||
| if ((adapter = jack_create_adapter(NUM_INPUT, | |||||
| NUM_OUTPUT, | |||||
| result.buffer_size, | |||||
| result.sample_rate, | |||||
| result.buffer_size, | |||||
| result.sample_rate)) == 0) { | |||||
| return -1; | |||||
| } | |||||
| TiPhoneCoreAudioRenderer audio_device(NUM_INPUT, NUM_OUTPUT); | |||||
| jack_set_net_slave_process_callback(net, net_process, NULL); | |||||
| jack_set_net_slave_shutdown_callback(net, net_shutdown, NULL); | |||||
| if (jack_net_slave_activate(net) != 0) { | |||||
| printf("Cannot activate slave client\n"); | |||||
| return -1; | |||||
| } | |||||
| if (audio_device.Open(result.buffer_size, result.sample_rate) < 0) { | |||||
| return -1; | |||||
| } | |||||
| audio_device.SetAudioCallback(SlaveAudioCallback, NULL); | |||||
| if (audio_device.Start() < 0) { | |||||
| return -1; | |||||
| } | |||||
| int retVal = UIApplicationMain(argc, argv, nil, nil); | |||||
| [pool release]; | |||||
| audio_device.Stop(); | |||||
| audio_device.Close(); | |||||
| // Wait for application end | |||||
| jack_net_slave_deactivate(net); | |||||
| jack_net_slave_close(net); | |||||
| jack_destroy_adapter(adapter); | |||||
| return retVal; | |||||
| } | |||||
| @@ -0,0 +1,18 @@ | |||||
| JACK2 is a low-latency audio server for multi-processor machines. | |||||
| It provides a basic infrastructure for audio applications to communicate with each other and with audio hardware. | |||||
| Through JACK, users are enabled to build powerful systems for signal processing and music production. | |||||
| This package installs jackd and the command-line tools for JACK2. | |||||
| It also includes the necessary files for developers to build with JACK support. | |||||
| All files will be installed under /usr/local/. | |||||
| Please note that this package will not delete previously installed jackosx contents. | |||||
| If you used that before, please run its own uninstaller before installing this package! | |||||
| Also, the previously packaged JackRouter plugin is not available at this point. | |||||
| For advanced/curious users, here is the full file list that this package provides: | |||||
| @@ -0,0 +1,19 @@ | |||||
| <?xml version="1.0" encoding="utf-8" standalone="no"?> | |||||
| <installer-gui-script minSpecVersion="1"> | |||||
| <title>JACK2</title> | |||||
| <!-- | |||||
| <background file="@CURDIR@/package-background.png" mime-type="image/png" alignment="bottomleft" scaling="proportional" /> | |||||
| <background-darkAqua file="@CURDIR@/package-background.png" mime-type="image/png" alignment="bottomleft" scaling="proportional" /> | |||||
| --> | |||||
| <choice id="org.jackaudio.jack2" title="JACK2" visible="false"> | |||||
| <pkg-ref id="org.jackaudio.jack2" version="0">jack2-osx-root.pkg</pkg-ref> | |||||
| </choice> | |||||
| <choices-outline> | |||||
| <line choice="org.jackaudio.jack2" /> | |||||
| </choices-outline> | |||||
| <domains enable_anywhere="false" enable_currentUserHome="false" enable_localSystem="true" /> | |||||
| <license file="@CURDIR@/../COPYING" mime-type="text/plain" /> | |||||
| <options customize="never" hostArchitectures="x86_64" require-scripts="false" rootVolumeOnly="true" /> | |||||
| <pkg-ref id="org.jackaudio.jack2" /> | |||||
| <welcome file="@CURDIR@/package-welcome.txt" mime-type="text/plain" /> | |||||
| </installer-gui-script> | |||||
| @@ -132,7 +132,7 @@ bool JackFifo::Allocate(const char* name, const char* server_name, int value) | |||||
| if (stat(fName, &statbuf) < 0) { | if (stat(fName, &statbuf) < 0) { | ||||
| if (errno == ENOENT || errno == EPERM) { | if (errno == ENOENT || errno == EPERM) { | ||||
| if (mkfifo(fName, 0666) < 0) { | if (mkfifo(fName, 0666) < 0) { | ||||
| jack_error("Cannot create inter-client FIFO name = %s err = %s", name, strerror(errno)); | |||||
| jack_error("Cannot create inter-client FIFO name = %s err = %s", fName, strerror(errno)); | |||||
| return false; | return false; | ||||
| } | } | ||||
| } else { | } else { | ||||
| @@ -44,7 +44,7 @@ class SERVER_EXPORT JackFifo : public detail::JackSynchro | |||||
| protected: | protected: | ||||
| void BuildName(const char* name, const char* server_name, char* res); | |||||
| void BuildName(const char* name, const char* server_name, char* res, int size); | |||||
| public: | public: | ||||
| @@ -22,6 +22,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include <unistd.h> | #include <unistd.h> | ||||
| #include <fcntl.h> | #include <fcntl.h> | ||||
| #include <sys/time.h> | |||||
| using namespace std; | using namespace std; | ||||
| @@ -17,6 +17,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| */ | */ | ||||
| #define _POSIX_C_SOURCE 200112L | |||||
| #include "JackPosixSemaphore.h" | #include "JackPosixSemaphore.h" | ||||
| #include "JackTools.h" | #include "JackTools.h" | ||||
| #include "JackConstants.h" | #include "JackConstants.h" | ||||
| @@ -111,8 +113,6 @@ bool JackPosixSemaphore::Wait() | |||||
| return (res == 0); | return (res == 0); | ||||
| } | } | ||||
| #if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) // glibc feature test | |||||
| bool JackPosixSemaphore::TimedWait(long usec) | bool JackPosixSemaphore::TimedWait(long usec) | ||||
| { | { | ||||
| int res; | int res; | ||||
| @@ -140,15 +140,6 @@ bool JackPosixSemaphore::TimedWait(long usec) | |||||
| return (res == 0); | return (res == 0); | ||||
| } | } | ||||
| #else | |||||
| #warning "JackPosixSemaphore::TimedWait is not supported: Jack in SYNC mode with JackPosixSemaphore will not run properly !!" | |||||
| bool JackPosixSemaphore::TimedWait(long usec) | |||||
| { | |||||
| return Wait(); | |||||
| } | |||||
| #endif | |||||
| // Server side : publish the semaphore in the global namespace | // Server side : publish the semaphore in the global namespace | ||||
| bool JackPosixSemaphore::Allocate(const char* name, const char* server_name, int value) | bool JackPosixSemaphore::Allocate(const char* name, const char* server_name, int value) | ||||
| { | { | ||||
| @@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| #include "JackServer.h" | #include "JackServer.h" | ||||
| #include "JackLockedEngine.h" | #include "JackLockedEngine.h" | ||||
| #include "JackGlobals.h" | #include "JackGlobals.h" | ||||
| #include "JackServerGlobals.h" | |||||
| #include "JackClient.h" | #include "JackClient.h" | ||||
| #include "JackTools.h" | #include "JackTools.h" | ||||
| #include "JackNotification.h" | #include "JackNotification.h" | ||||
| @@ -230,7 +229,6 @@ bool JackSocketServerChannel::Execute() | |||||
| // Poll all clients | // Poll all clients | ||||
| for (unsigned int i = 1; i < fSocketTable.size() + 1; i++) { | for (unsigned int i = 1; i < fSocketTable.size() + 1; i++) { | ||||
| int fd = fPollTable[i].fd; | int fd = fPollTable[i].fd; | ||||
| jack_log("JackSocketServerChannel::Execute : fPollTable i = %ld fd = %ld", i, fd); | |||||
| if (fPollTable[i].revents & ~POLLIN) { | if (fPollTable[i].revents & ~POLLIN) { | ||||
| jack_log("JackSocketServerChannel::Execute : poll client error err = %s", strerror(errno)); | jack_log("JackSocketServerChannel::Execute : poll client error err = %s", strerror(errno)); | ||||
| ClientKill(fd); | ClientKill(fd); | ||||
| @@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
| #include "JackRequest.h" | #include "JackRequest.h" | ||||
| #include "JackConstants.h" | #include "JackConstants.h" | ||||
| #include "JackNotification.h" | #include "JackNotification.h" | ||||
| #include "JackServerGlobals.h" | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| @@ -24,6 +24,9 @@ | |||||
| #include "JackSystemDeps.h" | #include "JackSystemDeps.h" | ||||
| #include "JackCompilerDeps.h" | #include "JackCompilerDeps.h" | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include <map> | #include <map> | ||||
| @@ -30,6 +30,11 @@ | |||||
| #define ADDON_DIR "jack" | #define ADDON_DIR "jack" | ||||
| #endif | #endif | ||||
| #define MAKE_WIDECHAR_CONSTANT2(Quote) L##Quote | |||||
| #define MAKE_WIDECHAR_CONSTANT(Quote) MAKE_WIDECHAR_CONSTANT2(Quote) | |||||
| #define ADDON_DIRW MAKE_WIDECHAR_CONSTANT(ADDON_DIR) | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| struct JackRequest; | struct JackRequest; | ||||
| @@ -37,10 +37,13 @@ static int kNumOutputs = 4; | |||||
| #include "jack.h" | #include "jack.h" | ||||
| #include "rpc.h" | #include "rpc.h" | ||||
| #include "rpcndr.h" | #include "rpcndr.h" | ||||
| #ifndef COM_NO_WINDOWS_H | #ifndef COM_NO_WINDOWS_H | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include "ole2.h" | #include "ole2.h" | ||||
| #endif | #endif | ||||
| #include "combase.h" | #include "combase.h" | ||||
| @@ -0,0 +1,25 @@ | |||||
|  | |||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | |||||
| # Visual Studio 15 | |||||
| VisualStudioVersion = 15.0.27703.2018 | |||||
| MinimumVisualStudioVersion = 10.0.40219.1 | |||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JackRouter_MinGW_deps", "JackRouter_MinGW_deps.vcxproj", "{08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}" | |||||
| EndProject | |||||
| Global | |||||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||||
| Debug|x64 = Debug|x64 | |||||
| Release|x64 = Release|x64 | |||||
| EndGlobalSection | |||||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||||
| {08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}.Debug|x64.ActiveCfg = Debug|x64 | |||||
| {08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}.Debug|x64.Build.0 = Debug|x64 | |||||
| {08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}.Release|x64.ActiveCfg = Release|x64 | |||||
| {08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}.Release|x64.Build.0 = Release|x64 | |||||
| EndGlobalSection | |||||
| GlobalSection(SolutionProperties) = preSolution | |||||
| HideSolutionNode = FALSE | |||||
| EndGlobalSection | |||||
| GlobalSection(ExtensibilityGlobals) = postSolution | |||||
| SolutionGuid = {14794710-1A0E-40AE-99C4-98C59280F0C3} | |||||
| EndGlobalSection | |||||
| EndGlobal | |||||
| @@ -0,0 +1,287 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||||
| <ItemGroup Label="ProjectConfigurations"> | |||||
| <ProjectConfiguration Include="Debug|Win32"> | |||||
| <Configuration>Debug</Configuration> | |||||
| <Platform>Win32</Platform> | |||||
| </ProjectConfiguration> | |||||
| <ProjectConfiguration Include="Debug|x64"> | |||||
| <Configuration>Debug</Configuration> | |||||
| <Platform>x64</Platform> | |||||
| </ProjectConfiguration> | |||||
| <ProjectConfiguration Include="Release|Win32"> | |||||
| <Configuration>Release</Configuration> | |||||
| <Platform>Win32</Platform> | |||||
| </ProjectConfiguration> | |||||
| <ProjectConfiguration Include="Release|x64"> | |||||
| <Configuration>Release</Configuration> | |||||
| <Platform>x64</Platform> | |||||
| </ProjectConfiguration> | |||||
| </ItemGroup> | |||||
| <PropertyGroup Label="Globals"> | |||||
| <SccProjectName /> | |||||
| <SccLocalPath /> | |||||
| <ProjectGuid>{08E8BE85-76F9-4070-B85E-0CA6A38BCBB4}</ProjectGuid> | |||||
| <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion> | |||||
| </PropertyGroup> | |||||
| <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | |||||
| <ConfigurationType>DynamicLibrary</ConfigurationType> | |||||
| <UseOfMfc>false</UseOfMfc> | |||||
| <PlatformToolset>v141</PlatformToolset> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> | |||||
| <ConfigurationType>DynamicLibrary</ConfigurationType> | |||||
| <UseOfMfc>false</UseOfMfc> | |||||
| <PlatformToolset>v141</PlatformToolset> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | |||||
| <ConfigurationType>DynamicLibrary</ConfigurationType> | |||||
| <UseOfMfc>false</UseOfMfc> | |||||
| <PlatformToolset>v141</PlatformToolset> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> | |||||
| <ConfigurationType>DynamicLibrary</ConfigurationType> | |||||
| <UseOfMfc>false</UseOfMfc> | |||||
| <PlatformToolset>v141</PlatformToolset> | |||||
| </PropertyGroup> | |||||
| <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | |||||
| <ImportGroup Label="ExtensionSettings"> | |||||
| </ImportGroup> | |||||
| <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | |||||
| <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||||
| <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" /> | |||||
| </ImportGroup> | |||||
| <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> | |||||
| <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||||
| <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" /> | |||||
| </ImportGroup> | |||||
| <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | |||||
| <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||||
| <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" /> | |||||
| </ImportGroup> | |||||
| <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> | |||||
| <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | |||||
| <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" /> | |||||
| </ImportGroup> | |||||
| <PropertyGroup Label="UserMacros" /> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||||
| <OutDir>.\Debug\</OutDir> | |||||
| <IntDir>.\Debug\</IntDir> | |||||
| <LinkIncremental>true</LinkIncremental> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |||||
| <OutDir>.\Debug\</OutDir> | |||||
| <IntDir>.\Debug\</IntDir> | |||||
| <LinkIncremental>true</LinkIncremental> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||||
| <OutDir>.\Release\</OutDir> | |||||
| <IntDir>.\Release\</IntDir> | |||||
| <LinkIncremental>false</LinkIncremental> | |||||
| </PropertyGroup> | |||||
| <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |||||
| <OutDir>.\Release64\</OutDir> | |||||
| <IntDir>.\Release64\</IntDir> | |||||
| <LinkIncremental>false</LinkIncremental> | |||||
| </PropertyGroup> | |||||
| <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||||
| <ClCompile> | |||||
| <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||||
| <InlineFunctionExpansion>Default</InlineFunctionExpansion> | |||||
| <FunctionLevelLinking>false</FunctionLevelLinking> | |||||
| <Optimization>Disabled</Optimization> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <WarningLevel>Level3</WarningLevel> | |||||
| <MinimalRebuild>true</MinimalRebuild> | |||||
| <AdditionalIncludeDirectories>c:\msys64\opt\asiosdk\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||||
| <PreprocessorDefinitions>_STDINT_H;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <AssemblerListingLocation>.\Debug\</AssemblerListingLocation> | |||||
| <BrowseInformation>true</BrowseInformation> | |||||
| <PrecompiledHeaderOutputFile>.\Debug\JackRouter.pch</PrecompiledHeaderOutputFile> | |||||
| <ObjectFileName>.\Debug\</ObjectFileName> | |||||
| <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName> | |||||
| <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||||
| </ClCompile> | |||||
| <Midl> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <TypeLibraryName>.\Debug\JackRouter.tlb</TypeLibraryName> | |||||
| <MkTypLibCompatible>true</MkTypLibCompatible> | |||||
| <TargetEnvironment>Win32</TargetEnvironment> | |||||
| </Midl> | |||||
| <ResourceCompile> | |||||
| <Culture>0x0409</Culture> | |||||
| <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| </ResourceCompile> | |||||
| <Bscmake> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <OutputFile>.\Debug\JackRouter.bsc</OutputFile> | |||||
| </Bscmake> | |||||
| <Link> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <LinkDLL>true</LinkDLL> | |||||
| <GenerateDebugInformation>true</GenerateDebugInformation> | |||||
| <SubSystem>Windows</SubSystem> | |||||
| <OutputFile>Debug/JackRouter_debug.dll</OutputFile> | |||||
| <ImportLibrary>.\Debug\JackRouter_debug.lib</ImportLibrary> | |||||
| <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> | |||||
| <ModuleDefinitionFile>.\JackRouter.def</ModuleDefinitionFile> | |||||
| </Link> | |||||
| </ItemDefinitionGroup> | |||||
| <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | |||||
| <ClCompile> | |||||
| <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | |||||
| <InlineFunctionExpansion>Default</InlineFunctionExpansion> | |||||
| <FunctionLevelLinking>false</FunctionLevelLinking> | |||||
| <Optimization>Disabled</Optimization> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <WarningLevel>Level3</WarningLevel> | |||||
| <AdditionalIncludeDirectories>c:\msys64\opt\asiosdk\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||||
| <PreprocessorDefinitions>_STDINT_H;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <AssemblerListingLocation>.\Debug\</AssemblerListingLocation> | |||||
| <BrowseInformation>true</BrowseInformation> | |||||
| <PrecompiledHeaderOutputFile>.\Debug\JackRouter.pch</PrecompiledHeaderOutputFile> | |||||
| <ObjectFileName>.\Debug\</ObjectFileName> | |||||
| <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName> | |||||
| <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | |||||
| </ClCompile> | |||||
| <Midl> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <TypeLibraryName>.\Debug\JackRouter.tlb</TypeLibraryName> | |||||
| <MkTypLibCompatible>true</MkTypLibCompatible> | |||||
| </Midl> | |||||
| <ResourceCompile> | |||||
| <Culture>0x0409</Culture> | |||||
| <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| </ResourceCompile> | |||||
| <Bscmake> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <OutputFile>.\Debug\JackRouter.bsc</OutputFile> | |||||
| </Bscmake> | |||||
| <Link> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <LinkDLL>true</LinkDLL> | |||||
| <GenerateDebugInformation>true</GenerateDebugInformation> | |||||
| <SubSystem>Windows</SubSystem> | |||||
| <OutputFile>Debug/JackRouter_debug.dll</OutputFile> | |||||
| <ImportLibrary>.\Debug\JackRouter_debug.lib</ImportLibrary> | |||||
| <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> | |||||
| <ModuleDefinitionFile>.\JackRouter.def</ModuleDefinitionFile> | |||||
| </Link> | |||||
| </ItemDefinitionGroup> | |||||
| <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | |||||
| <ClCompile> | |||||
| <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||||
| <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> | |||||
| <StringPooling>true</StringPooling> | |||||
| <FunctionLevelLinking>true</FunctionLevelLinking> | |||||
| <Optimization>MaxSpeed</Optimization> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <WarningLevel>Level3</WarningLevel> | |||||
| <AdditionalIncludeDirectories>c:\msys64\opt\asiosdk\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||||
| <PreprocessorDefinitions>_STDINT_H;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <AssemblerListingLocation>.\Release\</AssemblerListingLocation> | |||||
| <BrowseInformation>true</BrowseInformation> | |||||
| <PrecompiledHeaderOutputFile>.\Release\JackRouter.pch</PrecompiledHeaderOutputFile> | |||||
| <ObjectFileName>.\Release\</ObjectFileName> | |||||
| <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName> | |||||
| </ClCompile> | |||||
| <Midl> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <TypeLibraryName>.\Release\JackRouter.tlb</TypeLibraryName> | |||||
| <MkTypLibCompatible>true</MkTypLibCompatible> | |||||
| <TargetEnvironment>Win32</TargetEnvironment> | |||||
| </Midl> | |||||
| <ResourceCompile> | |||||
| <Culture>0x0409</Culture> | |||||
| <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| </ResourceCompile> | |||||
| <Bscmake> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <OutputFile>.\Release\JackRouter.bsc</OutputFile> | |||||
| </Bscmake> | |||||
| <Link> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <LinkDLL>true</LinkDLL> | |||||
| <SubSystem>Windows</SubSystem> | |||||
| <OutputFile>.\Release\JackRouter.dll</OutputFile> | |||||
| <ImportLibrary>.\Release\JackRouter.lib</ImportLibrary> | |||||
| <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> | |||||
| <ModuleDefinitionFile>.\JackRouter.def</ModuleDefinitionFile> | |||||
| </Link> | |||||
| </ItemDefinitionGroup> | |||||
| <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | |||||
| <ClCompile> | |||||
| <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | |||||
| <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> | |||||
| <StringPooling>true</StringPooling> | |||||
| <FunctionLevelLinking>true</FunctionLevelLinking> | |||||
| <Optimization>MaxSpeed</Optimization> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <WarningLevel>Level3</WarningLevel> | |||||
| <AdditionalIncludeDirectories>c:\msys64\opt\asiosdk\common;..\..\common;..\..\common\jack;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | |||||
| <PreprocessorDefinitions>_STDINT_H;WIN32;NDEBUG;_WINDOWS;PSAPI_VERSION=2;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <AssemblerListingLocation>.\Release\</AssemblerListingLocation> | |||||
| <BrowseInformation>true</BrowseInformation> | |||||
| <PrecompiledHeaderOutputFile>.\Release\JackRouter.pch</PrecompiledHeaderOutputFile> | |||||
| <ObjectFileName>.\Release\</ObjectFileName> | |||||
| <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName> | |||||
| <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath> | |||||
| <ForcedIncludeFiles>stdint.h</ForcedIncludeFiles> | |||||
| </ClCompile> | |||||
| <Midl> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| <TypeLibraryName>.\Release\JackRouter.tlb</TypeLibraryName> | |||||
| <MkTypLibCompatible>true</MkTypLibCompatible> | |||||
| </Midl> | |||||
| <ResourceCompile> | |||||
| <Culture>0x0409</Culture> | |||||
| <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> | |||||
| </ResourceCompile> | |||||
| <Bscmake> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <OutputFile>.\Release\JackRouter64.bsc</OutputFile> | |||||
| </Bscmake> | |||||
| <Link> | |||||
| <SuppressStartupBanner>true</SuppressStartupBanner> | |||||
| <LinkDLL>true</LinkDLL> | |||||
| <SubSystem>Windows</SubSystem> | |||||
| <OutputFile>.\Release64\JackRouter.dll</OutputFile> | |||||
| <ImportLibrary>.\Release\JackRouter64.lib</ImportLibrary> | |||||
| <AdditionalDependencies>odbc32.lib;odbccp32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies> | |||||
| <ModuleDefinitionFile>.\JackRouter.def</ModuleDefinitionFile> | |||||
| </Link> | |||||
| </ItemDefinitionGroup> | |||||
| <ItemGroup> | |||||
| <ClCompile Include="c:\msys64\opt\asiosdk\common\combase.cpp" /> | |||||
| <ClCompile Include="c:\msys64\opt\asiosdk\common\dllentry.cpp" /> | |||||
| <ClCompile Include="JackRouter.cpp" /> | |||||
| <ClCompile Include="profport.cpp" /> | |||||
| <ClCompile Include="c:\msys64\opt\asiosdk\common\register.cpp" /> | |||||
| </ItemGroup> | |||||
| <ItemGroup> | |||||
| <CustomBuild Include="JackRouter.def" /> | |||||
| </ItemGroup> | |||||
| <ItemGroup> | |||||
| <ResourceCompile Include="resource.rc" /> | |||||
| </ItemGroup> | |||||
| <ItemGroup> | |||||
| <ClInclude Include="..\..\..\common\asio.h" /> | |||||
| <ClInclude Include="..\..\Common\Asiodrvr.h" /> | |||||
| <ClInclude Include="..\asiosmpl.h" /> | |||||
| <ClInclude Include="..\..\..\common\asiosys.h" /> | |||||
| <ClInclude Include="..\..\..\common\combase.h" /> | |||||
| <ClInclude Include="..\..\..\common\iasiodrv.h" /> | |||||
| </ItemGroup> | |||||
| <ItemGroup> | |||||
| <Library Include="c:\msys64\opt\jack\bin\jack.dll.a" /> | |||||
| <Library Include="Psapi.Lib" /> | |||||
| </ItemGroup> | |||||
| <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | |||||
| <ImportGroup Label="ExtensionTargets"> | |||||
| </ImportGroup> | |||||
| </Project> | |||||
| @@ -20,6 +20,9 @@ | |||||
| #ifndef __JackShmMem_WIN32__ | #ifndef __JackShmMem_WIN32__ | ||||
| #define __JackShmMem_WIN32__ | #define __JackShmMem_WIN32__ | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| inline bool CHECK_MLOCK(void* ptr, size_t size) | inline bool CHECK_MLOCK(void* ptr, size_t size) | ||||
| @@ -21,6 +21,9 @@ | |||||
| #ifndef __JackSystemDeps_WIN32__ | #ifndef __JackSystemDeps_WIN32__ | ||||
| #define __JackSystemDeps_WIN32__ | #define __JackSystemDeps_WIN32__ | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include "JackCompilerDeps.h" | #include "JackCompilerDeps.h" | ||||
| @@ -28,10 +31,12 @@ | |||||
| #define PATH_MAX 512 | #define PATH_MAX 512 | ||||
| #endif | #endif | ||||
| #ifndef UINT32_MAX | |||||
| #define UINT32_MAX 4294967295U | #define UINT32_MAX 4294967295U | ||||
| #endif | |||||
| #define DRIVER_HANDLE HINSTANCE | #define DRIVER_HANDLE HINSTANCE | ||||
| #define LoadDriverModule(name) LoadLibrary((name)) | |||||
| #define LoadDriverModule(name) LoadLibraryW((name)) | |||||
| #define UnloadDriverModule(handle) (FreeLibrary(((HMODULE)handle))) | #define UnloadDriverModule(handle) (FreeLibrary(((HMODULE)handle))) | ||||
| #define GetDriverProc(handle, name) GetProcAddress(((HMODULE)handle), (name)) | #define GetDriverProc(handle, name) GetProcAddress(((HMODULE)handle), (name)) | ||||
| @@ -21,12 +21,19 @@ | |||||
| #ifndef __JackTypes_WIN32__ | #ifndef __JackTypes_WIN32__ | ||||
| #define __JackTypes_WIN32__ | #define __JackTypes_WIN32__ | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| typedef ULONGLONG UInt64; | |||||
| typedef ULONGLONG UInt64; | |||||
| typedef UInt64 uint64_t; | typedef UInt64 uint64_t; | ||||
| typedef unsigned short uint16_t; | typedef unsigned short uint16_t; | ||||
| typedef DWORD jack_tls_key; | |||||
| typedef DWORD jack_tls_key; | |||||
| #if defined(__MINGW32__) | |||||
| #define PRIu64 "llu" | |||||
| #endif | |||||
| #endif | #endif | ||||
| @@ -21,6 +21,10 @@ | |||||
| #define __JackWinEvent__ | #define __JackWinEvent__ | ||||
| #include "JackSynchro.h" | #include "JackSynchro.h" | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| namespace Jack | namespace Jack | ||||
| @@ -23,6 +23,9 @@ | |||||
| #include "JackCompilerDeps.h" | #include "JackCompilerDeps.h" | ||||
| #include "JackException.h" | #include "JackException.h" | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include <stdio.h> | #include <stdio.h> | ||||
| @@ -71,13 +74,13 @@ class SERVER_EXPORT JackWinMutex | |||||
| JackWinMutex(const char* name = NULL) | JackWinMutex(const char* name = NULL) | ||||
| { | { | ||||
| // In recursive mode by default | |||||
| // In recursive mode by default | |||||
| if (name) { | if (name) { | ||||
| char buffer[MAX_PATH]; | char buffer[MAX_PATH]; | ||||
| snprintf(buffer, sizeof(buffer), "%s_%s", "JackWinMutex", name); | snprintf(buffer, sizeof(buffer), "%s_%s", "JackWinMutex", name); | ||||
| fMutex = CreateMutex(NULL, FALSE, buffer); | |||||
| } else { | |||||
| fMutex = CreateMutex(NULL, FALSE, NULL); | |||||
| fMutex = CreateMutex(NULL, FALSE, buffer); | |||||
| } else { | |||||
| fMutex = CreateMutex(NULL, FALSE, NULL); | |||||
| } | } | ||||
| ThrowIf((fMutex == 0), JackException("JackWinMutex: could not init the mutex")); | ThrowIf((fMutex == 0), JackException("JackWinMutex: could not init the mutex")); | ||||
| @@ -21,6 +21,9 @@ | |||||
| #ifndef __JackWinNamedPipe__ | #ifndef __JackWinNamedPipe__ | ||||
| #define __JackWinNamedPipe__ | #define __JackWinNamedPipe__ | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include "JackChannel.h" | #include "JackChannel.h" | ||||
| @@ -22,6 +22,9 @@ | |||||
| #define __JackWinSemaphore__ | #define __JackWinSemaphore__ | ||||
| #include "JackSynchro.h" | #include "JackSynchro.h" | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include <assert.h> | #include <assert.h> | ||||
| @@ -24,6 +24,9 @@ | |||||
| #include "JackMMCSS.h" | #include "JackMMCSS.h" | ||||
| #include "JackCompilerDeps.h" | #include "JackCompilerDeps.h" | ||||
| #include "JackSystemDeps.h" | #include "JackSystemDeps.h" | ||||
| #ifdef __MINGW32__ | |||||
| #include <winsock2.h> | |||||
| #endif | |||||
| #include <windows.h> | #include <windows.h> | ||||
| namespace Jack | namespace Jack | ||||
| @@ -0,0 +1,270 @@ | |||||
| HOW TO COMPILE JACK USING WAF AND MINGW | |||||
| ======================================= | |||||
| Rev. 1 - 2019-09-01 - First version | |||||
| Rev. 2 - 2019-09-18 - Include contributions from @Schroedingers-Cat | |||||
| Rev. 3 - 2019-12-14 - Include contributions from @Schroedingers-Cat | |||||
| Introduction | |||||
| ------------ | |||||
| This guide contains detailed instructions for building JACK on a modern MinGW | |||||
| installation. It was conceived as the starting point for unifying the JACK build | |||||
| process across all platforms. | |||||
| As this is work in progress, there are still a couple of caveats: | |||||
| - Asynchronous mode is unusable with low latencies | |||||
| - JackRouter still builds using a Visual Studio project | |||||
| - Lots of real world testing is needed | |||||
| Creating the development environment | |||||
| ------------------------------------ | |||||
| This guide uses MSYS2 as the toolchain, it can be found at https://www.msys2.org/ | |||||
| It comes as a handy installer called msys2-x86_64-{version}.exe. Once installed: | |||||
| - Open "MSYS2 MinGW 64-bit terminal" from the MSYS2 start menu shortcuts | |||||
| - Upgrade base MSYS2 packages | |||||
| pacman -Suy | |||||
| It is possible pacman ends with the following banner: | |||||
| warning: terminate MSYS2 without returning to shell and check for updates again | |||||
| warning: for example close your terminal window instead of calling exit | |||||
| In such case close the MSYS2 window, re-open, and run pacman -Suy again. | |||||
| - Install required packages | |||||
| pacman -S mingw-w64-x86_64-toolchain patch autoconf make \ | |||||
| gettext-devel automake libtool pkgconfig p7zip unzip git python | |||||
| - Replace the GCC compiler with a version configured for SJLJ exceptions, as | |||||
| instructed by the original Windows build instructions (windows/README) | |||||
| Prebuilt binaries can be found at | |||||
| https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/ | |||||
| Look for "x86_64-posix-sjlj" under "MinGW-W64 GCC-{version}", the file should be | |||||
| called x86_64-{version}-release-posix-sjlj-rt_v6-rev0.7z | |||||
| Or just download from a direct link (GCC 8.1.0): | |||||
| wget https://downloads.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/sjlj/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z | |||||
| Once downloaded: | |||||
| p7zip -d x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z | |||||
| That will decompress to a folder called mingw64 in the working directory. | |||||
| Now replace the files from the previous mingw-w64-x86_64-toolchain package | |||||
| installation: | |||||
| mv /mingw64 /mingw64.bak -> backup original | |||||
| rm /mingw64 -> see explanation below | |||||
| mv mingw64 / -> sjlj toolchain | |||||
| The first step results in a new file called mingw64 file being created in /. The | |||||
| file is not visible to the Windows File Explorer when inspecting C:\msys64, so | |||||
| it is probably an artifact and safe to delete it in the second step. Otherwise | |||||
| the last mv step will fail with: | |||||
| mv: cannot overwrite non-directory '/mingw64' with directory 'mingw64' | |||||
| An alternate solution consists in closing the MSYS2 window and replicating the | |||||
| above procedure using the File Explorer. The following assumes the toolchain 7z | |||||
| file was decompressed to the home directory: | |||||
| Rename C:\msys64\mingw64 to C:\msys64\mingw64.bak | |||||
| Move C:\msys64\home\{username}\mingw64 to C:\msys64 | |||||
| Make sure gcc runs and it is the expected version: | |||||
| $ gcc --version | |||||
| gcc.exe (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project) {version} | |||||
| Preparing JACK dependencies | |||||
| --------------------------- | |||||
| There are prebuilt MinGW binaries for all the libraries that can be installed | |||||
| using the pacman package manager, but since we are using a compiler that is not | |||||
| the default version shipped by MinGW, it seems better idea to build from source | |||||
| to avoid any linker and runtime issues. A good technical explanation and/or | |||||
| evidence for this statement is currently missing from this guide. | |||||
| Fortunately there are PKGBUILD files for doing so together with a nice guide at | |||||
| https://github.com/msys2/MINGW-packages | |||||
| git clone https://github.com/msys2/MINGW-packages.git | |||||
| Before building libraries, adjust the includes path: | |||||
| export C_INCLUDE_PATH=/mingw64/include | |||||
| The basic procedure for building and installing libraries is: | |||||
| cd MINGW-packages/mingw-w64-{libname} | |||||
| MINGW_INSTALLS=mingw64 makepkg-mingw -sLf | |||||
| pacman -U mingw-w64-{libname}-{suffix}.pkg.tar.xz | |||||
| Repeat the procedure for each library listed below replacing {libname} with the | |||||
| appropriate name and {suffix} with whatever the above process creates. Keep the | |||||
| recommended build order, for example libsamplerate depends on libsndfile, and | |||||
| libsystre depends on libtre-git. libsystre is a wrapper around libtre that | |||||
| allows including <regex.h> later. | |||||
| Some libraries like libsndfile and libsamplerate will ask for installing extra | |||||
| dependencies, it is ok to do so. | |||||
| For low latency audio it is recommended to build portaudio with ASIO support, so | |||||
| the Steinberg ASIO SDK should be manually downloaded beforehand. It can be found | |||||
| at https://www.steinberg.net/en/company/developers.html. The waf script will | |||||
| later check if the SDK is present at /opt/asiosdk | |||||
| wget https://www.steinberg.net/asiosdk -O /tmp/asiosdk.zip | |||||
| unzip /tmp/asiosdk.zip -d /tmp | |||||
| mkdir /opt <- MinGW does not create /opt during installation | |||||
| mv /tmp/asiosdk_{version}_{date} /opt/asiosdk | |||||
| The description file in portaudio (MINGW-packages/mingw-w64-portaudio/PKGBUILD) | |||||
| needs to be patched so configure is called with the necessary flags for ASIO: | |||||
| --with-asiodir=/opt/asiosdk <- new option | |||||
| --with-winapi=wmme,directx,wasapi,vdmks,asio <- append 'asio' to existing | |||||
| Both static and shared library versions of portaudio are built. To prevent | |||||
| errors while building the shared version or recompiling static, also insert the | |||||
| following lines in PKGBUILD after the first make call (around line 60) and after | |||||
| second make (around line 70): | |||||
| find /opt/asiosdk -name "*.lo" -type f -delete | |||||
| find /opt/asiosdk -name "*.o" -type f -delete | |||||
| Finally here is the list of libraries to build: | |||||
| db | |||||
| libsndfile | |||||
| libsamplerate | |||||
| libtre-git | |||||
| libsystre | |||||
| portaudio | |||||
| Compiling JACK | |||||
| -------------- | |||||
| - Clone repo | |||||
| git clone https://github.com/jackaudio/jack2 | |||||
| - Build and install | |||||
| cd jack2 | |||||
| ./waf configure --prefix=/opt/jack && ./waf -p install | |||||
| The resulting files can be found at /c/opt/jack/bin, or C:\msys64\opt\jack\bin | |||||
| Compiling JackRouter | |||||
| -------------------- | |||||
| Visual Studio with MFC support is needed to build the included JackRouter VS | |||||
| project. The project was tested to successfully generate a 64bit version of | |||||
| JackRouter.dll using Visual Studio 2017 and 2019. MFC support can be added from | |||||
| the VS installer, by selecting Workloads/Visual C++ build tools/Visual C++ MFC | |||||
| for x86 and x64 (valid for VS 2017). Once ready, just open and build the project | |||||
| windows/JackRouter/JackRouter_MinGW_deps.vcxproj | |||||
| Differences from the original JackRouter.vcxproj: | |||||
| - Depends on the asiosdk files from the previous MinGW JACK installation (i.e., | |||||
| it points to absolute paths starting with C:\msys64\opt) | |||||
| - Links to the jack.dll.a created by the previous build, instead of libjack.lib | |||||
| This means JackRouter.dll will currently depend on libjack-0.dll | |||||
| - Force includes stdint.h and defines _STDINT_H to avoid int8_t, int32_t and | |||||
| uint32_t basic types redefinition during compilation | |||||
| Running and distributing | |||||
| ------------------------ | |||||
| An automated installation process should copy files to two destinations. One for | |||||
| the JACK server binary and standalone tools, and another for the client library. | |||||
| The latter is needed by JACK enabled applications in order to be able to connect | |||||
| to the server. | |||||
| - Create a directory named C:\Program Files\Jack (can be anything else) | |||||
| - Copy all files in C:\msys64\opt\jack\bin to C:\Program Files\Jack | |||||
| - Copy the following DLLs from C:\msys64\mingw64\bin to C:\Program Files\Jack, | |||||
| these are dependencies for the JACK server and tools: | |||||
| libstdc++-6.dll | |||||
| libdb-6.0.dll | |||||
| libsndfile-1.dll | |||||
| libsamplerate-0.dll | |||||
| libportaudio-2.dll | |||||
| libgcc_s_sjlj-1.dll | |||||
| libwinpthread-1.dll | |||||
| libtre-5.dll | |||||
| libsystre-0.dll | |||||
| - Copy and rename the following files from C:\msys64\opt\jack\bin to C:\Windows | |||||
| to make libjack available to clients: | |||||
| libjackserver-0.dll -> libjackserver64.dll | |||||
| libjack-0.dll -> libjack64.dll | |||||
| - Copy the following files from C:\msys64\mingw64\bin to C:\Windows, these are | |||||
| dependencies for libjack. C:\Windows is the directory the current official JACK | |||||
| 1.9.11 binary installer targets, a better solution should be devised to avoid | |||||
| cluttering the Windows directory: | |||||
| libgcc_s_sjlj-1.dll | |||||
| libwinpthread-1.dll | |||||
| libtre-5.dll | |||||
| libsystre-0.dll | |||||
| - Copy JackRouter.dll from windows\JackRouter\Release64 to C:\Program Files\Jack | |||||
| This allows non-JACK applications to connect to the server through a special | |||||
| ASIO driver that routes audio to JACK instead of a physical audio device. | |||||
| Also copy libjack-0.dll from C:\msys64\mingw64\bin to C:\Program Files\Jack | |||||
| because JackRouter depends on libjack but will check for libjack-0.dll instead | |||||
| of the system-wide libjack64.dll previously copied to C:\Windows. Once done, | |||||
| JackRouter needs to be registered: | |||||
| regsvr32 JackRouter.dll | |||||
| Tested working clients: | |||||
| Ardour | |||||
| Bitwig Studio | |||||
| QJackCtl | |||||
| JackRouter | |||||
| Example of starting the JACK server including MIDI support for a Focusrite USB | |||||
| audio device using ASIO: | |||||
| jackd -R -S -X winmme -d portaudio -p 32 -r 48000 -d "ASIO::Focusrite USB ASIO" | |||||
| Development tools and links | |||||
| --------------------------- | |||||
| http://www.dependencywalker.com/ | |||||
| https://docs.microsoft.com/en-us/sysinternals/downloads/procmon | |||||
| https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags | |||||
| https://blogs.msdn.microsoft.com/junfeng/2006/11/20/debugging-loadlibrary-failures/ | |||||
| https://stackoverflow.com/questions/15852677/static-and-dynamic-shared-linking-with-mingw | |||||
| https://github.com/EddieRingle/portaudio/blob/master/src/hostapi/asio/ASIO-README.txt | |||||
| @@ -0,0 +1,51 @@ | |||||
| #include "version.iss" | |||||
| [Setup] | |||||
| AppName=JACK2 | |||||
| AppPublisher=jackaudio.org | |||||
| AppPublisherURL=https://github.com/jackaudio/jack2/ | |||||
| AppSupportURL=https://github.com/jackaudio/jack2/issues/ | |||||
| AppUpdatesURL=https://github.com/jackaudio/jack2-releases/releases/ | |||||
| AppVersion={#VERSION} | |||||
| DefaultDirName={commonpf32}\JACK2 | |||||
| DisableDirPage=yes | |||||
| OutputBaseFilename=jack2-win32-v{#VERSION} | |||||
| OutputDir=. | |||||
| UsePreviousAppDir=no | |||||
| [Types] | |||||
| Name: "full"; Description: "Full installation"; | |||||
| Name: "custom"; Description: "Custom installation"; Flags: iscustom; | |||||
| [Components] | |||||
| Name: qjackctl; Description: "QJackCtl application (recommended)"; Types: full; | |||||
| Name: dev; Description: "Developer resources"; Types: full; | |||||
| [Files] | |||||
| ; icon | |||||
| Source: "jack.ico"; DestDir: "{app}"; | |||||
| ; jackd and server libs | |||||
| Source: "win32\bin\jackd.exe"; DestDir: "{app}"; | |||||
| Source: "win32\lib\libjacknet.dll"; DestDir: "{app}"; | |||||
| Source: "win32\lib\libjackserver.dll"; DestDir: "{app}"; | |||||
| ; drivers | |||||
| Source: "win32\lib\jack\*.dll"; DestDir: "{app}\jack"; | |||||
| ; tools | |||||
| Source: "win32\bin\jack_*.exe"; DestDir: "{app}\tools"; | |||||
| ; jack client lib (NOTE goes into windir) | |||||
| Source: "win32\lib\libjack.dll"; DestDir: "{win}"; | |||||
| ; qjackctl | |||||
| Source: "win32\bin\qjackctl.exe"; DestDir: "{app}\qjackctl"; Components: qjackctl; | |||||
| Source: "Qt5*.dll"; DestDir: "{app}\qjackctl"; Components: qjackctl; | |||||
| Source: "qwindows.dll"; DestDir: "{app}\qjackctl\platforms"; Components: qjackctl; | |||||
| ; dev | |||||
| Source: "win32\include\jack\*.h"; DestDir: "{app}\include"; Components: dev; | |||||
| Source: "win32\lib\*.a"; DestDir: "{app}\lib"; Components: dev; | |||||
| Source: "win32\lib\jack\*.a"; DestDir: "{app}\lib\jack"; Components: dev; | |||||
| [Icons] | |||||
| Name: "{commonprograms}\QJackCtl"; Filename: "{app}\qjackctl\qjackctl.exe"; IconFilename: "{app}\jack.ico"; WorkingDir: "{app}"; Comment: "Graphical Interface for JACK"; Components: qjackctl; | |||||
| [Registry] | |||||
| Root: HKLM; Subkey: "Software\JACK"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; ValueType: string; ValueName: "Location"; ValueData: "{app}\jackd.exe" | |||||
| Root: HKLM; Subkey: "Software\JACK"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; ValueType: string; ValueName: "Version"; ValueData: "{#VERSION}" | |||||
| @@ -0,0 +1,52 @@ | |||||
| #include "version.iss" | |||||
| [Setup] | |||||
| ArchitecturesInstallIn64BitMode=x64 | |||||
| AppName=JACK2 | |||||
| AppPublisher=jackaudio.org | |||||
| AppPublisherURL=https://github.com/jackaudio/jack2/ | |||||
| AppSupportURL=https://github.com/jackaudio/jack2/issues/ | |||||
| AppUpdatesURL=https://github.com/jackaudio/jack2-releases/releases/ | |||||
| AppVersion={#VERSION} | |||||
| DefaultDirName={commonpf64}\JACK2 | |||||
| DisableDirPage=yes | |||||
| OutputBaseFilename=jack2-win64-v{#VERSION} | |||||
| OutputDir=. | |||||
| UsePreviousAppDir=no | |||||
| [Types] | |||||
| Name: "full"; Description: "Full installation"; | |||||
| Name: "custom"; Description: "Custom installation"; Flags: iscustom; | |||||
| [Components] | |||||
| Name: qjackctl; Description: "QJackCtl application (recommended)"; Types: full; | |||||
| Name: dev; Description: "Developer resources"; Types: full; | |||||
| [Files] | |||||
| ; icon | |||||
| Source: "jack.ico"; DestDir: "{app}"; | |||||
| ; jackd and server libs | |||||
| Source: "win64\bin\jackd.exe"; DestDir: "{app}"; | |||||
| Source: "win64\lib\libjacknet64.dll"; DestDir: "{app}"; | |||||
| Source: "win64\lib\libjackserver64.dll"; DestDir: "{app}"; | |||||
| ; drivers | |||||
| Source: "win64\lib\jack\*.dll"; DestDir: "{app}\jack"; | |||||
| ; tools | |||||
| Source: "win64\bin\jack_*.exe"; DestDir: "{app}\tools"; | |||||
| ; jack client lib (NOTE goes into windir) | |||||
| Source: "win64\lib\libjack64.dll"; DestDir: "{win}"; | |||||
| ; qjackctl | |||||
| Source: "win64\bin\qjackctl.exe"; DestDir: "{app}\qjackctl"; Components: qjackctl; | |||||
| Source: "Qt5*.dll"; DestDir: "{app}\qjackctl"; Components: qjackctl; | |||||
| Source: "qwindows.dll"; DestDir: "{app}\qjackctl\platforms"; Components: qjackctl; | |||||
| ; dev | |||||
| Source: "win64\include\jack\*.h"; DestDir: "{app}\include"; Components: dev; | |||||
| Source: "win64\lib\*.a"; DestDir: "{app}\lib"; Components: dev; | |||||
| Source: "win64\lib\jack\*.a"; DestDir: "{app}\lib\jack"; Components: dev; | |||||
| [Icons] | |||||
| Name: "{commonprograms}\QJackCtl"; Filename: "{app}\qjackctl\qjackctl.exe"; IconFilename: "{app}\jack.ico"; WorkingDir: "{app}"; Comment: "Graphical Interface for JACK"; Components: qjackctl; | |||||
| [Registry] | |||||
| Root: HKLM; Subkey: "Software\JACK"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; ValueType: string; ValueName: "Location"; ValueData: "{app}\jackd.exe" | |||||
| Root: HKLM; Subkey: "Software\JACK"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; ValueType: string; ValueName: "Version"; ValueData: "{#VERSION}" | |||||
| @@ -1,215 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_audioadapter" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libportaudio_x86_64.a" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libportaudio_x86_64.a" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libportaudio_x86_64.a" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libportaudio_x86.a" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackaudioadapter.res jackaudioadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libportaudio_x86.a" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jackaudioadapter.res jackaudioadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\audioadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-D__SMP__" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| <Add directory="portaudio" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libportaudio_x86.a" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add library="winmm" /> | |||||
| <Add library="ole32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackaudioadapter.res jackaudioadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackAudioAdapter.cpp" /> | |||||
| <Unit filename="..\common\JackAudioAdapterFactory.cpp" /> | |||||
| <Unit filename="..\common\JackAudioAdapterInterface.cpp" /> | |||||
| <Unit filename="..\common\JackLibSampleRateResampler.cpp" /> | |||||
| <Unit filename="..\common\JackResampler.cpp" /> | |||||
| <Unit filename="jackaudioadapter.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Unit filename="portaudio\JackPortAudioAdapter.cpp" /> | |||||
| <Unit filename="portaudio\JackPortAudioDevices.cpp" /> | |||||
| <Extensions> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,163 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_connect" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_connect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\connect.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt1.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| <envvars /> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,167 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_disconnect" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_disconnect" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\connect.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt1.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <debugger /> | |||||
| <envvars /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,173 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_dummy" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackdummydriver.res jackdummydriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jackdummydriver.res jackdummydriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\jack_dummy" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackdummydriver.res jackdummydriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackDummyDriver.cpp" /> | |||||
| <Unit filename="jackdummydriver.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,152 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_latent_client" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_latent_client" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\latent_client.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,155 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_load" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_load" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\ipload.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,173 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_loopback" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackloopbackdriver.res jackloopbackdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jackloopbackdriver.res jackloopbackdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\jack_loopback" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jackloopbackdriver.res jackloopbackdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="jackloopbackdriver.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Unit filename="..\common\JackLoopbackDriver.cpp" /> | |||||
| <Extensions> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,152 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_lsp" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_lsp" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\lsp.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,158 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_metro" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjack64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_metro" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\metro.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <lib_finder disable_auto="1" /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,114 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_midi_dump" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_midi_dump" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_midi_dump" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_midi_dump" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_midi_dump" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\midi_dump.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,152 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_midi_latency_test" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_midi_latency_test" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\example-clients\midi_latency_test.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,187 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_netadapter" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add library="libsamplerate_x86_64.a" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetadapter.res jacknetadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jacknetadapter.res jacknetadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\netadapter" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add library="libsamplerate_x86.a" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetadapter.res jacknetadapter.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-enable-auto-import" /> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackAudioAdapter.cpp" /> | |||||
| <Unit filename="..\common\JackAudioAdapterInterface.cpp" /> | |||||
| <Unit filename="..\common\JackLibSampleRateResampler.cpp" /> | |||||
| <Unit filename="..\common\JackNetAdapter.cpp" /> | |||||
| <Unit filename="..\common\JackResampler.cpp" /> | |||||
| <Unit filename="jacknetadapter.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,176 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_netdriver" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetdriver.res jacknetdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jacknetdriver.res jacknetdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\jack_net" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetdriver.res jacknetdriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-enable-auto-import" /> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| <Add library="ws2_32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackNetDriver.cpp" /> | |||||
| <Unit filename="jacknetdriver.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <lib_finder disable_auto="1" /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,169 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_netmanager" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release64\bin" /> | |||||
| <Add library="libjackserver64" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetmanager.res jacknetmanager.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Debug\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jacknetmanager.res jacknetmanager.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\netmanager" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add directory="Release\bin" /> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetmanager.res jacknetmanager.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-enable-auto-import" /> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| <Add library="ws2_32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackNetManager.cpp" /> | |||||
| <Unit filename="jacknetmanager.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,182 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_netonedriver" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjackserver64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Release/jacknetonedriver.res jacknetonedriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jacknetonedriver.res jacknetonedriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack\jack_netone" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\" /> | |||||
| <Option type="3" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DBUILD_DLL" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DSERVER_SIDE" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjackserver" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| <ExtraCommands> | |||||
| <Add before="windres -F pe-i386 -O coff -o Debug/jacknetonedriver.res jacknetonedriver.rc" /> | |||||
| </ExtraCommands> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-enable-auto-import" /> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| <Add library="ws2_32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\JackNetOneDriver.cpp" /> | |||||
| <Unit filename="..\common\netjack.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="..\common\netjack_packet.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="jacknetonedriver.rc"> | |||||
| <Option compilerVar="WINDRES" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <lib_finder disable_auto="1" /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||
| @@ -1,183 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |||||
| <CodeBlocks_project_file> | |||||
| <FileVersion major="1" minor="6" /> | |||||
| <Project> | |||||
| <Option title="jack_netsource" /> | |||||
| <Option pch_mode="2" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Build> | |||||
| <Target title="Win32 Release 64bits"> | |||||
| <Option output="Release64\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add library="libsamplerate_x86_64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 64bits"> | |||||
| <Option output="Debug64\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug64\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add library="libsamplerate_x86_64" /> | |||||
| <Add directory="Debug64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 64bits"> | |||||
| <Option output="Release64\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release64\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="libjack64" /> | |||||
| <Add library="libsamplerate_x86_64" /> | |||||
| <Add directory="Release64\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Release 32bits"> | |||||
| <Option output="Release\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add library="libsamplerate_x86" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Debug 32bits"> | |||||
| <Option output="Debug\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Debug\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-g" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add library="libsamplerate_x86" /> | |||||
| <Add directory="Debug\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| <Target title="Win32 Profiling 32bits"> | |||||
| <Option output="Release\bin\jack_netsource" prefix_auto="1" extension_auto="1" /> | |||||
| <Option object_output="Release\netsource" /> | |||||
| <Option type="1" /> | |||||
| <Option compiler="mingw_64" /> | |||||
| <Compiler> | |||||
| <Add option="-O2" /> | |||||
| <Add option="-Wall" /> | |||||
| <Add option="-m32" /> | |||||
| <Add option="-DJACK_MONITOR" /> | |||||
| <Add option="-DNO_JACK_ERROR" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add option="-m32" /> | |||||
| <Add library="libjack" /> | |||||
| <Add library="libsamplerate_x86" /> | |||||
| <Add directory="Release\bin" /> | |||||
| </Linker> | |||||
| </Target> | |||||
| </Build> | |||||
| <Compiler> | |||||
| <Add option="-Wall" /> | |||||
| <Add directory="..\example-clients" /> | |||||
| <Add directory="..\windows" /> | |||||
| <Add directory="..\common\jack" /> | |||||
| <Add directory="..\common" /> | |||||
| </Compiler> | |||||
| <Linker> | |||||
| <Add library="kernel32" /> | |||||
| <Add library="user32" /> | |||||
| <Add library="gdi32" /> | |||||
| <Add library="winspool" /> | |||||
| <Add library="comdlg32" /> | |||||
| <Add library="advapi32" /> | |||||
| <Add library="shell32" /> | |||||
| <Add library="ole32" /> | |||||
| <Add library="oleaut32" /> | |||||
| <Add library="uuid" /> | |||||
| <Add library="odbc32" /> | |||||
| <Add library="odbccp32" /> | |||||
| <Add library="ws2_32" /> | |||||
| </Linker> | |||||
| <Unit filename="..\common\netjack_packet.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="..\example-clients\netsource.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Unit filename="getopt1.c"> | |||||
| <Option compilerVar="CC" /> | |||||
| </Unit> | |||||
| <Extensions> | |||||
| <code_completion /> | |||||
| <envvars /> | |||||
| <debugger /> | |||||
| <AutoVersioning> | |||||
| <Scheme minor_max="10" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" /> | |||||
| <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C++" svn="0" svn_directory="" header_path="version.h" /> | |||||
| <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" /> | |||||
| </AutoVersioning> | |||||
| </Extensions> | |||||
| </Project> | |||||
| </CodeBlocks_project_file> | |||||