IEnumerator SearchForLiveBroadcast()
 {
     if (useLocalhost)
     {
         broadcastId = "localhost";
         broadcastStatus = BroadcastStatus.Live;
     }
     else if (broadcastStatus != BroadcastStatus.Live || String.IsNullOrEmpty(broadcastId))
     {
         yield return HandleAPIRequest<BroadcastsResponse>(
             APIHttpHost, broadcastsEndpointPath, "", AccessToken,
             (BroadcastsResponse r) =>
             {
                 if (r != null && r.broadcasts != null)
                 {
                     foreach (Broadcast broadcast in r.broadcasts)
                     {
                         if (broadcast.state == "running")
                         {
                             broadcastId = broadcast.id;
                             broadcastStatus = BroadcastStatus.Live;
                             break;
                         }
                     }
                 }
             },
             (APIResponse r) => { });
     }
 }
        IEnumerator CreateBroadcast()
        {
            yield return StartCoroutine(GetRegion());
            Assert.IsTrue(!String.IsNullOrEmpty(region));

            bool is360 = false;
            string payload = String.Format(
                @"{{""region"":""{0}"",""is_360"":{1}}}",
                region,
                is360 ? "true" : "false");

            yield return HandleAPIRequest<BroadcastCreateResponse>(
                APIHttpHost,
                broadcastCreateEndpointPath,
                payload,
                AccessToken,
                (BroadcastCreateResponse r) =>
                {
                    if (r != null && r.broadcast != null && r.encoder != null)
                    {
                        broadcastId = r.broadcast.id;
                        streamKey = r.encoder.stream_key;
                        streamUrl = r.encoder.rtmp_url;
                        broadcastStatus = BroadcastStatus.ReadyToStream;
                    }
                },
                (APIResponse r) => { });
        }
 public Broadcast(long identifier, string name, BroadcastStatus status, DateTime lastModified, BroadcastType type, BroadcastConfig item)
 {
     id           = identifier;
     Name         = name;
     Status       = status;
     LastModified = lastModified;
     Type         = type;
     Item         = item;
 }
 public Broadcast(long identifier, string name, BroadcastStatus status, DateTime lastModified, BroadcastType type, BroadcastConfig item)
 {
     id = identifier;
     Name = name;
     Status = status;
     LastModified = lastModified;
     Type = type;
     Item = item;
 }
        IEnumerator StopBroadcast()
        {
            Assert.IsTrue(!String.IsNullOrEmpty(broadcastId));
            string payload = String.Format(@"{{""broadcast_id"":""{0}""}}", broadcastId);

            yield return HandleAPIRequest<EmptyResponse>(
                APIHttpHost, broadcastStopEndpointPath, payload, AccessToken,
                (EmptyResponse json) =>
                {
                    broadcastId = "";
                    broadcastStatus = BroadcastStatus.NotStarted;
                    Disconnect();
                },
                (APIResponse r) => { });
        }
Example #6
0
 public static ObervableOperation Create(IOperationMeta operation, BroadcastStatus status, string txHash, DateTime?updated = null)
 {
     return(new ObervableOperation
     {
         OperationId = operation.OperationId,
         AmountSatoshi = operation.AmountSatoshi,
         AssetId = operation.AssetId,
         FromAddress = operation.FromAddress,
         IncludeFee = operation.IncludeFee,
         ToAddress = operation.ToAddress,
         Status = status,
         TxHash = txHash,
         Updated = updated ?? DateTime.UtcNow,
         FeeSatoshi = operation.FeeSatoshi
     });
 }
        private BroadcastedTransactionState MapOperationState(BroadcastStatus status)
        {
            switch (status)
            {
            case BroadcastStatus.Completed:
                return(BroadcastedTransactionState.Completed);

            case BroadcastStatus.Failed:
                return(BroadcastedTransactionState.Failed);

            case BroadcastStatus.InProgress:
                return(BroadcastedTransactionState.InProgress);

            default:
                throw new InvalidCastException($"Unknown mapping from {status} ");
            }
        }
Example #8
0
 public static ObervableOperation Create(IOperationMeta operation, BroadcastStatus status, string txHash,
                                         int updatedAtBlockHeight, DateTime?updated = null)
 {
     return(new ObervableOperation
     {
         OperationId = operation.OperationId,
         Inputs = operation.Inputs.ToArray(),
         AssetId = operation.AssetId,
         Outputs = operation.Outputs.ToArray(),
         IncludeFee = operation.IncludeFee,
         Status = status,
         TxHash = txHash,
         Updated = updated ?? DateTime.UtcNow,
         FeeSatoshi = operation.FeeSatoshi,
         UpdatedAtBlockHeight = updatedAtBlockHeight,
     });
 }
 public static ObervableOperation Create(OperationAggregate operation, BroadcastStatus status, string txHash, int updatedAtBlockHeight, DateTime?updated = null)
 {
     return(new ObervableOperation
     {
         OperationId = operation.OperationId,
         Amount = operation.Amount,
         AssetId = operation.AssetId,
         FromAddress = operation.FromAddress,
         IncludeFee = operation.IncludeFee,
         ToAddress = operation.ToAddress,
         Status = status,
         TxHash = txHash,
         Updated = updated ?? DateTime.UtcNow,
         Fee = operation.Fee,
         UpdatedAtBlockHeight = updatedAtBlockHeight
     });
 }
        IEnumerator PublishBroadcast(string title, bool shouldNotTweet)
        {
            Assert.IsTrue(!String.IsNullOrEmpty(broadcastId));
            string payload = String.Format(
                @"{{""broadcast_id"":""{0}"",""title"":""{1}"",""should_not_tweet"":{2}}}",
                broadcastId,
                title,
                shouldNotTweet ? "true" : "false");

            yield return HandleAPIRequest<BroadcastPublishResponse>(
                APIHttpHost,
                broadcastPublishEndpointPath,
                payload,
                AccessToken,
                (BroadcastPublishResponse r) =>
                {
                    Assert.IsTrue(broadcastId.Equals(r.broadcast.id));
                    broadcastStatus = BroadcastStatus.Live;
                },
                (APIResponse r) => { });
        }