001package com.github.sarxos.webcam.ds.ipcam;
002
003import java.util.Collections;
004import java.util.List;
005
006import com.github.sarxos.webcam.WebcamDevice;
007import com.github.sarxos.webcam.WebcamDriver;
008
009
010/**
011 * IP camera driver.
012 * 
013 * @author Bartosz Firyn (SarXos)
014 */
015public class IpCamDriver implements WebcamDriver {
016
017        public IpCamDriver() {
018                this(null);
019        }
020
021        public IpCamDriver(IpCamStorage storage) {
022                if (storage != null) {
023                        storage.open();
024                }
025        }
026
027        @Override
028        public List<WebcamDevice> getDevices() {
029                return Collections.unmodifiableList((List<? extends WebcamDevice>) IpCamDeviceRegistry.getIpCameras());
030        }
031
032        public void register(IpCamDevice device) {
033                IpCamDeviceRegistry.register(device);
034        }
035
036        public void unregister(IpCamDevice device) {
037                IpCamDeviceRegistry.unregister(device);
038        }
039
040        @Override
041        public boolean isThreadSafe() {
042                return true;
043        }
044
045        @Override
046        public String toString() {
047                return getClass().getSimpleName();
048        }
049}