public Camera GetCamera(string cameraId)
        {
            Dictionary <Uri, ServiceProfile> services = ServiceProvider.GetServices <IMediaPublisherService>();

            foreach (var item in services)
            {
                IMediaPublisherService service = ServiceProvider.GetService <IMediaPublisherService>(item.Value.HostName, item.Value.Uri.ToString());

                GetPublishedCamerasRequest  request  = new GetPublishedCamerasRequest();
                GetPublishedCamerasResponse response = service.GetPublishedCameras(request);

                var publishedCamera = response.PublishedCameras.FirstOrDefault(c => c.Profile.CameraId == cameraId);
                if (publishedCamera != null)
                {
                    Camera camera = new Camera()
                    {
                        Id   = publishedCamera.Profile.CameraId,
                        Name = publishedCamera.Profile.CameraName,
                        Url  = string.Format(CultureInfo.InvariantCulture, @"http://{0}:{1}", item.Value.HostName, publishedCamera.Destination.Port),
                        Port = publishedCamera.Destination.Port,
                    };
                    return(camera);
                }
            }

            return(null);
        }
        public IList <Camera> GetCameras()
        {
            List <Camera> cameras = new List <Camera>();
            Dictionary <Uri, ServiceProfile> services = ServiceProvider.GetServices <IMediaPublisherService>();

            foreach (var item in services)
            {
                IMediaPublisherService service = ServiceProvider.GetService <IMediaPublisherService>(item.Value.HostName, item.Value.Uri.ToString());

                GetPublishedCamerasRequest  request  = new GetPublishedCamerasRequest();
                GetPublishedCamerasResponse response = service.GetPublishedCameras(request);

                foreach (var publishedCamera in response.PublishedCameras)
                {
                    Camera camera = new Camera()
                    {
                        Id   = publishedCamera.Profile.CameraId,
                        Name = publishedCamera.Profile.CameraName,
                        Url  = string.Format(CultureInfo.InvariantCulture, @"http://{0}:{1}", item.Value.HostName, publishedCamera.Destination.Port),
                        Port = publishedCamera.Destination.Port,
                    };
                    cameras.Add(camera);
                }
            }

            return(cameras);
        }
        public byte[] GetCameraThumbnail(string cameraId)
        {
            Dictionary <Uri, ServiceProfile> services = ServiceProvider.GetServices <IMediaPublisherService>();

            foreach (var item in services)
            {
                IMediaPublisherService service = ServiceProvider.GetService <IMediaPublisherService>(item.Value.HostName, item.Value.Uri.ToString());

                GetPublishedCamerasRequest  request  = new GetPublishedCamerasRequest();
                GetPublishedCamerasResponse response = service.GetPublishedCameras(request);

                var publishedCamera = response.PublishedCameras.FirstOrDefault(c => c.Profile.CameraId == cameraId);
                if (publishedCamera != null)
                {
                    return(publishedCamera.Profile.CameraThumbnail);
                }
            }

            return(null);
        }
Exemple #4
0
        public void CheckPortAvailable(string hostUri, int port, EventHandler <AsyncWorkerCallbackEventArgs <bool> > callback)
        {
            if (port <= 0)
            {
                throw new ArgumentNullException("port");
            }

            try
            {
                AsyncWorkerHandle <bool> handle = AsyncWorkerHelper.DoWork <bool>(
                    delegate(object sender, DoWorkEventArgs e)
                {
                    e.Result = true; // check here, true is available, false is not available

                    MediaService service = GetMediaPublisherServiceSync(hostUri);

                    GetPublishedCamerasRequest request   = new GetPublishedCamerasRequest();
                    GetPublishedCamerasResponse response =
                        ServiceProvider
                        .GetService <IMediaPublisherService>(service.HostName, service.Uri.ToString())
                        .GetPublishedCameras(request);

                    if (response.PublishedCameras != null)
                    {
                        foreach (var item in response.PublishedCameras)
                        {
                            if (item.Destination.Port == port)
                            {
                                e.Result = false; // find this port is in using, so it's not available
                                break;
                            }
                        }
                    }
                },
                    null, callback);
            }
            catch (Exception ex)
            {
                ExceptionHandler.Handle(ex);
            }
        }
Exemple #5
0
        public GetPublishedCamerasResponse GetPublishedCameras(GetPublishedCamerasRequest request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }

                GetPublishedCamerasResponse response = new GetPublishedCamerasResponse();
                response.PublishedCameras = new PublishedCameraDataCollection();

                IList <PublishedCamera> list = Locator.Get <IStreamingManager>().GetPublishedCameras();
                response.PublishedCameras.AddRange((from c in list select PublishedCameraTranslator.Translate(c)).ToList());

                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <DeviceConnectorServiceFault>(new DeviceConnectorServiceFault(ex.Message, ex), ex.Message);
            }
        }
        public GetPublishedCamerasResponse GetPublishedCameras(GetPublishedCamerasRequest request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }

                GetPublishedCamerasResponse response = new GetPublishedCamerasResponse();

                IList <PublishedCamera> list = Locator.Get <IPublishedCameraManager>().GetPublishedCameras();
                foreach (var item in list)
                {
                    PublishedCameraData camera = new PublishedCameraData()
                    {
                        Profile = new PublishedCameraProfileData()
                        {
                            CameraId              = item.Profile.CameraId,
                            CameraName            = item.Profile.CameraName,
                            CameraThumbnail       = item.Profile.CameraThumbnail,
                            DeviceServiceHostName = item.Profile.DeviceServiceHostName,
                            DeviceServiceUri      = item.Profile.DeviceServiceUri,
                        },
                        Destination = new PublishedDestinationData()
                        {
                            Port = item.Destination.Port,
                        },
                    };
                    response.PublishedCameras.Add(camera);
                }

                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <MediaPublisherServiceFault>(new MediaPublisherServiceFault(ex.Message, ex), ex.Message);
            }
        }
Exemple #7
0
        private static List <PublishedCamera> GetPublishedCamerasSync()
        {
            List <MediaService> services = GetMediaPublisherServicesSync();

            List <PublishedCamera> cameras = new List <PublishedCamera>();

            foreach (var service in services)
            {
                GetPublishedCamerasRequest  request  = new GetPublishedCamerasRequest();
                GetPublishedCamerasResponse response =
                    ServiceProvider
                    .GetService <IMediaPublisherService>(service.HostName, service.Uri.ToString())
                    .GetPublishedCameras(request);

                if (response.PublishedCameras != null)
                {
                    foreach (var item in response.PublishedCameras)
                    {
                        PublishedCamera camera = new PublishedCamera(
                            new PublishedCameraProfile(item.Profile.CameraId, item.Profile.CameraName)
                        {
                            CameraThumbnail       = item.Profile.CameraThumbnail,
                            DeviceServiceHostName = item.Profile.DeviceServiceHostName,
                            DeviceServiceUri      = item.Profile.DeviceServiceUri,
                        },
                            new PublishedDestination(item.Destination.Port))
                        {
                            PublishServiceHostName = service.HostName,
                            PublishServiceUri      = service.Uri.ToString(),
                        };

                        cameras.Add(camera);
                    }
                }
            }

            return(cameras);
        }