This design pattern is suboptimal as it forces code duplication (and consequently aging): It forces every subscriber to have a switch statement handling the different signal sources, even if the subscriber just cares about one source. A better (and simpler) approach is to create a gpsSpeedChanged() signal.

Also note that ground speed and air speed are fundamentally two different things, and are physically not related, so its conceptional also not optimal.