Browse Source

Compile on Linux again

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1284 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.59
sletz 19 years ago
parent
commit
35bdbab224
9 changed files with 189 additions and 220 deletions
  1. +2
    -0
      common/JackAPIWrapper.cpp
  2. +1
    -1
      linux/Makefile
  3. +6
    -12
      linux/alsa/JackAlsaDriver.cpp
  4. +162
    -177
      linux/alsa/alsa_driver.h
  5. +6
    -7
      linux/alsa/hammerfall.c
  6. +1
    -6
      linux/alsa/hardware.h
  7. +4
    -5
      linux/alsa/hdsp.c
  8. +7
    -11
      linux/alsa/ice1712.c
  9. +0
    -1
      linux/alsa/memops.h

+ 2
- 0
common/JackAPIWrapper.cpp View File

@@ -20,6 +20,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "jack.h"
#include "JackExports.h"
#include <dlfcn.h>
#include <stdarg.h>
#include <stdio.h>

#ifdef __cplusplus
extern "C"


+ 1
- 1
linux/Makefile View File

@@ -52,7 +52,7 @@ CXXFLAGS := -g -O3 -fPIC -DSOCKET_RPC_FIFO_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix
# Add the -D__CLIENTDEBUG__ flag to activate client validation


linux : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY) \
linux : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_WRAPPER_LIB) $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY) \
synchroClient synchroServer synchroServerClient testSem jack_test

all : $(TARGET_LINUX_SERVER) $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY)


+ 6
- 12
linux/alsa/JackAlsaDriver.cpp View File

@@ -363,8 +363,7 @@ JackAlsaDriver::alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
driver->read_via_copy = driver->quirk_bswap?
sample_move_dS_s32u24s : sample_move_dS_s32u24;
break;
}
}
}
}

int
@@ -454,9 +453,7 @@ JackAlsaDriver::alsa_driver_configure_stream (alsa_driver_t *driver, char *devic
&frame_rate, NULL) ;
driver->frame_rate = frame_rate ;
if (err < 0) {
jack_error ("ALSA: cannot set sample/frame rate to %"
PRIu32 " for %s", driver->frame_rate,
stream_name);
jack_error ("ALSA: cannot set sample/frame rate to %ld for %s", driver->frame_rate, stream_name);
return -1;
}
if (!*nchns) {
@@ -499,9 +496,7 @@ JackAlsaDriver::alsa_driver_configure_stream (alsa_driver_t *driver, char *devic
driver->frames_per_cycle,
0))
< 0) {
jack_error ("ALSA: cannot set period size to %" PRIu32
" frames for %s", driver->frames_per_cycle,
stream_name);
jack_error ("ALSA: cannot set period size to %ld frames for %s", driver->frames_per_cycle, stream_name);
return -1;
}

