示例#1
0
static NvError tegra_transport_set_property(NvAudioFxObjectHandle hObject,
					    NvAudioFxProperty Property,
					    NvU32 Size,
					    void* pProperty)
{
	NvError status = NvSuccess;
	NvError retStatus = NvSuccess;
	NvFxTransportMessageSetProperty message;
	struct completion comp;

	if (FXTRANSPORT_MSG_BUFFER_PROPERTY_SIZE < Size) {
		snd_printk(KERN_ERR "Property length too long!\n");
		goto EXIT_WITH_ERROR;
	}

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_SET_PROPERTY;
	message.pPrivateData = (void*)&comp;
	message.hObject = hObject;
	message.Property = Property;
	message.Size = Size;
	NvOsMemcpy(message.PropertyData, pProperty, Size);
	message.pReturnError = &retStatus;

	transport_send_message(NvFxTransportMessageSetProperty);
	goto EXIT;

EXIT_WITH_ERROR:
	retStatus = status;

EXIT:
	return retStatus;
}
示例#2
0
static void tegra_transport_mixer_destroy_object(NvAudioFxObjectHandle hObject)
{
	NvError status = NvSuccess;
	NvFxTransportMessageDestroyObject message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_DESTROY_OBJECT;
	message.pPrivateData = (void*)&comp;
	message.hObject = hObject;

	transport_send_message(NvFxTransportMessageDestroyObject);

EXIT_WITH_ERROR:
	return;
}
示例#3
0
static void tegra_transport_mixer_unmap_buffer(
					NvAudioFxMixBufferHandle mixer_buffer)
{
	NvError status = NvSuccess;
	NvFxTransportMessageUnmapBuffer message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_UNMAP_BUFFER;
	message.pPrivateData = (void*)&comp;
	message.hMixBuffer = mixer_buffer;

	transport_send_message(NvFxTransportMessageUnmapBuffer);

EXIT_WITH_ERROR:
	return;
}
static NvAudioFxMixerHandle tegra_transport_mixer_open(void)
{
	NvError status = NvSuccess;
	NvAudioFxMixerHandle hMixer = 0;
	NvFxTransportMessageMixerOpen message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_MIXER_OPEN;
	message.pPrivateData = (void*)&comp;
	message.phMixer = &hMixer;

	transport_send_message(NvFxTransportMessageMixerOpen);

EXIT_WITH_ERROR:
	return hMixer;
}
示例#5
0
static NvAudioFxObjectHandle tegra_transport_mixer_create_object(
						NvAudioFxMixerHandle hMixer,
						NvObjectId Id)
{
	NvError status = NvSuccess;
	NvAudioFxObjectHandle hObject = 0;
	NvFxTransportMessageCreateObject message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_CREATE_OBJECT;
	message.pPrivateData = (void*)&comp;
	message.hMixer = hMixer;
	message.Id = Id;
	message.phObject = &hObject;

	transport_send_message(NvFxTransportMessageCreateObject);

EXIT_WITH_ERROR:
	return hObject;
}
示例#6
0
static void tegra_transport_mixer_close(NvAudioFxMixerHandle hMixer)
{
	NvError status = NvSuccess;
	NvFxTransportMessageMixerClose message;
	struct completion comp;

	init_completion(&comp);
	if (hMixer == NULL) {
		snd_printk(KERN_ERR "NULL NvAudioFxMixerHandle!\n");
		goto EXIT_WITH_ERROR;
	}

	message.Message = NVFXTRANSPORT_MESSAGE_MIXER_CLOSE;
	message.pPrivateData = (void*)&comp;
	message.hMixer = hMixer;

	transport_send_message(NvFxTransportMessageMixerClose);

EXIT_WITH_ERROR:
	return;
}
示例#7
0
static NvError tegra_transport_stream_add_buffer(NvAudioFxStreamHandle hStream,
					NvAudioFxBufferDescriptor* pDescriptor)
{
	NvError status = NvSuccess;
	NvError retStatus;
	NvFxTransportMessageStreamAddBuffer message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_STREAM_ADD_BUFFER;
	message.pPrivateData =  (void*)&comp;
	message.hStream = hStream;
	message.Descriptor = *pDescriptor;
	message.pReturnError = &retStatus;

	transport_send_message(NvFxTransportMessageStreamAddBuffer);
	goto EXIT;

EXIT_WITH_ERROR:
	retStatus = status;

EXIT:
	return retStatus;
}
示例#8
0
static NvAudioFxMixBufferHandle tegra_transport_mixer_map_buffer(
						NvAudioFxMixerHandle hMixer,
						NvU32 NvRmMemHandleId,
						NvU32 Offset,
						NvU32 Size)
{
	NvError status = NvSuccess;
	NvAudioFxMixBufferHandle mixer_buffer = 0;
	NvFxTransportMessageMapBuffer message;
	struct completion comp;

	init_completion(&comp);
	message.Message = NVFXTRANSPORT_MESSAGE_MAP_BUFFER;
	message.pPrivateData = (void*)&comp;
	message.hMixer = hMixer;
	message.NvRmMemHandleId = NvRmMemHandleId;
	message.Offset = Offset;
	message.Size = Size;
	message.phMixBuffer = &mixer_buffer;

	transport_send_message(NvFxTransportMessageMapBuffer);
EXIT_WITH_ERROR:
	return mixer_buffer;
}