Skip to content

Commit 2f65726

Browse files
committed
Plugins (portaudio): Port to 0.5.x
1 parent 3bc4db4 commit 2f65726

1 file changed

Lines changed: 32 additions & 34 deletions

File tree

libvisual-plugins/plugins/input/portaudio/input_portaudio.c

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,16 @@ typedef struct {
4343
} PortAudioPrivate;
4444

4545
static int inp_portaudio_init (VisPluginData *plugin);
46-
static int inp_portaudio_cleanup (VisPluginData *plugin);
46+
static void inp_portaudio_cleanup (VisPluginData *plugin);
4747
static int inp_portaudio_upload (VisPluginData *plugin, VisAudio *audio);
4848

49-
const VisPluginInfo *get_plugin_info (int *count)
49+
const VisPluginInfo *get_plugin_info (void)
5050
{
51-
static VisInputPlugin input[] = {{
51+
static VisInputPlugin input = {
5252
.upload = inp_portaudio_upload
53-
}};
53+
};
5454

55-
static VisPluginInfo info[] = {{
55+
static VisPluginInfo info = {
5656
.type = VISUAL_PLUGIN_TYPE_INPUT,
5757

5858
.plugname = "portaudio",
@@ -66,12 +66,10 @@ const VisPluginInfo *get_plugin_info (int *count)
6666
.init = inp_portaudio_init,
6767
.cleanup = inp_portaudio_cleanup,
6868

69-
.plugin = VISUAL_OBJECT (&input[0])
70-
}};
69+
.plugin = &input
70+
};
7171

72-
*count = sizeof (info) / sizeof (*info);
73-
74-
return info;
72+
return &info;
7573
}
7674

7775
int inp_portaudio_init (VisPluginData *plugin)
@@ -81,16 +79,16 @@ int inp_portaudio_init (VisPluginData *plugin)
8179
#endif
8280

8381
PortAudioPrivate * const priv = visual_mem_new0 (PortAudioPrivate, 1);
84-
visual_log_return_val_if_fail(priv != NULL, -1);
85-
visual_object_set_private (VISUAL_OBJECT (plugin), priv);
82+
visual_return_val_if_fail (priv != NULL, FALSE);
83+
visual_plugin_set_private (plugin, priv);
8684

8785
// Init PortAudio
8886
const PaError init_error = Pa_Initialize();
89-
visual_log_return_val_if_fail (init_error == paNoError, -2);
87+
visual_return_val_if_fail (init_error == paNoError, FALSE);
9088

9189
// Select input device
9290
const PaDeviceIndex input_device = Pa_GetDefaultInputDevice ();
93-
visual_log_return_val_if_fail (input_device != paNoDevice, -3);
91+
visual_return_val_if_fail (input_device != paNoDevice, FALSE);
9492

9593
// Open stream
9694
const double latency_seconds = 1.0 / SAMPLE_RATE * FRAMES;
@@ -103,25 +101,26 @@ int inp_portaudio_init (VisPluginData *plugin)
103101
const PaError open_error =
104102
Pa_OpenStream (&priv->stream, &input_parameters, NULL,
105103
SAMPLE_RATE, FRAMES, paClipOff, NULL, NULL);
104+
visual_return_val_if_fail (open_error == paNoError, FALSE);
106105

107106
// Allocate buffer
108107
const visual_size_t buffer_size_bytes = FRAMES * CHANNELS * (SAMPLE_FORMAT_BITS / 8);
109108
priv->buffer = malloc (buffer_size_bytes);
110-
visual_log_return_val_if_fail (priv->buffer != NULL, -4);
109+
visual_return_val_if_fail (priv->buffer != NULL, FALSE);
111110

112111
// Start stream
113112
const PaError input_start_error = Pa_StartStream (priv->stream);
114-
visual_log_return_val_if_fail (input_start_error == paNoError, -4);
113+
visual_return_val_if_fail (input_start_error == paNoError, FALSE);
115114

116-
return 0;
115+
return TRUE;
117116
}
118117

119-
int inp_portaudio_cleanup (VisPluginData *plugin)
118+
void inp_portaudio_cleanup (VisPluginData *plugin)
120119
{
121-
visual_log_return_val_if_fail (plugin != NULL, -1);
120+
visual_return_if_fail (plugin != NULL);
122121

123-
PortAudioPrivate * const priv = visual_object_get_private (VISUAL_OBJECT (plugin));
124-
visual_log_return_val_if_fail (priv != NULL, -2);
122+
PortAudioPrivate * const priv = visual_plugin_get_private (plugin);
123+
visual_return_if_fail (priv != NULL);
125124

126125
free (priv->buffer);
127126
priv->buffer = NULL;
@@ -133,40 +132,39 @@ int inp_portaudio_cleanup (VisPluginData *plugin)
133132
Pa_Terminate ();
134133

135134
visual_mem_free (priv);
136-
137-
return 0;
138135
}
139136

140137
int inp_portaudio_upload (VisPluginData *plugin, VisAudio *audio)
141138
{
142-
visual_log_return_val_if_fail (plugin != NULL, -1);
143-
visual_log_return_val_if_fail (audio != NULL, -2);
139+
visual_return_val_if_fail (plugin != NULL, FALSE);
140+
visual_return_val_if_fail (audio != NULL, FALSE);
144141

145-
PortAudioPrivate * const priv = visual_object_get_private (VISUAL_OBJECT (plugin));
146-
visual_log_return_val_if_fail (priv != NULL, -3);
147-
visual_log_return_val_if_fail (priv->stream != NULL, -4);
142+
PortAudioPrivate * const priv = visual_plugin_get_private (plugin);
143+
visual_return_val_if_fail (priv != NULL, FALSE);
144+
visual_return_val_if_fail (priv->stream != NULL, FALSE);
148145

149146
for (;;) {
150147
long frames_to_read = Pa_GetStreamReadAvailable (priv->stream);
151148
if (frames_to_read < 1) {
152-
return 0;
149+
return TRUE;
153150
}
154151
if (frames_to_read > FRAMES) {
155152
frames_to_read = FRAMES; // because that's all that priv->buffer has space for
156153
}
157154

158155
const PaError read_error = Pa_ReadStream(priv->stream, priv->buffer, frames_to_read);
159156
if (read_error != paNoError) {
160-
return 0;
157+
return TRUE;
161158
}
162159

163160
const visual_size_t bytes_to_write = frames_to_read * CHANNELS * (SAMPLE_FORMAT_BITS / 8);
164161

165-
VisBuffer buffer;
166-
visual_buffer_init(&buffer, priv->buffer, bytes_to_write, NULL);
162+
VisBuffer * const buffer = visual_buffer_new_wrap_data (priv->buffer, bytes_to_write, FALSE);
163+
visual_return_val_if_fail (priv != NULL, FALSE);
164+
165+
visual_audio_input(audio, buffer, SAMPLE_RATE_TYPE_LV, SAMPLE_FORMAT_LV, CHANNELS_TYPE);
167166

168-
visual_audio_samplepool_input(audio->samplepool, &buffer, SAMPLE_RATE_TYPE_LV,
169-
SAMPLE_FORMAT_LV, CHANNELS_TYPE);
167+
visual_buffer_unref (buffer);
170168
}
171169

172170
// we never get here

0 commit comments

Comments
 (0)