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*)∁ 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; }
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*)∁ message.hObject = hObject; transport_send_message(NvFxTransportMessageDestroyObject); EXIT_WITH_ERROR: return; }
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*)∁ 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*)∁ message.phMixer = &hMixer; transport_send_message(NvFxTransportMessageMixerOpen); EXIT_WITH_ERROR: return hMixer; }
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*)∁ message.hMixer = hMixer; message.Id = Id; message.phObject = &hObject; transport_send_message(NvFxTransportMessageCreateObject); EXIT_WITH_ERROR: return hObject; }
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*)∁ message.hMixer = hMixer; transport_send_message(NvFxTransportMessageMixerClose); EXIT_WITH_ERROR: return; }
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*)∁ message.hStream = hStream; message.Descriptor = *pDescriptor; message.pReturnError = &retStatus; transport_send_message(NvFxTransportMessageStreamAddBuffer); goto EXIT; EXIT_WITH_ERROR: retStatus = status; EXIT: return retStatus; }
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*)∁ 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; }