Lines Matching refs:instance
328 snd_pcm_ladspa_instance_t *instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
330 plugin->desc->deactivate(instance->handle);
333 plugin->desc->cleanup(instance->handle);
334 if (instance->input.m_data) {
335 for (idx = 0; idx < instance->input.channels.size; idx++)
336 free(instance->input.m_data[idx]);
337 free(instance->input.m_data);
339 if (instance->output.m_data) {
340 for (idx = 0; idx < instance->output.channels.size; idx++)
341 free(instance->output.m_data[idx]);
342 free(instance->output.m_data);
344 free(instance->input.data);
345 free(instance->output.data);
346 list_del(&(instance->list));
347 snd_pcm_ladspa_free_eps(&instance->input);
348 snd_pcm_ladspa_free_eps(&instance->output);
349 free(instance);
352 plugin->desc->activate(instance->handle);
445 snd_pcm_ladspa_instance_t *instance)
449 err = snd_pcm_ladspa_connect_plugin1(plugin, &plugin->input, &instance->input);
452 err = snd_pcm_ladspa_connect_plugin1(plugin, &plugin->output, &instance->output);
492 snd_pcm_ladspa_instance_t *instance,
497 err = snd_pcm_ladspa_connect_plugin_duplicate1(plugin, in_io, &instance->input, idx);
500 err = snd_pcm_ladspa_connect_plugin_duplicate1(plugin, out_io, &instance->output, idx);
570 snd_pcm_ladspa_instance_t *instance)
579 plugin->desc->connect_port(instance->handle, idx, &io->controls[midx]);
617 snd_pcm_ladspa_instance_t *instance = NULL;
636 instance = (snd_pcm_ladspa_instance_t *)calloc(1, sizeof(snd_pcm_ladspa_instance_t));
637 if (instance == NULL)
639 instance->desc = plugin->desc;
640 instance->handle = plugin->desc->instantiate(plugin->desc, pcm->rate);
641 instance->depth = depth;
642 if (instance->handle == NULL) {
643 SNDERR("Unable to create instance of LADSPA plugin '%s'", plugin->desc->Name);
644 free(instance);
647 list_add_tail(&instance->list, &plugin->instances);
649 err = snd_pcm_ladspa_connect_plugin_duplicate(plugin, &plugin->input, &plugin->output, instance, idx);
651 SNDERR("Unable to connect duplicate port of plugin '%s' channel %u depth %u", plugin->desc->Name, idx, instance->depth);
655 err = snd_pcm_ladspa_connect_plugin(plugin, instance);
661 err = snd_pcm_ladspa_connect_controls(plugin, &plugin->input, instance);
663 err = snd_pcm_ladspa_connect_controls(plugin, &plugin->output, instance);
666 plugin->desc->activate(instance->handle);
668 err = snd_pcm_ladspa_check_connect(plugin, &plugin->input, &instance->input, depth);
671 err = snd_pcm_ladspa_check_connect(plugin, &plugin->output, &instance->output, depth);
689 snd_pcm_ladspa_instance_t *instance;
712 instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
714 for (idx = 0; idx < instance->input.channels.size; idx++) {
715 chn = instance->input.channels.array[idx];
716 assert(instance->input.ports.array[idx] != NO_ASSIGN);
720 for (idx = 0; idx < instance->output.channels.size; idx++) {
721 chn = instance->output.channels.array[idx];
722 assert(instance->output.ports.array[idx] != NO_ASSIGN);
736 assert(instance->input.data == NULL);
737 assert(instance->input.m_data == NULL);
738 assert(instance->output.data == NULL);
739 assert(instance->output.m_data == NULL);
740 instance->input.data = calloc(instance->input.channels.size, sizeof(void *));
741 instance->input.m_data = calloc(instance->input.channels.size, sizeof(void *));
742 instance->output.data = calloc(instance->output.channels.size, sizeof(void *));
743 instance->output.m_data = calloc(instance->output.channels.size, sizeof(void *));
744 if (instance->input.data == NULL ||
745 instance->input.m_data == NULL ||
746 instance->output.data == NULL ||
747 instance->output.m_data == NULL) {
751 for (idx = 0; idx < instance->input.channels.size; idx++) {
752 chn = instance->input.channels.array[idx];
754 instance->input.data[idx] = NULL;
757 instance->input.data[idx] = pchannels[chn];
758 if (instance->input.data[idx] == NULL) {
759 instance->input.data[idx] = snd_pcm_ladspa_allocate_zero(ladspa, 0);
760 if (instance->input.data[idx] == NULL) {
766 for (idx = 0; idx < instance->output.channels.size; idx++) {
767 chn = instance->output.channels.array[idx];
770 instance->output.data[idx] = malloc(sizeof(LADSPA_Data) * ladspa->allocated);
771 if (instance->output.data[idx] == NULL) {
775 pchannels[chn] = instance->output.m_data[idx] = instance->output.data[idx];
786 instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
787 for (idx = 0; idx < instance->output.channels.size; idx++) {
788 chn = instance->output.channels.array[idx];
789 if (instance->output.data[idx] == pchannels[chn]) {
790 free(instance->output.m_data[idx]);
791 instance->output.m_data[idx] = NULL;
793 instance->output.data[idx] = NULL;
795 instance->output.data[idx] = snd_pcm_ladspa_allocate_zero(ladspa, 1);
796 if (instance->output.data[idx] == NULL) {
811 instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
812 for (idx = 0; idx < instance->input.channels.size; idx++)
813 printf("%i:alloc-input%i: data = %p, m_data = %p\n", instance->depth, idx, instance->input.data[idx], instance->input.m_data[idx]);
814 for (idx = 0; idx < instance->output.channels.size; idx++)
815 printf("%i:alloc-output%i: data = %p, m_data = %p\n", instance->depth, idx, instance->output.data[idx], instance->output.m_data[idx]);
860 snd_pcm_ladspa_instance_t *instance;
880 instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
881 for (idx = 0; idx < instance->input.channels.size; idx++) {
882 chn = instance->input.channels.array[idx];
883 data = instance->input.data[idx];
888 instance->desc->connect_port(instance->handle, instance->input.ports.array[idx], data);
890 for (idx = 0; idx < instance->output.channels.size; idx++) {
891 chn = instance->output.channels.array[idx];
892 data = instance->output.data[idx];
897 instance->desc->connect_port(instance->handle, instance->output.ports.array[idx], data);
899 instance->desc->run(instance->handle, size1);
921 snd_pcm_ladspa_instance_t *instance;
941 instance = list_entry(pos1, snd_pcm_ladspa_instance_t, list);
942 for (idx = 0; idx < instance->input.channels.size; idx++) {
943 chn = instance->input.channels.array[idx];
944 data = instance->input.data[idx];
949 instance->desc->connect_port(instance->handle, instance->input.ports.array[idx], data);
951 for (idx = 0; idx < instance->output.channels.size; idx++) {
952 chn = instance->output.channels.array[idx];
953 data = instance->output.data[idx];
958 instance->desc->connect_port(instance->handle, instance->output.ports.array[idx], data);
960 instance->desc->run(instance->handle, size1);