Connection::Connection(const QSharedPointer<Edge> &edge, const Id &local_id, const Id &remote_id) : _edge(edge), _local_id(local_id), _remote_id(remote_id) { ISink *sink = _edge->SetSink(this); SetSink(sink); QObject::connect(_edge.data(), SIGNAL(StoppedSignal()), this, SLOT(HandleEdgeClose())); }
void COggVorbisFile::FillBufferL(CMMFBuffer* aBuffer, MDataSink* aConsumer,TMediaId aMediaId) { if ((aMediaId.iMediaType==KUidMediaTypeAudio)&&(aBuffer->Type()==KUidMmfDescriptorBuffer)) { //BufferEmptiedL(aBuffer); CMMFDataBuffer* db = static_cast<CMMFDataBuffer*>(aBuffer); iBody->PCMOutL(*db); SetSink(aConsumer); aConsumer->BufferFilledL(db); } else User::Leave(KErrNotSupported); }
Edge::~Edge() { SetSink(0); }
int DthAudio_02SimpleSet(struct dth_element *elem, void *value) { DECLARE_ERR(); uint32_t vl_value = DEREF_PTR(value, uint32_t); hats_audio_err_t vl_audioerr; SYSLOG(LOG_DEBUG, "DTH set with elem->user_data= %u", elem->user_data); switch (elem->user_data) { case TATAUDIO_DIGITAL_LOOP_IN_AB: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_STOP); if (TAT_LAST_OK()) { dthaudio_digital_loop_in_ab_action = vl_value; SYSLOG(LOG_INFO, "Digital AB Audio loop operation set to %u.", dthaudio_digital_loop_in_ab_action); } break; case TATAUDIO_DIGITAL_LOOP_IN_AP: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_STOP); if (TAT_LAST_OK()) { dthaudio_digital_loop_in_ap_action = vl_value; SYSLOG(LOG_INFO, "Digital AP Audio loop operation set to %u.", dthaudio_digital_loop_in_ap_action); } break; case TATAUDIO_ANALOG_LOOP: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_STOP); if (TAT_LAST_OK()) { dthaudio_analog_loop_action = vl_value; SYSLOG(LOG_INFO, "ANALOG Audio loop operation set to %u.", dthaudio_analog_loop_action); } break; #if defined HATS_AB_8520_HW case TATAUDIO_DIGITAL_LOOP_IN_MODEM: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_MOD_STOP); if (TAT_LAST_OK()) { dthaudio_digital_loop_in_modem_action = vl_value; SYSLOG(LOG_INFO, "Modem Audio loop operation set to %u.", dthaudio_digital_loop_in_modem_action); } break; case TATAUDIO_MODEM_LOOP: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_MODEM_LOOP2); if (TAT_LAST_OK()) { dthaudio_loop_interface = vl_value; SYSLOG(LOG_INFO, "Modem Audio loop interface set to %u.", dthaudio_loop_interface); } break; #endif case TATAUDIO_PLAYBACK: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_STOP); if (TAT_LAST_OK()) { dthaudio_playback_action = vl_value; SYSLOG(LOG_INFO, "Audio playback operation set to %u.", dthaudio_playback_action); } break; case TATAUDIO_RECORD: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_STOP); if (TAT_LAST_OK()) { dthaudio_record_action = vl_value; SYSLOG(LOG_INFO, "Audio record operation set to %u.", dthaudio_record_action); } break; case TATAUDIO_DEVICE: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_HDMI_DEVICE); if (TAT_LAST_OK()) { dthaudio_playback_device = vl_value; SYSLOG(LOG_INFO, "Playback device %u (0=MAIN, 1=HDMI) selected.", dthaudio_playback_device); } break; case TATAUDIO_SRC: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_ENUM_SRC_MAX); if (TAT_LAST_OK()) { vl_audioerr = SetSrc(AUDIO_DEVICE_0, (e_HatsAudioInput_t) Dthaudio_codec_src_tab[vl_value]); if (HATS_AUDIO_NO_ERROR == vl_audioerr) { dthaudio_source = vl_value; SYSLOG(LOG_INFO, "Audio source changed to %u", dthaudio_source); } else { TAT_SET_LAST_ERR(hats_audio_err_to_dth(vl_audioerr)); SYSLOG(LOG_ERR, "Failed to set audio source"); } } if (TAT_LAST_OK()) { if (TATAUDIO_SRC_MICRO_AN1B == vl_value) { #if defined HATS_AB_8520_HW dthaudio_micswitch = TATAUDIO_JACKMIC; DthAudio_GpioConfig(TATAUDIO_GPIO_MICCTRL_DIR, TATAUDIO_GPIO_MICCTRL_OUT, TATAUDIO_GPIO_MICCTRL_PUD, TATAUDIO_GPIO_MICCTRL_OFFSET_IN_REGISTER, 1, 1, 0); TAT_TRY(libtatasync_msg_send(VALUE_CHANGED, "/DTH/AUDIO/Tests/Setup/GPIO_MIC_CTRL")); #endif dthaudio_avconnector = TATAUDIO_AVCONN_AUDIO; DthAudio_GpioConfig(TATAUDIO_GPIO_VIDEOCTRL_DIR, TATAUDIO_GPIO_VIDEOCTRL_OUT, TATAUDIO_GPIO_VIDEOCTRL_PUD, TATAUDIO_GPIO_VIDEOCTRL_OFFSET_IN_REGISTER, 1, 1, 0);; TAT_TRY(libtatasync_msg_send(VALUE_CHANGED, "/DTH/AUDIO/Tests/Setup/GPIO_MICVIDEO_CTRL")); } #if defined HATS_AB_8520_HW else if (TATAUDIO_SRC_MICRO_USB == vl_value) { dthaudio_micswitch = TATAUDIO_USBMIC; DthAudio_GpioConfig(TATAUDIO_GPIO_MICCTRL_DIR, TATAUDIO_GPIO_MICCTRL_OUT, TATAUDIO_GPIO_MICCTRL_PUD, TATAUDIO_GPIO_MICCTRL_OFFSET_IN_REGISTER, 1, 0, 0); TAT_TRY(libtatasync_msg_send(VALUE_CHANGED, "/DTH/AUDIO/Tests/Setup/GPIO_MIC_CTRL")); dthaudio_avconnector = TATAUDIO_AVCONN_AUDIO; DthAudio_GpioConfig(TATAUDIO_GPIO_VIDEOCTRL_DIR, TATAUDIO_GPIO_VIDEOCTRL_OUT, TATAUDIO_GPIO_VIDEOCTRL_PUD, TATAUDIO_GPIO_VIDEOCTRL_OFFSET_IN_REGISTER, 1, 1, 0);; TAT_TRY(libtatasync_msg_send(VALUE_CHANGED, "/DTH/AUDIO/Tests/Setup/GPIO_MICVIDEO_CTRL")); } #endif } break; case TATAUDIO_SINK: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_ENUM_SINK_MAX); if (TAT_LAST_OK()) { vl_audioerr = SetSink(AUDIO_DEVICE_0, (e_HatsAudioOutput_t) Dthaudio_codec_sink_tab[vl_value]); if (HATS_AUDIO_NO_ERROR == vl_audioerr) { dthaudio_sink = vl_value; SYSLOG(LOG_INFO, "Audio sink set to %u", dthaudio_sink); } else { TAT_SET_LAST_ERR(hats_audio_err_to_dth(vl_audioerr)); SYSLOG(LOG_ERR, "Failed to set audio sink"); } } break; case TATAUDIO_AVCONNECTOR: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_AVCONN_VIDEO); if (TAT_LAST_OK()) { if (TATAUDIO_AVCONN_VIDEO == vl_value) { DthAudio_GpioConfig(TATAUDIO_GPIO_VIDEOCTRL_DIR, TATAUDIO_GPIO_VIDEOCTRL_OUT, TATAUDIO_GPIO_VIDEOCTRL_PUD, TATAUDIO_GPIO_VIDEOCTRL_OFFSET_IN_REGISTER, 1, 0, 0); SYSLOG(LOG_INFO, "AV connector set to VIDEO_SOURCE"); } else if (TATAUDIO_AVCONN_AUDIO == vl_value) { DthAudio_GpioConfig(TATAUDIO_GPIO_VIDEOCTRL_DIR, TATAUDIO_GPIO_VIDEOCTRL_OUT, TATAUDIO_GPIO_VIDEOCTRL_PUD, TATAUDIO_GPIO_VIDEOCTRL_OFFSET_IN_REGISTER, 1, 1, 0);; SYSLOG(LOG_INFO, "AV connector set to AUDIO_SOURCE"); } if (TAT_LAST_OK()) { dthaudio_avconnector = vl_value; } else { SYSLOG(LOG_ERR, "Failed to set AV connector"); } } break; #if defined HATS_AB_8520_HW case TATAUDIO_JACK_USB_MIC_SWITCH: VERIFY_DTH_TYPE(elem, DTH_TYPE_U32); VERIFY_ENUM(vl_value, TATAUDIO_USBMIC); if (TAT_LAST_OK()) { if (TATAUDIO_JACKMIC == vl_value) { DthAudio_GpioConfig(TATAUDIO_GPIO_MICCTRL_DIR, TATAUDIO_GPIO_MICCTRL_OUT, TATAUDIO_GPIO_MICCTRL_PUD, TATAUDIO_GPIO_MICCTRL_OFFSET_IN_REGISTER, 1, 1, 0); SYSLOG(LOG_INFO, "Mic switch set to JACK"); } else if (TATAUDIO_USBMIC == vl_value) { DthAudio_GpioConfig(TATAUDIO_GPIO_MICCTRL_DIR, TATAUDIO_GPIO_MICCTRL_OUT, TATAUDIO_GPIO_MICCTRL_PUD, TATAUDIO_GPIO_MICCTRL_OFFSET_IN_REGISTER, 1, 0, 0);; SYSLOG(LOG_INFO, "Mic switch set to USB"); } if (TAT_LAST_OK()) { dthaudio_micswitch = vl_value; } else { SYSLOG(LOG_ERR, "Failed to set Mic switch"); } } break; #endif default: TAT_SET_LAST_ERR(TAT_BAD_REQ); } RETURN_ERR(); }
int main() { #if 0 int pause; unsigned int status; //unsigned char data; system("rm -f test.wav"); status = ConvWavFile("/usr/share/sounds/alsa/Front_Left.wav","test_20b.wav"); /*******************************************************************************/ //test1: printf("\n\n*************** record & playback *******************"); pause = getchar(); if( pause == 'p') {pause = getchar();goto test2;} printf("\n\n#########start a simple record on mic1B"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_MICROPHONE_1B); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE,NORMAL_CAPTURE_MODE,"test.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########stop a simple record on default organ"); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########start playback of recorded file in 20 bits,on default organ"); status = ConvWavFile("test.wav","test_2.wav"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,NORMAL_PLAYBACK_MODE,"test_2.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########stop playback on default organ "); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); printf("\n STATUS must be 0: %d",status); /*******************************************************************************/ test2: printf("\n\n*************** playback on HDMI *******************"); pause = getchar(); printf("\ngetchar = %c",pause); if( pause == 'p') {pause = getchar();goto test3;} printf("\n\n#########start a simple playback on HDMI organ"); status = StartPCMTransfer(AUDIO_DEVICE_HDMI,CODEC_PLAYBACK,NORMAL_PLAYBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########stop playback on HDMI "); status = StopPCMTransfer(AUDIO_DEVICE_HDMI,CODEC_PLAYBACK); printf("\n STATUS must be 0: %d",status); /*******************************************************************************/ test3: printf("\n\n*************** 2 playback *******************"); pause = getchar(); if( pause == 'p') {pause = getchar();goto test4;} printf("\n\n#########start 2 playbacks \n"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,NORMAL_PLAYBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,NORMAL_PLAYBACK_MODE,"test_20b.wav"); printf("\n STATUS must be an error: %d",status); pause = getchar(); printf("\n\n#########stop playback "); status =StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########start 2 captures "); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE,NORMAL_CAPTURE_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE,NORMAL_CAPTURE_MODE,"test_20b.wav"); printf("\n STATUS must not be 0: %d",status); pause = getchar(); printf("\n\n#########stop capture "); status =StopPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE); printf("\n STATUS must be 0: %d",status); /*******************************************************************************/ test4: printf("\n\n*************** loops *******************"); pause = getchar(); if( pause == 'p') {pause = getchar();goto test5;} printf("\n\n#########start a analog loop"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE,ANALOG_LOOPBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########stop analog loop "); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_CAPTURE); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########start a digital loop"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,DIGITAL_LOOPBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########stop digital loop "); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); printf("\n STATUS must be 0: %d",status); /*******************************************************************************/ test5: printf("\n\n*************** FM loops *******************"); pause = getchar(); if( pause == 'p') {pause = getchar();goto test6;} printf("\n\n######### start digital loopback from FM_RX to Headset"); SetSrc(AUDIO_DEVICE_0,CODEC_SRC_FM_RX); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_HEADSET); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,DIGITAL_LOOPBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n######### stop digital loopback from FM_RX to Headset"); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); pause = getchar(); printf("\n\n######### start digital loopback from dmic12 to FM_TX"); SetSrc(AUDIO_DEVICE_0,CODEC_SRC_D_MICROPHONE_12); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_FM_TX); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,DIGITAL_LOOPBACK_MODE,"test_20b.wav"); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n######### stop digital loopback from dmic12 to FM_TX"); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); /*******************************************************************************/ test6: printf("\n\n*************** path management *******************"); pause = getchar(); if( pause == 'p') {pause = getchar();goto test7;} printf("\n\n#########sink Organ change"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,DIGITAL_LOOPBACK_MODE,"test_20b.wav"); printf("\n\n#########change to CODEC_DEST_EARPIECE"); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_EARPIECE); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_DEST_HANDSFREE"); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_HANDSFREE); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_DEST_VIBRATOR1"); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_VIBRATOR1); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_DEST_VIBRATOR2"); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_VIBRATOR2); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_DEST_HEADSET"); status = SetSink(AUDIO_DEVICE_0,CODEC_DEST_HEADSET); printf("\n STATUS must be 0: %d",status); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########sink Organ change"); status = StartPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK,DIGITAL_LOOPBACK_MODE,"test_20b.wav"); printf("\n\n#########change to CODEC_SRC_LINEIN"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_LINEIN); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_MICROPHONE_1B"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_MICROPHONE_1B); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_MICROPHONE_2"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_MICROPHONE_2); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_D_MICROPHONE_12"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_D_MICROPHONE_12); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_D_MICROPHONE_34"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_D_MICROPHONE_34); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_D_MICROPHONE_56"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_D_MICROPHONE_56); printf("\n STATUS must be 0: %d",status); pause = getchar(); printf("\n\n#########change to CODEC_SRC_MICROPHONE_1A"); status = SetSrc(AUDIO_DEVICE_0,CODEC_SRC_MICROPHONE_1A); printf("\n STATUS must be 0: %d",status); pause = getchar(); status = StopPCMTransfer(AUDIO_DEVICE_0,CODEC_PLAYBACK); /*******************************************************************************/ test7: /* status = SetVolume(AUDIO_DEVICE_0,CODEC_PLAYBACK,10,20); printf("\n STATUS must be 0: %d",status); pause = getchar(); status = SetVolume(AUDIO_DEVICE_0,CODEC_CAPTURE,0,100); printf("\n STATUS must be 0: %d",status); status = SetVolume(AUDIO_DEVICE_0,CODEC_MASTER,0,100); printf("\n STATUS must be 0: %d",status); status = SetMute(AUDIO_DEVICE_0,CODEC_PLAYBACK,STREAM_MUTED); pause = getchar(); printf("\n STATUS must be 0: %d",status); status = SetMute(AUDIO_DEVICE_0,CODEC_CAPTURE,STREAM_UNMUTED); pause = getchar(); printf("\n STATUS must be 0: %d",status); status = SetMute(AUDIO_DEVICE_0,CODEC_MASTER,STREAM_UNMUTED); pause = getchar(); printf("\n STATUS must be 0: %d",status); status = SetMultichannelMode(AUDIO_DEVICE_0,MULTI_CHANNEL_ENABLE); pause = getchar(); printf("\n STATUS must be 0: %d",status); status = SetMultichannelMode(AUDIO_DEVICE_0,MULTI_CHANNEL_DISABLE); pause = getchar(); printf("\n STATUS must be 0: %d",status); */ /* SPIWrite( 0x0D0C,0x80); data =SPIRead( 0x0D0C); data =SPIRead( 0x0D05); data =SPIRead( 0x0D0A); */ printf("\n\n*************** end tests*******************\n"); #endif return 0; }