Exemplo n.º 1
0
 // This event is fired by unmount; not neccesarily by physical ejection of media
 static void RemovableMedia_Eject(object sender, MediaEventArgs e)
 {
     Debug.Print("SD card unmounted, eject event fired");
     ReadyRead   = false;
     ReadyWrite  = false;
     volume_info = null;
 }
Exemplo n.º 2
0
 private void Eject(object sender, MediaEventArgs e)
 {
     if (e.Volume.Name.Length >= 2 && e.Volume.Name.Substring(0, 2) == "SD")
     {
         OnSDCardUnmountedEvent(this);
     }
 }
Exemplo n.º 3
0
        private void _mediaPRIVerified(object o, MediaEventArgs e)
        {
            var sec = MediaDirectorySEC as ServerDirectory;
            var pri = MediaDirectoryPRI as ServerDirectory;

            if (sec != null && pri != null &&
                sec != pri &&
                sec.IsInitialized &&
                pri.IsInitialized)
            {
                ServerMedia sECMedia = sec.FindMediaFirst(sm => e.Media.FileSize == sm.FileSize &&
                                                          e.Media.FileName == sm.FileName && sm.FileExists()) as ServerMedia;
                if (e.Media.MediaStatus == TMediaStatus.Available)
                {
                    if (sECMedia == null)
                    {
                        FileManager.Queue(new FileOperation {
                            Kind = TFileOperationKind.Copy, SourceMedia = e.Media, DestDirectory = sec
                        }, false);
                    }
                    else
                    {
                        sECMedia.CloneMediaProperties(e.Media);
                        sECMedia.MediaGuid = e.Media.MediaGuid;
                        sECMedia.ReVerify();
                    }
                }
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Called when a device is ejected.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The event arguments.</param>
 private void Eject(object sender, MediaEventArgs e)
 {
     if (e.Volume.Name.Length >= 3 && e.Volume.Name.Substring(0, 3) == "USB")
     {
         OnUSBDriveDisconnectedEvent(this);
     }
 }
Exemplo n.º 5
0
 private void _animationDirectoryMediaRemoved(object sender, MediaEventArgs e)
 {
     if (e.Media is AnimatedMedia media && AnimationDirectoryPRI is AnimationDirectory adirPri && AnimationDirectorySEC is AnimationDirectory adirSec && adirPri != adirSec)
     {
         adirSec.FindMediaByMediaGuid(media.MediaGuid)?.Delete();
     }
 }
Exemplo n.º 6
0
 private void OnInsert(object sender, MediaEventArgs e)
 {
     if (string.Compare(e.Volume.Name, "USB") == 0)
     {
         if (e.Volume.FileSystem != null)
         {
             this.massStorageDevice    = new GT.StorageDevice(e.Volume);
             this.IsMassStorageMounted = true;
             this.OnMassStorageMounted(this, this.massStorageDevice);
         }
         else
         {
             this.massStorageDevice    = null;
             this.IsMassStorageMounted = false;
             this.UnmountStorageDevice("USB");
             Debug.Print("The mass storage device does not have a valid filesystem.");
         }
     }
     else if (string.Compare(e.Volume.Name, "SD") == 0)
     {
         if (e.Volume.FileSystem != null)
         {
             this.sdCardStorageDevice = new GT.StorageDevice(e.Volume);
             this.IsSDCardMounted     = true;
             this.OnSDCardMounted(this, this.sdCardStorageDevice);
         }
         else
         {
             this.sdCardStorageDevice = null;
             this.IsSDCardMounted     = false;
             this.UnmountStorageDevice("SD");
             Debug.Print("The SD card does not have a valid filesystem.");
         }
     }
 }
Exemplo n.º 7
0
 private void _game_MediaEvent(object sender, MediaEventArgs e)
 {
     if (PlayMedia != null)
     {
         PlayMedia(this, e);
     }
 }
Exemplo n.º 8
0
 private void _mediaPRIRemoved(object o, MediaEventArgs e)
 {
     if (MediaDirectorySEC != null &&
         MediaDirectorySEC != MediaDirectoryPRI &&
         MediaDirectorySEC.IsInitialized)
     {
         var mediaToDelete = ((WatcherDirectory)MediaDirectorySEC).FindMediaByMediaGuid(e.Media.MediaGuid);
         if (mediaToDelete != null && mediaToDelete.FileExists())
         {
             var operation = new FileOperation(_fileManager)
             {
                 Kind = TFileOperationKind.Delete, Source = mediaToDelete
             };
             operation.Success += (sender, args) =>
             {
                 foreach (var ingestDirectory in IngestDirectories)
                 {
                     if (((IngestDirectory)ingestDirectory).FindMediaByMediaGuid(operation.Source.MediaGuid) is
                         IngestMedia media)
                     {
                         media.IngestStatus = TIngestStatus.Unknown;
                     }
                 }
             };
             FileManager.Queue(operation);
         }
     }
 }
        private void _selectedDirectoryMediaRemoved(object source, MediaEventArgs e)
        {
            var dir = source as IMediaDirectory;

            if (dir != null && dir.IsInitialized)
            {
                Application.Current.Dispatcher.BeginInvoke((Action) delegate()
                {
                    if (_mediaItems != null)
                    {
                        MediaViewViewmodel vm = _mediaItems.FirstOrDefault(v => v.Media == e.Media);
                        if (vm != null)
                        {
                            if (SelectedMedia == vm)
                            {
                                SelectedMedia = null;
                            }
                            _mediaItems.Remove(vm);
                            vm.Dispose();
                        }
                        _notifyDirectoryPropertiesChanged();
                    }
                }
                                                           , null);
            }
        }
Exemplo n.º 10
0
        private void _mediaPRIVerified(object o, MediaEventArgs e)
        {
            if (e.Media.MediaStatus != TMediaStatus.Available)
            {
                return;
            }
            if (!(MediaDirectorySEC is ServerDirectory sec) ||
                !(MediaDirectoryPRI is ServerDirectory pri) ||
                sec == pri ||
                !sec.IsInitialized ||
                !pri.IsInitialized)
            {
                return;
            }
            var sEcMedia = sec.FindMediaByMediaGuid(e.Media.MediaGuid);

            if (sEcMedia != null)
            {
                return;
            }
            sEcMedia = sec.FindMediaFirst(sm => e.Media.FileSize == sm.FileSize && e.Media.FileName == sm.FileName && sm.FileExists()) as MediaBase;
            if (sEcMedia == null)
            {
                FileManager.Queue(new FileOperation(_fileManager)
                {
                    Kind = TFileOperationKind.Copy, Source = e.Media, DestDirectory = sec
                }, false);
            }
            else
            {
                sEcMedia.CloneMediaProperties(e.Media);
                sEcMedia.MediaGuid = e.Media.MediaGuid;
                sEcMedia.ReVerify();
            }
        }
Exemplo n.º 11
0
 private void _mediaPRIRemoved(object o, MediaEventArgs e)
 {
     if (MediaDirectorySEC != null &&
         MediaDirectorySEC != MediaDirectoryPRI &&
         MediaDirectorySEC.IsInitialized)
     {
         var mediaToDelete = ((WatcherDirectory)MediaDirectorySEC).FindMediaByMediaGuid(e.Media.MediaGuid);
         if (mediaToDelete != null && mediaToDelete.FileExists())
         {
             var operation = new DeleteOperation {
                 Source = mediaToDelete
             };
             if (mediaToDelete.Directory is ServerDirectory serverDirectory)
             {
                 operation.Success += (sender, args) =>
                 {
                     foreach (var ingestDirectory in IngestDirectories)
                     {
                         if (((IngestDirectory)ingestDirectory).FindMediaByMediaGuid(operation.Source.MediaGuid) is IngestMedia ingestMedia)
                         {
                             ingestMedia.NotifyIngestStatusUpdated(serverDirectory, TIngestStatus.Unknown);
                         }
                     }
                 }
             }
             ;
             FileManager.Queue(operation);
         }
     }
 }
Exemplo n.º 12
0
        private void RemovableMedia_Insert(object sender, MediaEventArgs e)
        {
            if (!e.Volume.IsFormatted)
            {
                Logger.WriteInfo("RPTR", "Media is not formatted. Formatting card...");
                Thread.Sleep(5000);
                try
                {
                    sdCard.Mount();
                    Thread.Sleep(2000);

                    e.Volume.Format("FAT", 0, "SD", true);

                    Logger.WriteInfo("RPTR", "Formatting completed");
                }
                catch (Exception ex)
                {
                    Logger.WriteError("RPTR", "Formatting failed ", ex);
                }
            }
            else
            {
                Logger.WriteInfo("RPTR", "Media inserted is formatted with volume: " + e.Volume.Name);
            }
        }
Exemplo n.º 13
0
        private void _animationDirectoryMediaSaved(object sender, MediaEventArgs e)
        {
            if (!(e.Media is AnimatedMedia priMedia))
            {
                throw new ApplicationException("Invalid media type provided");
            }
            if (priMedia.MediaStatus == TMediaStatus.Deleted)
            {
                return;
            }
            if (!(AnimationDirectoryPRI is AnimationDirectory pri) ||
                !(AnimationDirectorySEC is AnimationDirectory sec) ||
                sec == pri ||
                !sec.IsInitialized ||
                !pri.IsInitialized)
            {
                return;
            }
            var compMedia = (e.Media.Directory == pri
                ? sec.FindMediaByMediaGuid(e.Media.MediaGuid)
                : pri.FindMediaByMediaGuid(e.Media.MediaGuid))
                            as AnimatedMedia;

            if (compMedia?.IsModified == true)
            {
                compMedia.Save();
            }
        }
Exemplo n.º 14
0
 private void ArchiveDirectory_MediaDeleted(object sender, MediaEventArgs e)
 {
     if (((ServerDirectory)MediaDirectoryPRI)?.FindMediaByMediaGuid(e.Media.MediaGuid) is ServerMedia m)
     {
         m.IsArchived = false;
     }
 }
 void _searchDirectory_MediaVerified(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action) delegate()
     {
         _itemsView.Refresh();
     });
 }
