JaiCamera.cs 1011 Bytes
using Jai_FactoryDotNET;

namespace OS.Spin.Common.Camera
{

    public class JaiCamera
    {
        private static JaiCamera _jai;
        CFactory myFactory = new CFactory();
        private static object _objLock = new object();
        public static JaiCamera GetInstance()
        {
            lock(_objLock)
            {
                if(null == _jai)
                {
                    _jai = new JaiCamera();
                }
                return _jai;
            }
        }

        private JaiCamera()
        {
            myFactory.Open("");
            myFactory.UpdateCameraList(CFactory.EDriverType.Undefined);
        }

        public CCamera GetCameraByChannel(int channel)
        {
            if(channel >= myFactory.CameraList.Count)
            {
                return null;
            }

            return myFactory.CameraList[channel];
        }

        public void Close()
        {
            myFactory.Close();
            myFactory.Dispose();
        }
    }
}