提交 6b9866c8 编写于 作者: J Julia Lawall 提交者: Takashi Iwai

ALSA: bebob: constify various snd_bebob structures

The structures of type snd_bebob_clock_spec, snd_bebob_rate_spec,
snd_bebob_meter_spec, and snd_bebob_spec are never modified after they are
initialized.  Make them all const.

Done with the help of Coccinelle.
Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
Tested-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
Reviewed-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
上级 bde3e288
...@@ -335,7 +335,7 @@ static void bebob_remove(struct fw_unit *unit) ...@@ -335,7 +335,7 @@ static void bebob_remove(struct fw_unit *unit)
snd_card_free_when_closed(bebob->card); snd_card_free_when_closed(bebob->card);
} }
static struct snd_bebob_rate_spec normal_rate_spec = { static const struct snd_bebob_rate_spec normal_rate_spec = {
.get = &snd_bebob_stream_get_rate, .get = &snd_bebob_stream_get_rate,
.set = &snd_bebob_stream_set_rate .set = &snd_bebob_stream_set_rate
}; };
......
...@@ -70,9 +70,9 @@ struct snd_bebob_meter_spec { ...@@ -70,9 +70,9 @@ struct snd_bebob_meter_spec {
int (*get)(struct snd_bebob *bebob, u32 *target, unsigned int size); int (*get)(struct snd_bebob *bebob, u32 *target, unsigned int size);
}; };
struct snd_bebob_spec { struct snd_bebob_spec {
struct snd_bebob_clock_spec *clock; const struct snd_bebob_clock_spec *clock;
struct snd_bebob_rate_spec *rate; const struct snd_bebob_rate_spec *rate;
struct snd_bebob_meter_spec *meter; const struct snd_bebob_meter_spec *meter;
}; };
struct snd_bebob { struct snd_bebob {
...@@ -235,19 +235,19 @@ int snd_bebob_create_pcm_devices(struct snd_bebob *bebob); ...@@ -235,19 +235,19 @@ int snd_bebob_create_pcm_devices(struct snd_bebob *bebob);
int snd_bebob_create_hwdep_device(struct snd_bebob *bebob); int snd_bebob_create_hwdep_device(struct snd_bebob *bebob);
/* model specific operations */ /* model specific operations */
extern struct snd_bebob_spec phase88_rack_spec; extern const struct snd_bebob_spec phase88_rack_spec;
extern struct snd_bebob_spec phase24_series_spec; extern const struct snd_bebob_spec phase24_series_spec;
extern struct snd_bebob_spec yamaha_go_spec; extern const struct snd_bebob_spec yamaha_go_spec;
extern struct snd_bebob_spec saffirepro_26_spec; extern const struct snd_bebob_spec saffirepro_26_spec;
extern struct snd_bebob_spec saffirepro_10_spec; extern const struct snd_bebob_spec saffirepro_10_spec;
extern struct snd_bebob_spec saffire_le_spec; extern const struct snd_bebob_spec saffire_le_spec;
extern struct snd_bebob_spec saffire_spec; extern const struct snd_bebob_spec saffire_spec;
extern struct snd_bebob_spec maudio_fw410_spec; extern const struct snd_bebob_spec maudio_fw410_spec;
extern struct snd_bebob_spec maudio_audiophile_spec; extern const struct snd_bebob_spec maudio_audiophile_spec;
extern struct snd_bebob_spec maudio_solo_spec; extern const struct snd_bebob_spec maudio_solo_spec;
extern struct snd_bebob_spec maudio_ozonic_spec; extern const struct snd_bebob_spec maudio_ozonic_spec;
extern struct snd_bebob_spec maudio_nrv10_spec; extern const struct snd_bebob_spec maudio_nrv10_spec;
extern struct snd_bebob_spec maudio_special_spec; extern const struct snd_bebob_spec maudio_special_spec;
int snd_bebob_maudio_special_discover(struct snd_bebob *bebob, bool is1814); int snd_bebob_maudio_special_discover(struct snd_bebob *bebob, bool is1814);
int snd_bebob_maudio_load_firmware(struct fw_unit *unit); int snd_bebob_maudio_load_firmware(struct fw_unit *unit);
......
...@@ -200,7 +200,7 @@ saffirepro_both_clk_src_get(struct snd_bebob *bebob, unsigned int *id) ...@@ -200,7 +200,7 @@ saffirepro_both_clk_src_get(struct snd_bebob *bebob, unsigned int *id)
return err; return err;
} }
struct snd_bebob_spec saffire_le_spec; const struct snd_bebob_spec saffire_le_spec;
static enum snd_bebob_clock_type saffire_both_clk_src_types[] = { static enum snd_bebob_clock_type saffire_both_clk_src_types[] = {
SND_BEBOB_CLOCK_TYPE_INTERNAL, SND_BEBOB_CLOCK_TYPE_INTERNAL,
SND_BEBOB_CLOCK_TYPE_EXTERNAL, SND_BEBOB_CLOCK_TYPE_EXTERNAL,
...@@ -229,7 +229,7 @@ static const char *const saffire_meter_labels[] = { ...@@ -229,7 +229,7 @@ static const char *const saffire_meter_labels[] = {
static int static int
saffire_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size) saffire_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size)
{ {
struct snd_bebob_meter_spec *spec = bebob->spec->meter; const struct snd_bebob_meter_spec *spec = bebob->spec->meter;
unsigned int channels; unsigned int channels;
u64 offset; u64 offset;
int err; int err;
...@@ -260,60 +260,60 @@ saffire_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size) ...@@ -260,60 +260,60 @@ saffire_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size)
return err; return err;
} }
static struct snd_bebob_rate_spec saffirepro_both_rate_spec = { static const struct snd_bebob_rate_spec saffirepro_both_rate_spec = {
.get = &saffirepro_both_clk_freq_get, .get = &saffirepro_both_clk_freq_get,
.set = &saffirepro_both_clk_freq_set, .set = &saffirepro_both_clk_freq_set,
}; };
/* Saffire Pro 26 I/O */ /* Saffire Pro 26 I/O */
static struct snd_bebob_clock_spec saffirepro_26_clk_spec = { static const struct snd_bebob_clock_spec saffirepro_26_clk_spec = {
.num = ARRAY_SIZE(saffirepro_26_clk_src_types), .num = ARRAY_SIZE(saffirepro_26_clk_src_types),
.types = saffirepro_26_clk_src_types, .types = saffirepro_26_clk_src_types,
.get = &saffirepro_both_clk_src_get, .get = &saffirepro_both_clk_src_get,
}; };
struct snd_bebob_spec saffirepro_26_spec = { const struct snd_bebob_spec saffirepro_26_spec = {
.clock = &saffirepro_26_clk_spec, .clock = &saffirepro_26_clk_spec,
.rate = &saffirepro_both_rate_spec, .rate = &saffirepro_both_rate_spec,
.meter = NULL .meter = NULL
}; };
/* Saffire Pro 10 I/O */ /* Saffire Pro 10 I/O */
static struct snd_bebob_clock_spec saffirepro_10_clk_spec = { static const struct snd_bebob_clock_spec saffirepro_10_clk_spec = {
.num = ARRAY_SIZE(saffirepro_10_clk_src_types), .num = ARRAY_SIZE(saffirepro_10_clk_src_types),
.types = saffirepro_10_clk_src_types, .types = saffirepro_10_clk_src_types,
.get = &saffirepro_both_clk_src_get, .get = &saffirepro_both_clk_src_get,
}; };
struct snd_bebob_spec saffirepro_10_spec = { const struct snd_bebob_spec saffirepro_10_spec = {
.clock = &saffirepro_10_clk_spec, .clock = &saffirepro_10_clk_spec,
.rate = &saffirepro_both_rate_spec, .rate = &saffirepro_both_rate_spec,
.meter = NULL .meter = NULL
}; };
static struct snd_bebob_rate_spec saffire_both_rate_spec = { static const struct snd_bebob_rate_spec saffire_both_rate_spec = {
.get = &snd_bebob_stream_get_rate, .get = &snd_bebob_stream_get_rate,
.set = &snd_bebob_stream_set_rate, .set = &snd_bebob_stream_set_rate,
}; };
static struct snd_bebob_clock_spec saffire_both_clk_spec = { static const struct snd_bebob_clock_spec saffire_both_clk_spec = {
.num = ARRAY_SIZE(saffire_both_clk_src_types), .num = ARRAY_SIZE(saffire_both_clk_src_types),
.types = saffire_both_clk_src_types, .types = saffire_both_clk_src_types,
.get = &saffire_both_clk_src_get, .get = &saffire_both_clk_src_get,
}; };
/* Saffire LE */ /* Saffire LE */
static struct snd_bebob_meter_spec saffire_le_meter_spec = { static const struct snd_bebob_meter_spec saffire_le_meter_spec = {
.num = ARRAY_SIZE(saffire_le_meter_labels), .num = ARRAY_SIZE(saffire_le_meter_labels),
.labels = saffire_le_meter_labels, .labels = saffire_le_meter_labels,
.get = &saffire_meter_get, .get = &saffire_meter_get,
}; };
struct snd_bebob_spec saffire_le_spec = { const struct snd_bebob_spec saffire_le_spec = {
.clock = &saffire_both_clk_spec, .clock = &saffire_both_clk_spec,
.rate = &saffire_both_rate_spec, .rate = &saffire_both_rate_spec,
.meter = &saffire_le_meter_spec .meter = &saffire_le_meter_spec
}; };
/* Saffire */ /* Saffire */
static struct snd_bebob_meter_spec saffire_meter_spec = { static const struct snd_bebob_meter_spec saffire_meter_spec = {
.num = ARRAY_SIZE(saffire_meter_labels), .num = ARRAY_SIZE(saffire_meter_labels),
.labels = saffire_meter_labels, .labels = saffire_meter_labels,
.get = &saffire_meter_get, .get = &saffire_meter_get,
}; };
struct snd_bebob_spec saffire_spec = { const struct snd_bebob_spec saffire_spec = {
.clock = &saffire_both_clk_spec, .clock = &saffire_both_clk_spec,
.rate = &saffire_both_rate_spec, .rate = &saffire_both_rate_spec,
.meter = &saffire_meter_spec .meter = &saffire_meter_spec
......
...@@ -687,7 +687,7 @@ static const char *const nrv10_meter_labels[] = { ...@@ -687,7 +687,7 @@ static const char *const nrv10_meter_labels[] = {
static int static int
normal_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size) normal_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size)
{ {
struct snd_bebob_meter_spec *spec = bebob->spec->meter; const struct snd_bebob_meter_spec *spec = bebob->spec->meter;
unsigned int c, channels; unsigned int c, channels;
int err; int err;
...@@ -712,85 +712,85 @@ normal_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size) ...@@ -712,85 +712,85 @@ normal_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size)
} }
/* for special customized devices */ /* for special customized devices */
static struct snd_bebob_rate_spec special_rate_spec = { static const struct snd_bebob_rate_spec special_rate_spec = {
.get = &special_get_rate, .get = &special_get_rate,
.set = &special_set_rate, .set = &special_set_rate,
}; };
static struct snd_bebob_clock_spec special_clk_spec = { static const struct snd_bebob_clock_spec special_clk_spec = {
.num = ARRAY_SIZE(special_clk_types), .num = ARRAY_SIZE(special_clk_types),
.types = special_clk_types, .types = special_clk_types,
.get = &special_clk_get, .get = &special_clk_get,
}; };
static struct snd_bebob_meter_spec special_meter_spec = { static const struct snd_bebob_meter_spec special_meter_spec = {
.num = ARRAY_SIZE(special_meter_labels), .num = ARRAY_SIZE(special_meter_labels),
.labels = special_meter_labels, .labels = special_meter_labels,
.get = &special_meter_get .get = &special_meter_get
}; };
struct snd_bebob_spec maudio_special_spec = { const struct snd_bebob_spec maudio_special_spec = {
.clock = &special_clk_spec, .clock = &special_clk_spec,
.rate = &special_rate_spec, .rate = &special_rate_spec,
.meter = &special_meter_spec .meter = &special_meter_spec
}; };
/* Firewire 410 specification */ /* Firewire 410 specification */
static struct snd_bebob_rate_spec usual_rate_spec = { static const struct snd_bebob_rate_spec usual_rate_spec = {
.get = &snd_bebob_stream_get_rate, .get = &snd_bebob_stream_get_rate,
.set = &snd_bebob_stream_set_rate, .set = &snd_bebob_stream_set_rate,
}; };
static struct snd_bebob_meter_spec fw410_meter_spec = { static const struct snd_bebob_meter_spec fw410_meter_spec = {
.num = ARRAY_SIZE(fw410_meter_labels), .num = ARRAY_SIZE(fw410_meter_labels),
.labels = fw410_meter_labels, .labels = fw410_meter_labels,
.get = &normal_meter_get .get = &normal_meter_get
}; };
struct snd_bebob_spec maudio_fw410_spec = { const struct snd_bebob_spec maudio_fw410_spec = {
.clock = NULL, .clock = NULL,
.rate = &usual_rate_spec, .rate = &usual_rate_spec,
.meter = &fw410_meter_spec .meter = &fw410_meter_spec
}; };
/* Firewire Audiophile specification */ /* Firewire Audiophile specification */
static struct snd_bebob_meter_spec audiophile_meter_spec = { static const struct snd_bebob_meter_spec audiophile_meter_spec = {
.num = ARRAY_SIZE(audiophile_meter_labels), .num = ARRAY_SIZE(audiophile_meter_labels),
.labels = audiophile_meter_labels, .labels = audiophile_meter_labels,
.get = &normal_meter_get .get = &normal_meter_get
}; };
struct snd_bebob_spec maudio_audiophile_spec = { const struct snd_bebob_spec maudio_audiophile_spec = {
.clock = NULL, .clock = NULL,
.rate = &usual_rate_spec, .rate = &usual_rate_spec,
.meter = &audiophile_meter_spec .meter = &audiophile_meter_spec
}; };
/* Firewire Solo specification */ /* Firewire Solo specification */
static struct snd_bebob_meter_spec solo_meter_spec = { static const struct snd_bebob_meter_spec solo_meter_spec = {
.num = ARRAY_SIZE(solo_meter_labels), .num = ARRAY_SIZE(solo_meter_labels),
.labels = solo_meter_labels, .labels = solo_meter_labels,
.get = &normal_meter_get .get = &normal_meter_get
}; };
struct snd_bebob_spec maudio_solo_spec = { const struct snd_bebob_spec maudio_solo_spec = {
.clock = NULL, .clock = NULL,
.rate = &usual_rate_spec, .rate = &usual_rate_spec,
.meter = &solo_meter_spec .meter = &solo_meter_spec
}; };
/* Ozonic specification */ /* Ozonic specification */
static struct snd_bebob_meter_spec ozonic_meter_spec = { static const struct snd_bebob_meter_spec ozonic_meter_spec = {
.num = ARRAY_SIZE(ozonic_meter_labels), .num = ARRAY_SIZE(ozonic_meter_labels),
.labels = ozonic_meter_labels, .labels = ozonic_meter_labels,
.get = &normal_meter_get .get = &normal_meter_get
}; };
struct snd_bebob_spec maudio_ozonic_spec = { const struct snd_bebob_spec maudio_ozonic_spec = {
.clock = NULL, .clock = NULL,
.rate = &usual_rate_spec, .rate = &usual_rate_spec,
.meter = &ozonic_meter_spec .meter = &ozonic_meter_spec
}; };
/* NRV10 specification */ /* NRV10 specification */
static struct snd_bebob_meter_spec nrv10_meter_spec = { static const struct snd_bebob_meter_spec nrv10_meter_spec = {
.num = ARRAY_SIZE(nrv10_meter_labels), .num = ARRAY_SIZE(nrv10_meter_labels),
.labels = nrv10_meter_labels, .labels = nrv10_meter_labels,
.get = &normal_meter_get .get = &normal_meter_get
}; };
struct snd_bebob_spec maudio_nrv10_spec = { const struct snd_bebob_spec maudio_nrv10_spec = {
.clock = NULL, .clock = NULL,
.rate = &usual_rate_spec, .rate = &usual_rate_spec,
.meter = &nrv10_meter_spec .meter = &nrv10_meter_spec
......
...@@ -155,7 +155,7 @@ static int ...@@ -155,7 +155,7 @@ static int
pcm_open(struct snd_pcm_substream *substream) pcm_open(struct snd_pcm_substream *substream)
{ {
struct snd_bebob *bebob = substream->private_data; struct snd_bebob *bebob = substream->private_data;
struct snd_bebob_rate_spec *spec = bebob->spec->rate; const struct snd_bebob_rate_spec *spec = bebob->spec->rate;
unsigned int sampling_rate; unsigned int sampling_rate;
enum snd_bebob_clock_type src; enum snd_bebob_clock_type src;
int err; int err;
......
...@@ -73,7 +73,7 @@ proc_read_meters(struct snd_info_entry *entry, ...@@ -73,7 +73,7 @@ proc_read_meters(struct snd_info_entry *entry,
struct snd_info_buffer *buffer) struct snd_info_buffer *buffer)
{ {
struct snd_bebob *bebob = entry->private_data; struct snd_bebob *bebob = entry->private_data;
struct snd_bebob_meter_spec *spec = bebob->spec->meter; const struct snd_bebob_meter_spec *spec = bebob->spec->meter;
u32 *buf; u32 *buf;
unsigned int i, c, channels, size; unsigned int i, c, channels, size;
...@@ -138,8 +138,8 @@ proc_read_clock(struct snd_info_entry *entry, ...@@ -138,8 +138,8 @@ proc_read_clock(struct snd_info_entry *entry,
"SYT-Match", "SYT-Match",
}; };
struct snd_bebob *bebob = entry->private_data; struct snd_bebob *bebob = entry->private_data;
struct snd_bebob_rate_spec *rate_spec = bebob->spec->rate; const struct snd_bebob_rate_spec *rate_spec = bebob->spec->rate;
struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock; const struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock;
enum snd_bebob_clock_type src; enum snd_bebob_clock_type src;
unsigned int rate; unsigned int rate;
......
...@@ -119,7 +119,7 @@ snd_bebob_stream_set_rate(struct snd_bebob *bebob, unsigned int rate) ...@@ -119,7 +119,7 @@ snd_bebob_stream_set_rate(struct snd_bebob *bebob, unsigned int rate)
int snd_bebob_stream_get_clock_src(struct snd_bebob *bebob, int snd_bebob_stream_get_clock_src(struct snd_bebob *bebob,
enum snd_bebob_clock_type *src) enum snd_bebob_clock_type *src)
{ {
struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock; const struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock;
u8 addr[AVC_BRIDGECO_ADDR_BYTES], input[7]; u8 addr[AVC_BRIDGECO_ADDR_BYTES], input[7];
unsigned int id; unsigned int id;
enum avc_bridgeco_plug_type type; enum avc_bridgeco_plug_type type;
...@@ -580,7 +580,7 @@ int snd_bebob_stream_init_duplex(struct snd_bebob *bebob) ...@@ -580,7 +580,7 @@ int snd_bebob_stream_init_duplex(struct snd_bebob *bebob)
int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate) int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate)
{ {
struct snd_bebob_rate_spec *rate_spec = bebob->spec->rate; const struct snd_bebob_rate_spec *rate_spec = bebob->spec->rate;
struct amdtp_stream *master, *slave; struct amdtp_stream *master, *slave;
enum cip_flags sync_mode; enum cip_flags sync_mode;
unsigned int curr_rate; unsigned int curr_rate;
...@@ -967,7 +967,7 @@ seek_msu_sync_input_plug(struct snd_bebob *bebob) ...@@ -967,7 +967,7 @@ seek_msu_sync_input_plug(struct snd_bebob *bebob)
int snd_bebob_stream_discover(struct snd_bebob *bebob) int snd_bebob_stream_discover(struct snd_bebob *bebob)
{ {
struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock; const struct snd_bebob_clock_spec *clk_spec = bebob->spec->clock;
u8 plugs[AVC_PLUG_INFO_BUF_BYTES], addr[AVC_BRIDGECO_ADDR_BYTES]; u8 plugs[AVC_PLUG_INFO_BUF_BYTES], addr[AVC_BRIDGECO_ADDR_BYTES];
enum avc_bridgeco_plug_type type; enum avc_bridgeco_plug_type type;
unsigned int i; unsigned int i;
......
...@@ -55,30 +55,30 @@ phase24_series_clk_src_get(struct snd_bebob *bebob, unsigned int *id) ...@@ -55,30 +55,30 @@ phase24_series_clk_src_get(struct snd_bebob *bebob, unsigned int *id)
return 0; return 0;
} }
static struct snd_bebob_rate_spec phase_series_rate_spec = { static const struct snd_bebob_rate_spec phase_series_rate_spec = {
.get = &snd_bebob_stream_get_rate, .get = &snd_bebob_stream_get_rate,
.set = &snd_bebob_stream_set_rate, .set = &snd_bebob_stream_set_rate,
}; };
/* PHASE 88 Rack FW */ /* PHASE 88 Rack FW */
static struct snd_bebob_clock_spec phase88_rack_clk = { static const struct snd_bebob_clock_spec phase88_rack_clk = {
.num = ARRAY_SIZE(phase88_rack_clk_src_types), .num = ARRAY_SIZE(phase88_rack_clk_src_types),
.types = phase88_rack_clk_src_types, .types = phase88_rack_clk_src_types,
.get = &phase88_rack_clk_src_get, .get = &phase88_rack_clk_src_get,
}; };
struct snd_bebob_spec phase88_rack_spec = { const struct snd_bebob_spec phase88_rack_spec = {
.clock = &phase88_rack_clk, .clock = &phase88_rack_clk,
.rate = &phase_series_rate_spec, .rate = &phase_series_rate_spec,
.meter = NULL .meter = NULL
}; };
/* 'PHASE 24 FW' and 'PHASE X24 FW' */ /* 'PHASE 24 FW' and 'PHASE X24 FW' */
static struct snd_bebob_clock_spec phase24_series_clk = { static const struct snd_bebob_clock_spec phase24_series_clk = {
.num = ARRAY_SIZE(phase24_series_clk_src_types), .num = ARRAY_SIZE(phase24_series_clk_src_types),
.types = phase24_series_clk_src_types, .types = phase24_series_clk_src_types,
.get = &phase24_series_clk_src_get, .get = &phase24_series_clk_src_get,
}; };
struct snd_bebob_spec phase24_series_spec = { const struct snd_bebob_spec phase24_series_spec = {
.clock = &phase24_series_clk, .clock = &phase24_series_clk,
.rate = &phase_series_rate_spec, .rate = &phase_series_rate_spec,
.meter = NULL .meter = NULL
......
...@@ -46,16 +46,16 @@ clk_src_get(struct snd_bebob *bebob, unsigned int *id) ...@@ -46,16 +46,16 @@ clk_src_get(struct snd_bebob *bebob, unsigned int *id)
return 0; return 0;
} }
static struct snd_bebob_clock_spec clock_spec = { static const struct snd_bebob_clock_spec clock_spec = {
.num = ARRAY_SIZE(clk_src_types), .num = ARRAY_SIZE(clk_src_types),
.types = clk_src_types, .types = clk_src_types,
.get = &clk_src_get, .get = &clk_src_get,
}; };
static struct snd_bebob_rate_spec rate_spec = { static const struct snd_bebob_rate_spec rate_spec = {
.get = &snd_bebob_stream_get_rate, .get = &snd_bebob_stream_get_rate,
.set = &snd_bebob_stream_set_rate, .set = &snd_bebob_stream_set_rate,
}; };
struct snd_bebob_spec yamaha_go_spec = { const struct snd_bebob_spec yamaha_go_spec = {
.clock = &clock_spec, .clock = &clock_spec,
.rate = &rate_spec, .rate = &rate_spec,
.meter = NULL .meter = NULL
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册