Exemplo n.º 16
0
 private void OnMediaEject(object sender, MediaEventArgs e)
 {
     Log.WriteLine("SD card ejected.");
     lock (_lock)
     {
         _logOnline = false;
     }
 }
Exemplo n.º 17
0
 private void OnEject(object sender, MediaEventArgs e)
 {
     if (string.Compare(e.Volume.Name, "USB") == 0)
     {
         this.massStorageDevice    = null;
         this.IsMassStorageMounted = false;
         this.OnMassStorageUnmounted(this, null);
     }
 }
Exemplo n.º 18
0
        private void OnMediaChangeEvent(MediaEventArgs e)
        {
            if (e != null)
            {
                Log.Logger.Verbose("Media change: {Type}, {Id}", e.Change, e.MediaItemId);

                MediaChangeEvent?.Invoke(this, e);
            }
        }
Exemplo n.º 19
0
 private void OnEject(object sender, MediaEventArgs e)
 {
     if (string.Compare(e.Volume.Name, "SD") == 0)
     {
         this.device        = null;
         this.IsCardMounted = false;
         this.OnUnmounted(this, null);
     }
 }
Exemplo n.º 20
0
 /// <summary>
 /// This method is called when the USB storage device is mounted.
 /// </summary>
 /// <param name="sender">The object that raised the event.</param>
 /// <param name="e">The event arguments.</param>
 private static void RemovableMedia_Insert(object sender, MediaEventArgs e)
 {
     volInfo = e.Volume;
     Mp3Info.SaveInfo();
     foreach (Connection connection in WT32.Connections.Values)
     {
         SendTracks(connection, true);
     }
 }
 private void OnMediaAssetLoaded(object sender, MediaEventArgs e)
 {
     try
     {
         MediaAssets.Add(e.Media);
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex);
     }
 }