@@ -524,19 +519,18 @@ JackAlsaDriver::alsa_driver_configure_stream (alsa_driver_t *driver, char *devic
}
jack_error ("ALSA: use %d periods for %s", *nperiodsp, stream_name);
/*
if (!jack_power_of_two(driver->frames_per_cycle)) {
jack_error("JACK: frames must be a power of two "
"(64, 512, 1024, ...)\n");
return -1;
}
*/
if ((err = snd_pcm_hw_params_set_buffer_size (handle, hw_params,
*nperiodsp *
driver->frames_per_cycle))
< 0) {
jack_error ("ALSA: cannot set buffer length to %" PRIu32
" for %s",
*nperiodsp * driver->frames_per_cycle,
jack_error ("ALSA: cannot set buffer length to %ld for %s", *nperiodsp * driver->frames_per_cycle,
stream_name);
return -1;
}


+ 162
- 177
linux/alsa/alsa_driver.h View File

@@ -1,33 +1,35 @@
/*
Copyright (C) 2001 Paul Davis
Copyright (C) 2001 Paul Davis

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

$Id: alsa_driver.h 945 2006-05-04 15:14:45Z pbd $
*/

#ifndef __jack_alsa_driver_h__
#define __jack_alsa_driver_h__

#include <alsa/asoundlib.h>

#include "bitset.h"

#if __BYTE_ORDER == __LITTLE_ENDIAN
#define SND_PCM_FORMAT_S24_3 SND_PCM_FORMAT_S24_3LE
#define IS_LE 0
#define IS_BE 1
#elif __BYTE_ORDER == __BIG_ENDIAN
#define SND_PCM_FORMAT_S24_3 SND_PCM_FORMAT_S24_3BE
#define IS_LE 1
#define IS_BE 0
#endif

#include "types.h"
@@ -35,112 +37,100 @@
#include "driver.h"
#include "memops.h"


typedef void (*ReadCopyFunction) (jack_default_audio_sample_t *dst, char *src,
unsigned long src_bytes,
unsigned long src_skip_bytes);
typedef void (*ReadCopyFunction) (jack_default_audio_sample_t *dst, char *src,
unsigned long src_bytes,
unsigned long src_skip_bytes);
typedef void (*WriteCopyFunction) (char *dst, jack_default_audio_sample_t *src,
unsigned long src_bytes,
unsigned long dst_skip_bytes,
dither_state_t *state);
typedef void (*CopyCopyFunction) (char *dst, char *src,
unsigned long src_bytes,
unsigned long dst_skip_bytes,
unsigned long src_skip_byte);

typedef struct _alsa_driver
{
unsigned long src_bytes,
unsigned long dst_skip_bytes,
dither_state_t *state);
typedef void (*CopyCopyFunction) (char *dst, char *src,
unsigned long src_bytes,
unsigned long dst_skip_bytes,
unsigned long src_skip_byte);

typedef struct _alsa_driver {

JACK_DRIVER_NT_DECL

int poll_timeout;
jack_time_t poll_last;
jack_time_t poll_next;
char **playback_addr;
char **capture_addr;
int poll_timeout;
jack_time_t poll_last;
jack_time_t poll_next;
char **playback_addr;
char **capture_addr;
const snd_pcm_channel_area_t *capture_areas;
const snd_pcm_channel_area_t *playback_areas;
struct pollfd *pfd;
unsigned int playback_nfds;
unsigned int capture_nfds;
unsigned long interleave_unit;
unsigned long* capture_interleave_skip;
unsigned long* playback_interleave_skip;
channel_t max_nchannels;
channel_t user_nchannels;
channel_t playback_nchannels;
channel_t capture_nchannels;
unsigned long playback_sample_bytes;
unsigned long capture_sample_bytes;
jack_nframes_t frame_rate;
jack_nframes_t frames_per_cycle;
jack_nframes_t capture_frame_latency;
jack_nframes_t playback_frame_latency;
unsigned long *silent;
char *alsa_name_playback;
char *alsa_name_capture;
char *alsa_driver;
bitset_t channels_not_done;
bitset_t channels_done;
snd_pcm_format_t playback_sample_format;
snd_pcm_format_t capture_sample_format;
float max_sample_val;
unsigned long user_nperiods;
unsigned int playback_nperiods;
unsigned int capture_nperiods;
unsigned long last_mask;
snd_ctl_t *ctl_handle;
snd_pcm_t *playback_handle;
snd_pcm_t *capture_handle;
snd_pcm_hw_params_t *playback_hw_params;
snd_pcm_sw_params_t *playback_sw_params;
snd_pcm_hw_params_t *capture_hw_params;
snd_pcm_sw_params_t *capture_sw_params;
jack_hardware_t *hw;
ClockSyncStatus *clock_sync_data;
jack_client_t *client;
JSList *capture_ports;
JSList *playback_ports;
JSList *monitor_ports;
struct pollfd *pfd;
unsigned int playback_nfds;
unsigned int capture_nfds;
unsigned long interleave_unit;
unsigned long *capture_interleave_skip;
unsigned long *playback_interleave_skip;
channel_t max_nchannels;
channel_t user_nchannels;
channel_t playback_nchannels;
channel_t capture_nchannels;
unsigned long playback_sample_bytes;
unsigned long capture_sample_bytes;
jack_nframes_t frame_rate;
jack_nframes_t frames_per_cycle;
jack_nframes_t capture_frame_latency;
jack_nframes_t playback_frame_latency;
unsigned long *silent;
char *alsa_name_playback;
char *alsa_name_capture;
char *alsa_driver;
bitset_t channels_not_done;
bitset_t channels_done;
snd_pcm_format_t playback_sample_format;
snd_pcm_format_t capture_sample_format;
float max_sample_val;
unsigned long user_nperiods;
unsigned int playback_nperiods;
unsigned int capture_nperiods;
unsigned long last_mask;
snd_ctl_t *ctl_handle;
snd_pcm_t *playback_handle;
snd_pcm_t *capture_handle;
snd_pcm_hw_params_t *playback_hw_params;
snd_pcm_sw_params_t *playback_sw_params;
snd_pcm_hw_params_t *capture_hw_params;
snd_pcm_sw_params_t *capture_sw_params;
jack_hardware_t *hw;
ClockSyncStatus *clock_sync_data;
jack_client_t *client;
JSList *capture_ports;
JSList *playback_ports;
JSList *monitor_ports;

unsigned long input_monitor_mask;

char soft_mode :
1;
char hw_monitoring :
1;
char hw_metering :
1;
char all_monitor_in :
1;
char capture_and_playback_not_synced :
1;
char playback_interleaved :
1;
char capture_interleaved :
1;
char with_monitor_ports :
1;
char soft_mode;
char hw_monitoring;
char hw_metering;
char all_monitor_in;
char capture_and_playback_not_synced;
char playback_interleaved;
char capture_interleaved;
char with_monitor_ports;
char has_clock_sync_reporting;
char has_hw_monitoring;
char has_hw_metering;
char quirk_bswap;

ReadCopyFunction read_via_copy;
WriteCopyFunction write_via_copy;
CopyCopyFunction channel_copy;

int dither;
int dither;
dither_state_t *dither_state;

SampleClockMode clock_mode;
JSList *clock_sync_listeners;
pthread_mutex_t clock_sync_lock;
unsigned long next_clock_sync_listener_id;
char has_clock_sync_reporting :
1;
char has_hw_monitoring :
1;
char has_hw_metering :
1;

int running;
int run;
@@ -149,100 +139,95 @@ char has_hw_metering :
int xrun_count;
int process_count;

}
alsa_driver_t;
} alsa_driver_t;

