Esempio n. 1
0
static CDList *
init_dynamic_plugins_dir (RemixEnv * env, char * dirname)
{
  CDList * plugins = cd_list_new (env);
  DIR * dir;
  struct dirent * dirent;
  char * name;
  static char buf[BUFLEN];
  struct stat statbuf;

  dir = opendir (dirname);
  if (!dir) {
    /* fail silently */
    return CD_EMPTY_LIST;
  }

  while ((dirent = readdir (dir)) != NULL) {
    name = dirent->d_name;

    remix_dprintf ("[init_dynamic_plugins_dir] trying %s ... ", name);
    snprintf (buf, BUFLEN, "%s/%s", dirname, name);
      
    if (stat (buf, &statbuf) == -1) {
      remix_set_error (env, REMIX_ERROR_SYSTEM);
    } else if (remix_stat_regular (statbuf.st_mode)) {
      plugins = cd_list_join (env, plugins, remix_plugin_init (env, buf));
    }
  }

  closedir (dir);

  return plugins;
}
Esempio n. 2
0
static RemixBase *
remix_track_init (RemixEnv * env, RemixBase * base)
{
  RemixTrack * track = (RemixTrack *)base;
  track->gain = 1.0;
  track->layers = cd_list_new (env);
  track->_mixstream_a = track->_mixstream_b = RemixNone;
  remix_track_replace_mixstreams (env, track);
  remix_track_optimise (env, track);
  return (RemixBase *)track;
}
Esempio n. 3
0
void
remix_plugin_defaults_initialise (RemixEnv * env)
{
  CDList * plugins = cd_list_new (env);

  plugins = cd_list_join (env, plugins, remix_plugin_initialise_static (env));
  plugins = cd_list_join (env, plugins, remix_plugin_initialise_dynamic (env));

  cd_list_apply (env, plugins, (CDFunc)_remix_register_plugin);

  cd_list_free (env, plugins);
}
Esempio n. 4
0
CDList *
cd_list_copy (void * ctx, CDList * list)
{
  CDList * new_list = cd_list_new (ctx);
  CDList * l;

  for (l = list; l; l = l->next) {
    new_list = cd_list_append (ctx, new_list, l->data);
  }

  return new_list;
}
Esempio n. 5
0
/* module init function */
CDList *
__sndfile_init (RemixEnv * env)
{
  CDList * plugins = cd_list_new (env);
  int i, count;
  SF_FORMAT_INFO info;
  RemixNamedParameter * param;

  sndfile_reader_plugin.init_scheme =
    cd_set_insert (env, sndfile_reader_plugin.init_scheme, PATH_KEY,
		   CD_POINTER(&path_scheme));

  plugins = cd_list_prepend (env, plugins,
			     CD_POINTER(&sndfile_reader_plugin));

  format_scheme.constraint.list = cd_list_new (env);

  sf_command (NULL, SFC_GET_FORMAT_MAJOR_COUNT, &count, sizeof (int)) ;

  for (i = 0; i < count ; i++) {
    info.format = i ;
    sf_command (NULL, SFC_GET_FORMAT_MAJOR, &info, sizeof (info)) ;

    param = remix_malloc (sizeof(RemixNamedParameter));
    param->name = strdup (info.name);
    param->parameter = CD_INT(info.format);

    format_scheme.constraint.list =
      cd_list_append (env, format_scheme.constraint.list, CD_POINTER(param));
  }

  sndfile_writer_plugin.init_scheme =
    cd_set_insert (env, sndfile_writer_plugin.init_scheme, PATH_KEY,
		   CD_POINTER(&path_scheme));

  plugins = cd_list_prepend (env, plugins,
			     CD_POINTER(&sndfile_writer_plugin));

  return plugins;
}
Esempio n. 6
0
/* module init function */
CDList *
__gain_init (RemixEnv * env)
{
  CDList * plugins = cd_list_new (env);

  gain_plugin.process_scheme =
    cd_set_insert (env, gain_plugin.process_scheme, GAIN_ENVELOPE_KEY,
		   CD_POINTER(&gain_envelope_scheme));

  plugins = cd_list_prepend (env, plugins, CD_POINTER(&gain_plugin));

  return plugins;
}
Esempio n. 7
0
static CDList *
remix_plugin_initialise_static (RemixEnv * env)
{
  CDList * plugins = cd_list_new (env);

  plugins = cd_list_join (env, plugins, __gain_init (env));

#ifdef HAVE_LIBSNDFILE1
  plugins = cd_list_join (env, plugins, __sndfile_init (env));
#endif

  return plugins;
}
Esempio n. 8
0
CDList *
cd_list_clone (void * ctx, CDList * list, CDCloneFunc clone)
{
  CDList * new_list = cd_list_new (ctx);
  CDList * l;
  CDScalar new_data;

  for (l = list; l; l = l->next) {
    new_data = CD_POINTER (clone (ctx, l->data.s_pointer));
    new_list = cd_list_append (ctx, new_list, new_data);
  }

  return new_list;
}
Esempio n. 9
0
int
main (int argc, char ** argv)
{
  CDList * list, * list2;
  void * ctx;
  int a=1, b=2, d=4, f=6, g=7, k=11;
  int v=22, w=23;
  int z=26;

  ctx = NULL;

  printf ("creating new list\n");
  list = cd_list_new (ctx);
  ildump (ctx, list);

  printf ("appending %d\n", f);
  list = cd_list_append (ctx, list, (CDScalar)(void *)(&f));
  ildump (ctx, list);

  printf ("appending %d\n", k);
  list = cd_list_append (ctx, list, CD_POINTER(&k));
  ildump (ctx, list);

  printf ("inserting %d\n", g);
  list = cd_list_insert (ctx, list, CD_TYPE_POINTER, CD_POINTER(&g), int_gt);
  ildump (ctx, list);

  printf ("inserting %d\n", w);
  list = cd_list_insert (ctx, list, CD_TYPE_POINTER, CD_POINTER(&w), int_gt);
  ildump (ctx, list);

  printf ("inserting %d\n", z);
  list = cd_list_insert (ctx, list, CD_TYPE_POINTER, CD_POINTER(&z), int_gt);
  ildump (ctx, list);

  printf ("inserting %d\n", b);
  list = cd_list_insert (ctx, list, CD_TYPE_POINTER, CD_POINTER(&b), int_gt);
  ildump (ctx, list);

  printf ("prepending %d\n", a);
  list = cd_list_prepend (ctx, list, CD_POINTER(&a));
  ildump (ctx, list);

  printf ("removing %d\n", g);
  list = cd_list_remove (ctx, list, CD_TYPE_POINTER, CD_POINTER(&g));
  ildump (ctx, list);

  printf ("adding %d after %d\n", d, b);
  list = cd_list_add_after (ctx, list, CD_TYPE_POINTER, CD_POINTER(&d),
                            CD_POINTER(&b));
  ildump (ctx, list);

  printf ("adding %d before %d\n", v, w);
  list = cd_list_add_before (ctx, list, CD_TYPE_POINTER, CD_POINTER(&v),
                             CD_POINTER(&w));
  ildump (ctx, list);

  printf ("cloning list\n");
  list2 = cd_list_clone (ctx, list, int_clone);
  ildump (ctx, list2);

  printf ("freeing cloned list\n");
  list2 = cd_list_free_all (ctx, list2);
  ildump (ctx, list2);

  exit (0);
}