Exemplo n.º 22
0
 private void ArchiveDirectory_MediaDeleted(object sender, MediaEventArgs e)
 {
     if (MediaDirectoryPRI != null)
     {
         var m = ((ServerDirectory)MediaDirectoryPRI).FindMediaByMediaGuid(e.Media.MediaGuid) as ServerMedia;
         if (m != null)
         {
             m.IsArchived = false;
         }
     }
 }
Exemplo n.º 23
0
 private void RemovableMediaInsert(object sender, MediaEventArgs e)
 {
     if (driveMounted)
     {
         var ev = MediaInserted;
         if (ev != null)
         {
             ev(this, new RemovableVolumeEventArgs(e.Volume));
         }
     }
 }
Exemplo n.º 24
0
 private void _recorder_CaptureSuccess(object sender, MediaEventArgs e)
 {
     if (!(sender is CasparRecorder recorder))
     {
         return;
     }
     if ((recorder.RecordingDirectory == MediaDirectorySEC || recorder.RecordingDirectory != MediaDirectoryPRV) && recorder.RecordingDirectory != MediaDirectoryPRI)
     {
         CopyMediaToPlayout(new[] { e.Media }, true);
     }
 }
Exemplo n.º 25
0
 private void _onServerDirectoryMediaSaved(object dir, MediaEventArgs e)
 {
     if (e.Media is ServerMedia priMedia &&
         priMedia.MediaStatus != TMediaStatus.Deleted)
     {
         ServerMedia compMedia = _findComplementaryMedia(priMedia);
         if (compMedia?.IsModified == true)
         {
             ThreadPool.QueueUserWorkItem(o => compMedia.Save());
         }
     }
 }