static inline void
alsa_driver_mark_channel_done (alsa_driver_t *driver, channel_t chn)
{
bitset_remove (driver->channels_not_done, chn);
driver->silent[chn] = 0;
static inline void
alsa_driver_mark_channel_done (alsa_driver_t *driver, channel_t chn) {
bitset_remove (driver->channels_not_done, chn);
driver->silent[chn] = 0;
}

static inline void
static inline void
alsa_driver_silence_on_channel (alsa_driver_t *driver, channel_t chn,
jack_nframes_t nframes)
{
if (driver->playback_interleaved) {
memset_interleave
(driver->playback_addr[chn],
0, nframes * driver->playback_sample_bytes,
driver->interleave_unit,
driver->playback_interleave_skip[chn]);
} else {
memset (driver->playback_addr[chn], 0,
nframes * driver->playback_sample_bytes);
}
alsa_driver_mark_channel_done (driver, chn);
jack_nframes_t nframes) {
if (driver->playback_interleaved) {
memset_interleave
(driver->playback_addr[chn],
0, nframes * driver->playback_sample_bytes,
driver->interleave_unit,
driver->playback_interleave_skip[chn]);
} else {
memset (driver->playback_addr[chn], 0,
nframes * driver->playback_sample_bytes);
}
alsa_driver_mark_channel_done (driver,chn);
}

static inline void
static inline void
alsa_driver_silence_on_channel_no_mark (alsa_driver_t *driver, channel_t chn,
jack_nframes_t nframes)
{
if (driver->playback_interleaved) {
memset_interleave
(driver->playback_addr[chn],
0, nframes * driver->playback_sample_bytes,
driver->interleave_unit,
driver->playback_interleave_skip[chn]);
} else {
memset (driver->playback_addr[chn], 0,
nframes * driver->playback_sample_bytes);
}
jack_nframes_t nframes) {
if (driver->playback_interleaved) {
memset_interleave
(driver->playback_addr[chn],
0, nframes * driver->playback_sample_bytes,
driver->interleave_unit,
driver->playback_interleave_skip[chn]);
} else {
memset (driver->playback_addr[chn], 0,
nframes * driver->playback_sample_bytes);
}
}

static inline void
static inline void
alsa_driver_read_from_channel (alsa_driver_t *driver,
channel_t channel,
jack_default_audio_sample_t *buf,
jack_nframes_t nsamples)
channel_t channel,
jack_default_audio_sample_t *buf,
jack_nframes_t nsamples)
{
driver->read_via_copy (buf,
driver->capture_addr[channel],
nsamples,
driver->capture_interleave_skip[channel]);
driver->read_via_copy (buf,
driver->capture_addr[channel],
nsamples,
driver->capture_interleave_skip[channel]);
}

