예제 #1
0
		/// <summary>
		/// Stream not found status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendStreamNotFoundStatus(IPlayItem item) {
			StatusASO notFound = new StatusASO(StatusASO.NS_PLAY_STREAMNOTFOUND);
			notFound.clientid = this.StreamId;
			notFound.level = StatusASO.ERROR;
			notFound.details = item.Name;

			StatusMessage notFoundMsg = new StatusMessage();
			notFoundMsg.body = notFound;
			DoPushMessage(notFoundMsg);
		}
예제 #2
0
		/// <summary>
		/// Insufficient bandwidth notification
		/// </summary>
		/// <param name="item"></param>
		private void SendInsufficientBandwidthStatus(IPlayItem item) {
			StatusASO insufficientBW = new StatusASO(StatusASO.NS_PLAY_INSUFFICIENT_BW);
			insufficientBW.clientid = this.StreamId;
			insufficientBW.level = StatusASO.WARNING;
			insufficientBW.details = item.Name;
			insufficientBW.description = "Data is playing behind the normal speed.";

			StatusMessage insufficientBWMsg = new StatusMessage();
			insufficientBWMsg.body = insufficientBW;
			DoPushMessage(insufficientBWMsg);
		}
예제 #3
0
		/// <summary>
		/// Send resume status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendResumeStatus(IPlayItem item) {
			StatusASO resume = new StatusASO(StatusASO.NS_UNPAUSE_NOTIFY);
			resume.clientid = this.StreamId;
			resume.details = item.Name;

			StatusMessage resumeMsg = new StatusMessage();
			resumeMsg.body = resume;
			DoPushMessage(resumeMsg);
		}
예제 #4
0
		/// <summary>
		/// Send unpublished status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendUnpublishedStatus(IPlayItem item) {
			StatusASO unpublished = new StatusASO(StatusASO.NS_PLAY_UNPUBLISHNOTIFY);
			unpublished.clientid = this.StreamId;
			unpublished.details = item.Name;

			StatusMessage unpublishedMsg = new StatusMessage();
			unpublishedMsg.body = unpublished;
			DoPushMessage(unpublishedMsg);
		}
예제 #5
0
		/// <summary>
		/// Send seek status notification
		/// </summary>
		/// <param name="item"></param>
		/// <param name="position"></param>
		private void SendSeekStatus(IPlayItem item, int position) {
			StatusASO seek = new StatusASO(StatusASO.NS_SEEK_NOTIFY);
			seek.clientid = this.StreamId;
			seek.details = item.Name;
			seek.description = "Seeking " + position + " (stream ID: " + this.StreamId + ").";
			StatusMessage seekMsg = new StatusMessage();
			seekMsg.body = seek;
			DoPushMessage(seekMsg);
		}
예제 #6
0
		/// <summary>
		/// Send pause status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendPauseStatus(IPlayItem item) {
			StatusASO pause = new StatusASO(StatusASO.NS_PAUSE_NOTIFY);
			pause.clientid = this.StreamId;
			pause.details = item.Name;

			StatusMessage pauseMsg = new StatusMessage();
			pauseMsg.body = pause;
			DoPushMessage(pauseMsg);
		}
예제 #7
0
		/// <summary>
		/// Send playback start status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendStartStatus(IPlayItem item) {
			StatusASO start = new StatusASO(StatusASO.NS_PLAY_START);
			start.clientid = this.StreamId;
			start.details = item.Name;
			start.description = "Started playing " + item.Name + '.';

			StatusMessage startMsg = new StatusMessage();
			startMsg.body = start;
			DoPushMessage(startMsg);
		}
예제 #8
0
		/// <summary>
		/// Send playback stoppage status notification
		/// </summary>
		/// <param name="item"></param>
		private void SendStopStatus(IPlayItem item) {
			StatusASO stop = new StatusASO(StatusASO.NS_PLAY_STOP);
			stop.clientid = this.StreamId;
			stop.description = "Stopped playing " + item.Name + ".";
			stop.details = item.Name;

			StatusMessage stopMsg = new StatusMessage();
			stopMsg.body = stop;
			DoPushMessage(stopMsg);
		}
예제 #9
0
		/// <summary>
		/// Send reset status for item
		/// </summary>
		/// <param name="item"></param>
		private void SendResetStatus(IPlayItem item) {
			StatusASO reset = new StatusASO(StatusASO.NS_PLAY_RESET);
			reset.clientid = this.StreamId;
			reset.details = item.Name;
			reset.description = "Playing and resetting " + item.Name + '.';
			StatusMessage resetMsg = new StatusMessage();
			resetMsg.body = reset;
			DoPushMessage(resetMsg);
		}
예제 #10
0
		protected override MessageBase CopyImpl(MessageBase clone) {
			// Instantiate the clone, if a derived type hasn't already.
			if (clone == null)
				clone = new StatusMessage();
			return base.CopyImpl(clone);
		}
예제 #11
0
		/// <summary>
		/// Sends record failed notifications.
		/// </summary>
		/// <param name="reason"></param>
		private void SendRecordFailedNotify(string reason) {
			StatusASO failedStatus = new StatusASO(StatusASO.NS_RECORD_FAILED);
			failedStatus.level = StatusASO.ERROR;
			failedStatus.clientid = this.StreamId;
			failedStatus.details = this.PublishedName;
			failedStatus.description = reason;

			StatusMessage failedMsg = new StatusMessage();
			failedMsg.body = failedStatus;
			try {
				_connMsgOut.PushMessage(failedMsg);
			} catch (IOException ex) {
				log.Error("Error while pushing message.", ex);
			}
		}
예제 #12
0
		/// <summary>
		/// Sends record stop notifications.
		/// </summary>
		private void SendRecordStopNotify() {
			StatusASO stopStatus = new StatusASO(StatusASO.NS_RECORD_STOP);
			stopStatus.clientid = this.StreamId;
			stopStatus.details = this.PublishedName;

			StatusMessage startMsg = new StatusMessage();
			startMsg.body = stopStatus;
			try {
				_connMsgOut.PushMessage(startMsg);
			} catch (System.IO.IOException ex) {
				log.Error("Error while pushing message.", ex);
			}
		}
예제 #13
0
		/// <summary>
		/// Sends publish start notifications.
		/// </summary>
		private void SendPublishStartNotify() {
			StatusASO publishStatus = new StatusASO(StatusASO.NS_PUBLISH_START);
			publishStatus.clientid = this.StreamId;
			publishStatus.details = this.PublishedName;
			StatusMessage startMsg = new StatusMessage();
			startMsg.body = publishStatus;
			try {
				_connMsgOut.PushMessage(startMsg);
			} catch (System.IO.IOException ex) {
				log.Error("Error while pushing message.", ex);
			}
		}