/usr/lib/faust/audio/netjack-dsp.h is in faust 0.9.46-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /************************************************************************
IMPORTANT NOTE : this file contains two clearly delimited sections :
the ARCHITECTURE section (in two parts) and the USER section. Each section
is governed by its own copyright and license. Please check individually
each section for license and copyright information.
*************************************************************************/
/*******************BEGIN ARCHITECTURE SECTION (part 1/2)****************/
/************************************************************************
FAUST Architecture File
Copyright (C) 2003-2011 GRAME, Centre National de Creation Musicale
---------------------------------------------------------------------
This Architecture section is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; If not, see <http://www.gnu.org/licenses/>.
EXCEPTION : As a special exception, you may create a larger work
that contains this FAUST architecture section and distribute
that work under terms of your choice, so long as this FAUST
architecture section is not modified.
************************************************************************
************************************************************************/
#ifndef __netjack_dsp__
#define __netjack_dsp__
#include "audio.h"
#include "dsp.h"
#include <string>
#include <jack/net.h>
class netjackaudio : public audio {
dsp* fDsp;
jack_net_slave_t* fNet;
int fCelt;
std::string fMasterIP;
int fMasterPort;
static void net_shutdown(void *)
{
printf("Network failure, restart...\n");
}
static int net_process(jack_nframes_t buffer_size,
int,
float** audio_input_buffer,
int,
void**,
int,
float** audio_output_buffer,
int,
void**,
void* arg)
{
AVOIDDENORMALS;
netjackaudio* obj = (netjackaudio*)arg;
obj->fDsp->compute(buffer_size, audio_input_buffer, audio_output_buffer);
return 0;
}
public:
netjackaudio(int celt, const std::string master_ip, int master_port)
:fCelt(celt), fMasterIP(master_ip), fMasterPort(master_port)
{}
bool init(const char* name, dsp* DSP)
{
fDsp = DSP;
jack_slave_t request = {
DSP->getNumInputs(),
DSP->getNumOutputs(),
0, 0,
DEFAULT_MTU,
-1,
(fCelt > 0) ? JackCeltEncoder: JackFloatEncoder,
(fCelt > 0) ? fCelt : 0,
2
};
jack_master_t result;
if ((fNet = jack_net_slave_open(fMasterIP.c_str(), fMasterPort, name, &request, &result)) == 0) {
printf("jack remote server not running ?\n");
return false;
}
jack_set_net_slave_process_callback(fNet, net_process, this);
jack_set_net_slave_shutdown_callback(fNet, net_shutdown, 0);
fDsp->init(result.sample_rate);
return true;
}
bool start()
{
if (jack_net_slave_activate(fNet)) {
printf("cannot activate net");
return false;
}
return true;
}
void stop()
{
jack_net_slave_deactivate(fNet);
jack_net_slave_close(fNet);
}
};
#endif
/********************END ARCHITECTURE SECTION (part 2/2)****************/
|