static inline void
static inline void
alsa_driver_write_to_channel (alsa_driver_t *driver,
channel_t channel,
jack_default_audio_sample_t *buf,
jack_nframes_t nsamples)
channel_t channel,
jack_default_audio_sample_t *buf,
jack_nframes_t nsamples)
{
driver->write_via_copy (driver->playback_addr[channel],
buf,
nsamples,
driver->playback_interleave_skip[channel],
driver->dither_state + channel);
alsa_driver_mark_channel_done (driver, channel);
driver->write_via_copy (driver->playback_addr[channel],
buf,
nsamples,
driver->playback_interleave_skip[channel],
driver->dither_state+channel);
alsa_driver_mark_channel_done (driver, channel);
}

static inline void
alsa_driver_copy_channel (alsa_driver_t *driver,
channel_t input_channel,
channel_t output_channel,
jack_nframes_t nsamples)
{

driver->channel_copy (driver->playback_addr[output_channel],
driver->capture_addr[input_channel],
nsamples * driver->playback_sample_bytes,
driver->playback_interleave_skip[output_channel],
driver->capture_interleave_skip[input_channel]);
alsa_driver_mark_channel_done (driver, output_channel);
static inline void
alsa_driver_copy_channel (alsa_driver_t *driver,
channel_t input_channel,
channel_t output_channel,
jack_nframes_t nsamples) {

driver->channel_copy (driver->playback_addr[output_channel],
driver->capture_addr[input_channel],
nsamples * driver->playback_sample_bytes,
driver->playback_interleave_skip[output_channel],
driver->capture_interleave_skip[input_channel]);
alsa_driver_mark_channel_done (driver, output_channel);
}

void alsa_driver_silence_untouched_channels (alsa_driver_t *driver,
jack_nframes_t nframes);
void alsa_driver_set_clock_sync_status (alsa_driver_t *driver, channel_t chn,
ClockSyncStatus status);
int alsa_driver_listen_for_clock_sync_status (alsa_driver_t *,
ClockSyncListenerFunction,
void *arg);
int alsa_driver_stop_listen_for_clock_sync_status (alsa_driver_t *,
unsigned int);
void alsa_driver_clock_sync_notify (alsa_driver_t *, channel_t chn,
ClockSyncStatus);
void alsa_driver_silence_untouched_channels (alsa_driver_t *driver,
jack_nframes_t nframes);
void alsa_driver_set_clock_sync_status (alsa_driver_t *driver, channel_t chn,
ClockSyncStatus status);
int alsa_driver_listen_for_clock_sync_status (alsa_driver_t *,
ClockSyncListenerFunction,
void *arg);
int alsa_driver_stop_listen_for_clock_sync_status (alsa_driver_t *,
unsigned int);
void alsa_driver_clock_sync_notify (alsa_driver_t *, channel_t chn,
ClockSyncStatus);

#endif /* __jack_alsa_driver_h__ */

+ 6
- 7
linux/alsa/hammerfall.c View File

@@ -142,7 +142,7 @@ hammerfall_check_sync (hammerfall_t *h, snd_ctl_elem_value_t *ctl)
static int
hammerfall_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
{
hammerfall_t *h = (hammerfall_t *) hw->private;
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
snd_ctl_elem_value_t *ctl;
snd_ctl_elem_id_t *ctl_id;
int err;
@@ -170,7 +170,7 @@ hammerfall_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
static int
hammerfall_change_sample_clock (jack_hardware_t *hw, SampleClockMode mode)
{
hammerfall_t *h = (hammerfall_t *) hw->private;
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
snd_ctl_elem_value_t *ctl;
snd_ctl_elem_id_t *ctl_id;
int err;
@@ -203,7 +203,7 @@ static void
hammerfall_release (jack_hardware_t *hw)

{
hammerfall_t *h = (hammerfall_t *) hw->private;
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
void *status;

if (h == 0) {
@@ -221,7 +221,7 @@ static void *
hammerfall_monitor_controls (void *arg)
{
jack_hardware_t *hw = (jack_hardware_t *) arg;
hammerfall_t *h = (hammerfall_t *) hw->private;
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
snd_ctl_elem_id_t *switch_id[3];
snd_ctl_elem_value_t *sw[3];

@@ -270,7 +270,6 @@ hammerfall_monitor_controls (void *arg)

jack_hardware_t *
jack_alsa_hammerfall_hw_new (alsa_driver_t *driver)

{
jack_hardware_t *hw;
hammerfall_t *h;
@@ -279,7 +278,7 @@ jack_alsa_hammerfall_hw_new (alsa_driver_t *driver)

hw->capabilities = Cap_HardwareMonitoring|Cap_AutoSync|Cap_WordClock|Cap_ClockMaster|Cap_ClockLockReporting;
hw->input_monitor_mask = 0;
hw->private = 0;
hw->private_hw = 0;

hw->set_input_monitor_mask = hammerfall_set_input_monitor_mask;
hw->change_sample_clock = hammerfall_change_sample_clock;
@@ -299,7 +298,7 @@ jack_alsa_hammerfall_hw_new (alsa_driver_t *driver)
h->monitor_interval.tv_sec = 1;
h->monitor_interval.tv_nsec = 0;

hw->private = h;
hw->private_hw = h;

#if 0
if (pthread_create (&h->monitor_thread, 0, hammerfall_monitor_controls, hw)) {


+ 1
- 6
linux/alsa/hardware.h View File

@@ -21,8 +21,6 @@
#ifndef __jack_hardware_h__
#define __jack_hardware_h__

//#include <jack/types.h>

#include "types.h"

typedef enum {
@@ -48,10 +46,8 @@ typedef int (*JackHardwareChangeSampleClockFunction)(struct _jack_hardware *, Sa
typedef double (*JackHardwareGetHardwarePeak)(jack_port_t *port, jack_nframes_t frames);
typedef double (*JackHardwareGetHardwarePower)(jack_port_t *port, jack_nframes_t frames);


typedef struct _jack_hardware
{

unsigned long capabilities;
unsigned long input_monitor_mask;

@@ -60,8 +56,7 @@ typedef struct _jack_hardware
JackHardwareReleaseFunction release;
JackHardwareGetHardwarePeak get_hardware_peak;
JackHardwareGetHardwarePower get_hardware_power;
void *private_hw;

void *private_hw;
}
jack_hardware_t;



+ 4
- 5
linux/alsa/hdsp.c View File

@@ -89,7 +89,7 @@ set_control_id (snd_ctl_elem_id_t *ctl, const char *name)
static int hdsp_set_mixer_gain(jack_hardware_t *hw, int input_channel,
int output_channel, int gain)
{
hdsp_t *h = (hdsp_t *) hw->private;
hdsp_t *h = (hdsp_t *) hw->private_hw;
snd_ctl_elem_value_t *ctl;
snd_ctl_elem_id_t *ctl_id;
int err;
@@ -194,7 +194,7 @@ static double hdsp_get_hardware_power (jack_port_t *port, jack_nframes_t frame)
static void
hdsp_release (jack_hardware_t *hw)
{
hdsp_t *h = (hdsp_t *) hw->private;
hdsp_t *h = (hdsp_t *) hw->private_hw;

if (h != 0) {
free (h);
@@ -204,7 +204,6 @@ hdsp_release (jack_hardware_t *hw)
/* Mostly copied directly from hammerfall.c */
jack_hardware_t *
jack_alsa_hdsp_hw_new (alsa_driver_t *driver)

{
jack_hardware_t *hw;
hdsp_t *h;
@@ -216,7 +215,7 @@ jack_alsa_hdsp_hw_new (alsa_driver_t *driver)
/* hw->capabilities = Cap_HardwareMonitoring|Cap_AutoSync|Cap_WordClock|Cap_ClockMaster|Cap_ClockLockReporting; */
hw->capabilities = Cap_HardwareMonitoring | Cap_HardwareMetering;
hw->input_monitor_mask = 0;
hw->private = 0;
hw->private_hw = 0;

hw->set_input_monitor_mask = hdsp_set_input_monitor_mask;
hw->change_sample_clock = hdsp_change_sample_clock;
@@ -226,7 +225,7 @@ jack_alsa_hdsp_hw_new (alsa_driver_t *driver)
h = (hdsp_t *) malloc (sizeof (hdsp_t));
h->driver = driver;
hw->private = h;
hw->private_hw = h;

return hw;
}

+ 7
- 11
linux/alsa/ice1712.c View File

@@ -32,9 +32,8 @@

static int
ice1712_hw_monitor_toggle(jack_hardware_t *hw, int idx, int onoff)

{
ice1712_t *h = (ice1712_t *) hw->private;
ice1712_t *h = (ice1712_t *) hw->private_hw;
snd_ctl_elem_value_t *val;
int err;
@@ -62,11 +61,10 @@ ice1712_hw_monitor_toggle(jack_hardware_t *hw, int idx, int onoff)
}

static int
ice1712_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
ice1712_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
{
int idx;
ice1712_t *h = (ice1712_t *) hw->private;
ice1712_t *h = (ice1712_t *) hw->private_hw;
for (idx = 0; idx < 10; idx++) {
if (h->active_channels & (1<<idx)) {
@@ -79,8 +77,7 @@ ice1712_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
}

static int
ice1712_change_sample_clock (jack_hardware_t *hw, SampleClockMode mode)
ice1712_change_sample_clock (jack_hardware_t *hw, SampleClockMode mode)
{
return -1;
}
@@ -88,7 +85,7 @@ ice1712_change_sample_clock (jack_hardware_t *hw, SampleClockMode mode)
static void
ice1712_release (jack_hardware_t *hw)
{
ice1712_t *h = (ice1712_t *) hw->private;
ice1712_t *h = (ice1712_t *) hw->private_hw;
if (h == 0)
return;
@@ -102,7 +99,6 @@ ice1712_release (jack_hardware_t *hw)

jack_hardware_t *
jack_alsa_ice1712_hw_new (alsa_driver_t *driver)

{
jack_hardware_t *hw;
ice1712_t *h;
@@ -113,7 +109,7 @@ jack_alsa_ice1712_hw_new (alsa_driver_t *driver)

hw->capabilities = Cap_HardwareMonitoring;
hw->input_monitor_mask = 0;
hw->private = 0;
hw->private_hw = 0;

hw->set_input_monitor_mask = ice1712_set_input_monitor_mask;
hw->change_sample_clock = ice1712_change_sample_clock;
@@ -155,7 +151,7 @@ jack_alsa_ice1712_hw_new (alsa_driver_t *driver)
h->active_channels |= 0x300U;
}
hw->private = h;
hw->private_hw = h;

return hw;
}

+ 0
- 1
linux/alsa/memops.h View File

@@ -38,7 +38,6 @@ typedef struct {
float rm1;
unsigned int idx;
float e[DITHER_BUF_SIZE];
}
} dither_state_t;

#ifdef __cplusplus


Loading…
Cancel
Save