/**
     * Function called when an audio device is plugged or unplugged.
     *
     * @param event The property change event which may concern the audio device.
     */
    public void propertyChange(PropertyChangeEvent event) {
      if (DeviceConfiguration.PROP_AUDIO_SYSTEM_DEVICES.equals(event.getPropertyName())) {
        NotificationService notificationService = getNotificationService();

        if (notificationService != null) {
          // Registers only once to the  popup message notification
          // handler.
          if (!isRegisteredToPopupMessageListener) {
            isRegisteredToPopupMessageListener = true;
            managePopupMessageListenerRegistration(true);
          }

          // Fires the popup notification.
          ResourceManagementService resources = NeomediaActivator.getResources();
          Map<String, Object> extras = new HashMap<String, Object>();

          extras.put(NotificationData.POPUP_MESSAGE_HANDLER_TAG_EXTRA, this);
          notificationService.fireNotification(
              DEVICE_CONFIGURATION_HAS_CHANGED,
              resources.getI18NString("impl.media.configform" + ".AUDIO_DEVICE_CONFIG_CHANGED"),
              resources.getI18NString(
                  "impl.media.configform" + ".AUDIO_DEVICE_CONFIG_MANAGMENT_CLICK"),
              null,
              extras);
        }
      }
    }
  /**
   * Listens for changes in notify device.
   *
   * @param ev the event that notify device has changed.
   */
  public void propertyChange(PropertyChangeEvent ev) {
    String propertyName = ev.getPropertyName();

    if (DeviceConfiguration.AUDIO_NOTIFY_DEVICE.equals(propertyName)
        || DeviceConfiguration.AUDIO_PLAYBACK_DEVICE.equals(propertyName)) {
      synchronized (audiosSyncRoot) {
        /*
         * Make sure that the currently referenced SCAudioClips will not
         * be reclaimed.
         */
        audios = null;
      }
    }
  }