@@ -43,16 +43,16 @@ typedef struct {
4343} PortAudioPrivate ;
4444
4545static int inp_portaudio_init (VisPluginData * plugin );
46- static int inp_portaudio_cleanup (VisPluginData * plugin );
46+ static void inp_portaudio_cleanup (VisPluginData * plugin );
4747static 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
7775int 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
140137int 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