Пример #1
0
Bool audriv_set_play_channels(long channels)
/* 演奏用のチャネル数を設定します.
 * 失敗すると False を返し,成功すると True を返します.
 */
{
    int i, n;
    const long *c = audriv_available_channels(&n);

    for(i = 0; i < n; i++)
	if(channels == c[i])
	    break;
    if(i == n)
	return False;

    if(play_nchannels == channels)
	return True;
    play_nchannels = channels;
    play_frame_width = AENC_SAMPW(play_encoding) * play_nchannels;

    if(out)
    {
	audriv_play_close();
	audriv_play_open();
    }

    return True;
}
Пример #2
0
static int audriv_al_set_width(ALconfig c, int encoding)
{
    if(encoding == AENC_G711_ULAW)
	return alSetWidth(c, 2);
    else
	return alSetWidth(c, AENC_SAMPW(encoding));
}
Пример #3
0
Bool audriv_set_play_encoding(long encoding)
/* audio 演奏時の符号化方式を指定します.
 * 成功した場合は True を,失敗した場合は False を返します.
 */
{
    int i, n;
    const long *enc;

    if(encoding == play_encoding)
	return True;

    enc = audriv_available_encodings(&n);
    for(i = 0; i < n; i++)
	if(enc[i] == encoding)
	    break;
    if(i == n)
	return False;

    play_encoding = encoding;
    play_frame_width = AENC_SAMPW(encoding) * play_nchannels;
    if(out)
    {
	audriv_al_set_width(out_config, encoding);
	alSetConfig(out, out_config);
    }
    return True;
}
Пример #4
0
Bool audriv_set_play_encoding(long encoding)
/* audio 演奏時の符号化方式を指定します.
 * 成功した場合は True を,失敗した場合は False を返します.
 */
{
    int i, n;
    const long *enc;

    enc = audriv_available_encodings(&n);
    for(i = 0; i < n; i++)
	if(enc[i] == encoding)
	{
	    play_encoding = encoding;
	    play_sample_size = AENC_SAMPW(encoding) * play_channels;
	    return True;
	}
    return False;
}