653 gint status(TMS_RESULT_SUCCESS); |
653 gint status(TMS_RESULT_SUCCESS); |
654 switch (type) |
654 switch (type) |
655 { |
655 { |
656 case EMsgQueueGlobalVolumeType: |
656 case EMsgQueueGlobalVolumeType: |
657 case EMsgQueueGlobalGainType: |
657 case EMsgQueueGlobalGainType: |
658 status = AddGlobalEffectObserver((*(TMSEffectObserver*) obsrv), |
658 status = AddGlobalEffectObserver( |
659 (*(TMSEffect*) parent), clientid); |
659 *(static_cast<TMSEffectObserver*>(obsrv)), |
660 break; |
660 *(static_cast<TMSEffect*>(parent)), clientid); |
|
661 break; |
661 case EMsgQueueGlobalRoutingType: |
662 case EMsgQueueGlobalRoutingType: |
662 status = AddRoutingObserver((*(TMSGlobalRoutingObserver*) obsrv), |
663 status = AddRoutingObserver( |
663 (*(TMSGlobalRouting*) parent), clientid); |
664 *(static_cast<TMSGlobalRoutingObserver*>(obsrv)), |
|
665 *(static_cast<TMSGlobalRouting*>(parent)), clientid); |
664 break; |
666 break; |
665 case EMsgQueueRingtoneType: |
667 case EMsgQueueRingtoneType: |
666 status = AddRingToneObserver((*(TMSRingToneObserver*) obsrv), |
668 status = AddRingToneObserver( |
667 (*(TMSRingTone*) parent), clientid); |
669 *(static_cast<TMSRingToneObserver*>(obsrv)), |
|
670 *(static_cast<TMSRingTone*>(parent)), clientid); |
668 break; |
671 break; |
669 case EMsgQueueDTMFType: |
672 case EMsgQueueDTMFType: |
670 status = AddDTMFObserver((*(TMSDTMFObserver*) obsrv), |
673 status = AddDTMFObserver(*(static_cast<TMSDTMFObserver*>(obsrv)), |
671 (*(TMSDTMF*) parent), clientid); |
674 *(static_cast<TMSDTMF*>(parent)), clientid); |
672 break; |
675 break; |
673 case EMsgQueueInbandToneType: |
676 case EMsgQueueInbandToneType: |
674 status = AddInbandToneObserver((*(TMSInbandToneObserver*) obsrv), |
677 status = AddInbandToneObserver( |
675 (*(TMSInbandTone*) parent), clientid); |
678 *(static_cast<TMSInbandToneObserver*>(obsrv)), |
|
679 *(static_cast<TMSInbandTone*>(parent)), clientid); |
676 break; |
680 break; |
677 default: |
681 default: |
678 status = TMS_RESULT_INVALID_ARGUMENT; |
682 status = TMS_RESULT_INVALID_ARGUMENT; |
679 break; |
683 break; |
680 } |
684 } |
692 |
696 |
693 switch (type) |
697 switch (type) |
694 { |
698 { |
695 case EMsgQueueGlobalVolumeType: |
699 case EMsgQueueGlobalVolumeType: |
696 case EMsgQueueGlobalGainType: |
700 case EMsgQueueGlobalGainType: |
697 status = RemoveGlobalEffectObserver((*(TMSEffectObserver*) obsrv)); |
701 status = RemoveGlobalEffectObserver( |
|
702 *(static_cast<TMSEffectObserver*>(obsrv))); |
698 break; |
703 break; |
699 case EMsgQueueGlobalRoutingType: |
704 case EMsgQueueGlobalRoutingType: |
700 status = RemoveRoutingObserver((*(TMSGlobalRoutingObserver*) |
705 status = RemoveRoutingObserver( |
701 obsrv)); |
706 *(static_cast<TMSGlobalRoutingObserver*>(obsrv))); |
702 break; |
707 break; |
703 case EMsgQueueRingtoneType: |
708 case EMsgQueueRingtoneType: |
704 status = RemoveRingToneObserver((*(TMSRingToneObserver*) obsrv)); |
709 status = RemoveRingToneObserver( |
|
710 *(static_cast<TMSRingToneObserver*>(obsrv))); |
705 break; |
711 break; |
706 case EMsgQueueDTMFType: |
712 case EMsgQueueDTMFType: |
707 status = RemoveDTMFObserver((*(TMSDTMFObserver*) obsrv)); |
713 status = RemoveDTMFObserver( |
|
714 *(static_cast<TMSDTMFObserver*>(obsrv))); |
708 break; |
715 break; |
709 case EMsgQueueInbandToneType: |
716 case EMsgQueueInbandToneType: |
710 status = RemoveInbandToneObserver((*(TMSInbandToneObserver*) |
717 status = RemoveInbandToneObserver( |
711 obsrv)); |
718 *(static_cast<TMSInbandToneObserver*>(obsrv))); |
712 break; |
719 break; |
713 default: |
720 default: |
714 status = TMS_RESULT_INVALID_ARGUMENT; |
721 status = TMS_RESULT_INVALID_ARGUMENT; |
715 break; |
722 break; |
716 } |
723 } |
952 // --------------------------------------------------------------------------- |
959 // --------------------------------------------------------------------------- |
953 // TMSProxy::QueueEvent |
960 // TMSProxy::QueueEvent |
954 // Call from QueueHandler as a result of TMS Server callback. |
961 // Call from QueueHandler as a result of TMS Server callback. |
955 // --------------------------------------------------------------------------- |
962 // --------------------------------------------------------------------------- |
956 // |
963 // |
957 void TMSProxy::QueueEvent(gint aEventType, gint aError, void* user_data) |
964 void TMSProxy::QueueEvent(gint aEventType, gint aError, void* event_data) |
958 { |
965 { |
959 TMSSignalEvent event; |
966 TMSSignalEvent event = {}; //all elements initialized to zeros |
960 event.type = aEventType; |
967 event.type = aEventType; |
961 event.reason = aError; |
968 event.reason = aError; |
962 event.user_data = user_data; |
969 event.user_data = NULL; //use only to return data passed in by the user |
963 |
970 |
964 switch (aEventType) |
971 switch (aEventType) |
965 { |
972 { |
966 case TMS_EVENT_EFFECT_VOL_CHANGED: |
973 case TMS_EVENT_EFFECT_VOL_CHANGED: |
|
974 { |
|
975 if (event_data) |
|
976 { |
|
977 event.event_data = static_cast<gpointer>(event_data); |
|
978 } |
|
979 for (gint i = 0; i < iEffectsObsrvrList.Count(); i++) |
|
980 { |
|
981 iEffectsObsrvrList[i]->EffectsEvent(*iEffectsParentList[i], |
|
982 event); |
|
983 } |
|
984 break; |
|
985 } |
967 case TMS_EVENT_EFFECT_GAIN_CHANGED: |
986 case TMS_EVENT_EFFECT_GAIN_CHANGED: |
968 { |
987 { |
969 for (gint i = 0; i < iEffectsObsrvrList.Count(); i++) |
988 for (gint i = 0; i < iEffectsObsrvrList.Count(); i++) |
970 { |
989 { |
971 iEffectsObsrvrList[i]->EffectsEvent(iEffectsParentList[i], |
990 iEffectsObsrvrList[i]->EffectsEvent(*iEffectsParentList[i], |
972 event); |
991 event); |
973 } |
992 } |
974 break; |
993 break; |
975 } |
994 } |
976 case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: |
995 case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: |
977 case TMS_EVENT_ROUTING_OUTPUT_CHANGED: |
996 case TMS_EVENT_ROUTING_OUTPUT_CHANGED: |
978 case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: |
997 case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: |
979 { |
998 { |
980 guint output(0); |
999 guint output(0); |
981 if (user_data != NULL) |
1000 if (event_data != NULL) |
982 { |
1001 { |
983 output = *((guint*) user_data); |
1002 output = *(static_cast<guint*>(event_data)); |
984 } |
1003 } |
985 for (gint i = 0; i < iRoutingObsrvrList.Count(); i++) |
1004 for (gint i = 0; i < iRoutingObsrvrList.Count(); i++) |
986 { |
1005 { |
987 iRoutingObsrvrList[i]->GlobalRoutingEvent( |
1006 iRoutingObsrvrList[i]->GlobalRoutingEvent( |
988 iRoutingParentList[i], event, output); |
1007 *iRoutingParentList[i], event, output); |
989 } |
1008 } |
990 break; |
1009 break; |
991 } |
1010 } |
992 case TMS_EVENT_RINGTONE_OPEN_COMPLETE: |
1011 case TMS_EVENT_RINGTONE_OPEN_COMPLETE: |
993 case TMS_EVENT_RINGTONE_PLAY_COMPLETE: |
1012 case TMS_EVENT_RINGTONE_PLAY_COMPLETE: |
994 case TMS_EVENT_RINGTONE_DEINIT_COMPLETE: |
1013 case TMS_EVENT_RINGTONE_DEINIT_COMPLETE: |
995 { |
1014 { |
996 for (gint i = 0; i < iRingToneObsrvrList.Count(); i++) |
1015 for (gint i = 0; i < iRingToneObsrvrList.Count(); i++) |
997 { |
1016 { |
998 iRingToneObsrvrList[i]->RingtoneEvent(iRingToneParentList[i], |
1017 iRingToneObsrvrList[i]->RingtoneEvent(*iRingToneParentList[i], |
999 event); |
1018 event); |
1000 } |
1019 } |
1001 break; |
1020 break; |
1002 } |
1021 } |
1003 case TMS_EVENT_DTMF_TONE_STARTED: |
1022 case TMS_EVENT_DTMF_TONE_STARTED: |
1004 case TMS_EVENT_DTMF_TONE_STOPPED: |
1023 case TMS_EVENT_DTMF_TONE_STOPPED: |
1005 { |
1024 { |
1006 for (gint i = 0; i < iDTMFObsrvrList.Count(); i++) |
1025 for (gint i = 0; i < iDTMFObsrvrList.Count(); i++) |
1007 { |
1026 { |
1008 iDTMFObsrvrList[i]->DTMFEvent(iDTMFParentList[i], event); |
1027 iDTMFObsrvrList[i]->DTMFEvent(*iDTMFParentList[i], event); |
1009 } |
1028 } |
1010 break; |
1029 break; |
1011 } |
1030 } |
1012 case TMS_EVENT_INBAND_TONE_STARTED: |
1031 case TMS_EVENT_INBAND_TONE_STARTED: |
1013 case TMS_EVENT_INBAND_TONE_STOPPED: |
1032 case TMS_EVENT_INBAND_TONE_STOPPED: |
1014 { |
1033 { |
1015 for (gint i = 0; i < iInbandToneObsrvrList.Count(); i++) |
1034 for (gint i = 0; i < iInbandToneObsrvrList.Count(); i++) |
1016 { |
1035 { |
1017 iInbandToneObsrvrList[i]->InbandToneEvent( |
1036 iInbandToneObsrvrList[i]->InbandToneEvent( |
1018 iInbandToneParentList[i], event); |
1037 *iInbandToneParentList[i], event); |
1019 } |
1038 } |
1020 break; |
1039 break; |
1021 } |
1040 } |
1022 default: |
1041 default: |
1023 break; |
1042 break; |