Exemplo n.º 26
0
        private void _recorder_CaptureSuccess(object sender, MediaEventArgs e)
        {
            CasparRecorder recorder = sender as CasparRecorder;

            if (recorder != null)
            {
                if ((recorder.RecordingDirectory == MediaDirectorySEC || recorder.RecordingDirectory != MediaDirectoryPRV) && recorder.RecordingDirectory != MediaDirectoryPRI)
                {
                    CopyMediaToPlayout(new[] { e.Media }, true);
                }
            }
        }
Exemplo n.º 27
0
        private void _onAnimationDirectoryMediaRemoved(object sender, MediaEventArgs e)
        {
            var adirPri = AnimationDirectoryPRI as AnimationDirectory;
            var adirSec = AnimationDirectorySEC as AnimationDirectory;
            var media   = e.Media as AnimatedMedia;

            if (media != null &&
                (adirPri != null && adirSec != null && adirPri != adirSec))
            {
                adirSec.FindMediaByMediaGuid(media.MediaGuid)?.Delete();
            }
        }
 void _searchDirectory_MediaAdded(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action) delegate()
     {
         IMedia media = e.Media;
         if (media != null &&
             _canAddMediaToCollection(media, _mediaType))
         {
             _items.Add(new MediaViewViewmodel(media));
         }
     });
 }
Exemplo n.º 29
0
        private void _onServerDirectoryMediaSaved(object dir, MediaEventArgs e)
        {
            ServerMedia priMedia = e.Media as ServerMedia;

            if (priMedia != null && priMedia.MediaStatus != TMediaStatus.Deleted)
            {
                ServerMedia compMedia = _findComplementaryMedia(priMedia);
                if (compMedia != null)
                {
                    ThreadPool.QueueUserWorkItem((o) => compMedia.Save());
                }
            }
        }
 void _searchDirectory_MediaRemoved(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action) delegate()
     {
         var mvm = Items.FirstOrDefault(m => m.Media == e.Media);
         if (mvm != null)
         {
             Items.Remove(mvm);
             mvm.Dispose();
             _itemsView.Refresh();
         }
     });
 }
Exemplo n.º 31
0
 /// <summary>
 /// raises the media state changed event
 /// </summary>
 protected void onMediaStateChanged()
 {
     MediaEventArgs e = new MediaEventArgs(PlayState);
     EventHelper.invoke<Media, MediaEventArgs>(OnMediaStateChanged, this, e);
 }
 private void MediaAdded(object source, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)delegate()
     {
         if (!(MediaDirectory is ServerDirectory) || e.Media.MediaType == TMediaType.Movie || e.Media.MediaType == TMediaType.Still)
         _mediaItems.Add(new MediaViewViewmodel(e.Media));
         _notifyDirectoryPropertiesChanged();
     }
         , null);
 }
 private void MediaRemoved(object source, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)delegate()
     {
         var vm = _mediaItems.FirstOrDefault(v => v.Media == e.Media);
         if (vm != null)
             _mediaItems.Remove(vm);
         _notifyDirectoryPropertiesChanged();
     }, null);
 }
 void _searchDirectory_MediaVerified(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)delegate()
     {
         _itemsView.Refresh();
     });
 }
Exemplo n.º 35
0
 /// <summary>
 /// raises the play finished event
 /// </summary>
 protected void onPlayFinished()
 {
     MediaEventArgs e = new MediaEventArgs(PlayState);
     EventHelper.invoke<Media, MediaEventArgs>(OnPlayFinished, this, e);
 }
 void _searchDirectory_MediaAdded(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)delegate()
     {
         if (e.Media != null && e.Media.MediaType == MediaType)
             Items.Add(new MediaViewViewmodel(e.Media));
     });
 }
 void _searchDirectory_MediaRemoved(object sender, MediaEventArgs e)
 {
     Application.Current.Dispatcher.BeginInvoke((Action)delegate()
     {
         var mvm = Items.FirstOrDefault(m => m.Media == e.Media);
         if (mvm != null)
         {
             Items.Remove(mvm);
             _itemsView.Refresh();
         }
     });
 }