Changeset 71482a9


Ignore:
Timestamp:
Jun 29, 2006, 8:49:42 PM (18 years ago)
Author:
Paul Brossier <piem@altern.org>
Branches:
feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
Children:
4b58c43
Parents:
3ba55dd6
Message:

adding basic lash support to examples
adding basic lash support to examples

Location:
examples
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • examples/Makefile.am

    r3ba55dd6 r71482a9  
    44
    55# global flags
    6 AM_CFLAGS = -DAUBIO_PREFIX=\"$(prefix)\" -I$(top_srcdir)/src -I$(top_srcdir)/ext @LADCCA_CFLAGS@ @FFTWLIB_CFLAGS@
    7 AM_LDFLAGS = -L$(top_builddir)/src -L$(top_builddir)/ext -laubioext -laubio @LADCCA_LIBS@
     6AM_CFLAGS = -DAUBIO_PREFIX=\"$(prefix)\" -I$(top_srcdir)/src -I$(top_srcdir)/ext @LASH_CFLAGS@ @FFTWLIB_CFLAGS@
     7AM_LDFLAGS = -L$(top_builddir)/src -L$(top_builddir)/ext -laubioext -laubio @LASH_LIBS@
    88#AM_SOURCES = utils.c
    99
  • examples/utils.c

    r3ba55dd6 r71482a9  
    1313#include "utils.h"
    1414
    15 /* not supported yet */
    16 #ifdef LADCCA_SUPPORT
    17 #include <ladcca/ladcca.h>
    18 cca_client_t * aubio_cca_client;
    19 #endif /* LADCCA_SUPPORT */
     15#ifdef LASH_SUPPORT
     16#include <lash/lash.h>
     17#include <pthread.h>
     18lash_client_t * aubio_lash_client;
     19lash_args_t * lash_args;
     20void * lash_thread_main (void * data);
     21int lash_main (void);
     22void save_data (void);
     23void restore_data(lash_config_t * config);
     24pthread_t lash_thread;
     25#endif /* LASH_SUPPORT */
    2026
    2127/* settings */
     
    121127                {NULL       , 0, NULL, 0}
    122128        };
     129#ifdef LASH_SUPPORT
     130        lash_args = lash_extract_args(&argc, &argv);
     131#endif /* LASH_SUPPORT */
    123132        prog_name = argv[0];
    124133        if( argc < 1 ) {
     
    228237                }
    229238        }
     239
    230240        return 0;
    231241}
     
    260270      fileout = new_aubio_sndfile_wo(file, output_filename);
    261271  }
     272#ifdef LASH_SUPPORT
     273  else {
     274    aubio_lash_client = lash_init(lash_args, argv[0],
     275        LASH_Config_Data_Set | LASH_Terminal,
     276        LASH_PROTOCOL(2, 0));
     277    if (!aubio_lash_client) {
     278      fprintf(stderr, "%s: could not initialise lash\n", __FUNCTION__);
     279    }
     280    /* tell the lash server our client id */
     281    if (lash_enabled(aubio_lash_client)) {
     282      lash_event_t * event = (lash_event_t *)lash_event_new_with_type(LASH_Client_Name);
     283      lash_event_set_string(event, "aubio");
     284      lash_send_event(aubio_lash_client, event);
     285    }
     286  }
     287  pthread_create(&lash_thread, NULL, lash_thread_main, NULL);
     288#endif /* LASH_SUPPORT */
    262289
    263290  ibuf      = new_fvec(overlap_size, channels);
     
    407434}
    408435
     436#if LASH_SUPPORT
     437
     438void * lash_thread_main(void *data)
     439{
     440        printf("LASH thread running\n");
     441
     442        while (!lash_main())
     443                usleep(1000);
     444
     445        printf("LASH thread finished\n");
     446        return NULL;
     447}
     448
     449int lash_main(void) {
     450        lash_event_t *event;
     451        lash_config_t *config;
     452
     453        while ((event = lash_get_event(aubio_lash_client))) {
     454                switch (lash_event_get_type(event)) {
     455                case LASH_Quit:
     456                        lash_event_destroy(event);
     457      exit(1);
     458      return 1;
     459                case LASH_Restore_Data_Set:
     460                        lash_send_event(aubio_lash_client, event);
     461                        break;
     462                case LASH_Save_Data_Set:
     463                        save_data();
     464                        lash_send_event(aubio_lash_client, event);
     465                        break;
     466                case LASH_Server_Lost:
     467                        return 1;
     468                default:
     469                        printf("%s: received unknown LASH event of type %d",
     470                                   __FUNCTION__, lash_event_get_type(event));
     471                        lash_event_destroy(event);
     472      break;
     473                }
     474        }
     475
     476        while ((config = lash_get_config(aubio_lash_client))) {
     477                restore_data(config);
     478                lash_config_destroy(config);
     479        }
     480
     481        return 0;
     482}
     483
     484void save_data() {
     485        lash_config_t *config;
     486
     487        config = lash_config_new_with_key("threshold");
     488        lash_config_set_value_double(config, threshold);
     489        lash_send_config(aubio_lash_client, config);
     490
     491}
     492
     493void restore_data(lash_config_t * config) {
     494        const char *key;
     495
     496        key = lash_config_get_key(config);
     497
     498        if (strcmp(key, "threshold") == 0) {
     499                threshold = lash_config_get_value_double(config);
     500                return;
     501        }
     502
     503}
     504
     505#endif /* LASH_SUPPORT */
     506
Note: See TracChangeset for help on using the changeset viewer.