diff -r 03a293c97d5c -r f5c5c82a163e mmserv/tms/tmsproxy/src/tmsproxy.cpp --- a/mmserv/tms/tmsproxy/src/tmsproxy.cpp Wed Apr 14 16:29:54 2010 +0300 +++ b/mmserv/tms/tmsproxy/src/tmsproxy.cpp Tue Apr 27 17:11:02 2010 +0300 @@ -435,12 +435,14 @@ { case EMsgQueueGlobalVolumeType: case EMsgQueueGlobalGainType: - status = AddGlobalEffectObserver((*(TMSEffectObserver*) obsrv), - (*(TMSEffect*) parent), clientid); - break; + status = AddGlobalEffectObserver( + *(static_cast(obsrv)), + *(static_cast(parent)), clientid); + break; case EMsgQueueGlobalRoutingType: - status = AddRoutingObserver((*(TMSGlobalRoutingObserver*) obsrv), - (*(TMSGlobalRouting*) parent), clientid); + status = AddRoutingObserver( + *(static_cast(obsrv)), + *(static_cast(parent)), clientid); break; default: status = TMS_RESULT_INVALID_ARGUMENT; @@ -462,11 +464,12 @@ { case EMsgQueueGlobalVolumeType: case EMsgQueueGlobalGainType: - status = RemoveGlobalEffectObserver((*(TMSEffectObserver*) obsrv)); + status = RemoveGlobalEffectObserver( + *(static_cast(obsrv))); break; case EMsgQueueGlobalRoutingType: - status = RemoveRoutingObserver((*(TMSGlobalRoutingObserver*) - obsrv)); + status = RemoveRoutingObserver( + *(static_cast(obsrv))); break; default: status = TMS_RESULT_INVALID_ARGUMENT; @@ -614,21 +617,33 @@ // Call from QueueHandler as a result of TMS Server callback. // --------------------------------------------------------------------------- // -void TMSProxy::QueueEvent(gint aEventType, gint aError, void* user_data) +void TMSProxy::QueueEvent(gint aEventType, gint aError, void* event_data) { - TMSSignalEvent event; + TMSSignalEvent event = {}; //all elements initialized to zeros event.type = aEventType; event.reason = aError; - event.user_data = user_data; + event.user_data = NULL; //use only to return data passed in by the user switch (aEventType) { case TMS_EVENT_EFFECT_VOL_CHANGED: + { + if (event_data) + { + event.event_data = static_cast(event_data); + } + for (gint i = 0; i < iEffectsObsrvrList.Count(); i++) + { + iEffectsObsrvrList[i]->EffectsEvent(*iEffectsParentList[i], + event); + } + break; + } case TMS_EVENT_EFFECT_GAIN_CHANGED: { for (gint i = 0; i < iEffectsObsrvrList.Count(); i++) { - iEffectsObsrvrList[i]->EffectsEvent(iEffectsParentList[i], + iEffectsObsrvrList[i]->EffectsEvent(*iEffectsParentList[i], event); } break; @@ -638,14 +653,14 @@ case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: { guint output(0); - if (user_data != NULL) + if (event_data != NULL) { - output = *((guint*) user_data); + output = *(static_cast(event_data)); } for (gint i = 0; i < iRoutingObsrvrList.Count(); i++) { iRoutingObsrvrList[i]->GlobalRoutingEvent( - iRoutingParentList[i], event, output); + *iRoutingParentList[i], event, output); } break; }