Пример #1
0
Файл: pair.c Проект: EQ4/faudio
fa_pair_t fa_pair_unassoc(fa_pair_t p)
{
    fa_ptr_t a = fa_copy(((fa_pair_t) p->values[0])->values[0]);
    fa_ptr_t b = fa_copy(((fa_pair_t) p->values[0])->values[1]);
    fa_ptr_t c = fa_copy(p->values[1]);
    return new_pair(a, new_pair(b, c));
}
Пример #2
0
fa_error_t fa_error_copy_simple(simple_fa_error_t simple)
{
    fa_ptr_t simple_error_impl(fa_id_t interface);
    simple_fa_error_t e  = fa_new_struct(simple_error);
    e->impl     = &simple_error_impl;
    e->severity = simple->severity;
    e->message  = fa_copy(simple->message);
    e->origin   = simple->origin ? fa_copy(simple->origin) : NULL;
    return (fa_error_t) e;
}
Пример #3
0
static int
es_file_copy(duk_context *ctx)
{
  char *cleanup;
  char path[URL_MAX];
  char errbuf[256];
  es_context_t *ec = es_get(ctx);

  const char *from = duk_to_string(ctx, 0);
  const char *to   = duk_to_string(ctx, 1);

  cleanup = mystrdupa(to);

  fa_sanitize_filename(cleanup);

  snprintf(path, sizeof(path), "%s/copy/%s",
           ec->ec_storage, cleanup);

  TRACE(TRACE_DEBUG, "JS", "Copying file from '%s' to '%s'", from, path);

  if(fa_copy(path, from, errbuf, sizeof(errbuf)))
    duk_error(ctx, DUK_ERR_ERROR, "Copy failed: %s", errbuf);

  duk_push_string(ctx, path);
  return 1;
}
Пример #4
0
fa_string_t fa_error_format(bool colored, fa_error_t a)
{
    simple_fa_error_t simple = (simple_fa_error_t) a;
    fa_string_t str = fa_string("");

    switch (simple->severity) {
    case info:
        str = fa_string_dappend(str, colored ? fa_string("\x1b[32m[INFO]\x1b[0m    ") : fa_string("[INFO]    "));
        break;

    case warning:
        str = fa_string_dappend(str, colored ? fa_string("\x1b[33m[WARNING]\x1b[0m ") : fa_string("[WARNING] "));
        break;

    case error:
        str = fa_string_dappend(str, colored ? fa_string("\x1b[31m[ERROR]\x1b[0m   ") : fa_string("[ERROR]   "));
        break;

    case misc:
        str = fa_string_dappend(str, colored ? fa_string("\x1b[35m[MISC]\x1b[0m    ") : fa_string("[MISC]    "));
        break;

    default:
        assert(false && "Missing label");
    }

    if (simple->origin && (fa_string_length(simple->origin) > 0)) {
        if (colored)
			str = fa_string_dappend(str, fa_string("\x1b[36m"));
        str = fa_string_dappend(str, fa_copy(simple->origin));
        str = fa_string_dappend(str, colored ? fa_string(":\x1b[0m ") : fa_string(": "));
    }

    if (simple->message) {
        str = fa_string_dappend(str, fa_copy(simple->message));
    } else {
        str = fa_string_dappend(str, fa_string("[NULL]"));
    }

    return str;
}
Пример #5
0
fa_string_t simple_error_show(fa_ptr_t a)
{
    simple_fa_error_t simple = (simple_fa_error_t) a;
    fa_string_t result = fa_string("<");

    switch (simple->severity) {
    case info:
        result = fa_string_dappend(result, fa_string("Info "));
        break;

    case warning:
        result = fa_string_dappend(result, fa_string("Warning "));
        break;

    case error:
        result = fa_string_dappend(result, fa_string("Error "));
        break;

    case misc:
        result = fa_string_dappend(result, fa_string("Misc "));
        break;

    default:
        assert(false && "Missing label");
    }

    if (simple->origin && (fa_string_length(simple->origin) > 0)) {
        result = fa_string_dappend(result, fa_copy(simple->origin));
        result = fa_string_dappend(result, fa_string(": "));
    }

    result = fa_string_dappend(result, fa_copy(simple->message));
    result = fa_string_dappend(result, fa_string(">"));

    return result;
}
Пример #6
0
fa_buffer_t fa_buffer_resample_mono(double new_rate, fa_buffer_t buffer)
{
    size_t old_size = fa_buffer_size(buffer);
    double old_rate = fa_peek_int32(fa_buffer_get_meta(buffer, fa_string("sample-rate")));
    size_t new_size = ((double) old_size) * (new_rate / old_rate);

    fa_buffer_t buffer2 = fa_buffer_create(new_size);

    resample_raw(old_rate, new_rate, (double*) buffer->data, old_size / sizeof(double), (double*) buffer2->data, new_size / sizeof(double));

    buffer2->destroy_function   = buffer->destroy_function;
    buffer2->destroy_data       = buffer->destroy_data;
    buffer2->meta               = fa_copy(buffer->meta);
    fa_buffer_set_meta(buffer, fa_string("sample-rate"), fa_from_int32(new_rate));

    return buffer2;
}
Пример #7
0
Файл: pair.c Проект: EQ4/faudio
fa_pair_t fa_pair_dduplicate(fa_ptr_t value)
{
    return new_pair(value, fa_copy(value));
}
Пример #8
0
Файл: pair.c Проект: EQ4/faudio
fa_pair_t fa_pair_swap(fa_pair_t pair)
{
    return new_pair(fa_copy(pair->values[1]), fa_copy(pair->values[0]));
}