protected virtual void OnStateChanged(TubeManagerStateChangedEventArgs args)
        {
            var handler = StateChanged;

            if (handler != null)
            {
                handler(this, args);
            }
        }
        private void OnTubeManagerStateChanged(object sender, EventArgs args)
        {
            TubeManagerStateChangedEventArgs state_args = args as TubeManagerStateChangedEventArgs;

            Hyena.Log.DebugFormat("OnTubeManagerStateChanged: {0}", state_args.state.ToString());

            switch (state_args.state)
            {
            case TubeManager.State.Unloaded:
                HideStatus();
                break;

            case TubeManager.State.Waiting:
                SetStatus(AddinManager.CurrentLocalizer.GetString("Waiting for response from contact..."), false);
                break;

            //case TubeManager.State.PermissionNotGranted:
            //case TubeManager.State.PermissionGranted:
            case TubeManager.State.LoadingMetadata:
                if (Count > 0)
                {
                    CleanUpData();
                }
                SetStatus(AddinManager.CurrentLocalizer.GetString("Loading..."), false);
                break;

            case TubeManager.State.LoadedMetadata:
                SetStatus(AddinManager.CurrentLocalizer.GetString("All tracks downloaded. Loading..."), false);
                break;

            case TubeManager.State.LoadingPlaylists:
                SetStatus(AddinManager.CurrentLocalizer.GetString("Loading playlists..."), false);
                break;
                //case TubeManager.State.Loaded:
            }
        }