예제 #1
0
        private static bool CleanupCard()
        {
            lock (mInitObj)
            {
                if (mRefCount > 0)
                {
                    mRefCount--;
                }

                if (mDSPInit && mRefCount <= 0)
                {
                    DS40xxSDKWrap.RegisterImageStreamCallback(null, IntPtr.Zero);

                    DS40xxSDKWrap.DeInitDSPs();

                    mDSPInit      = false;
                    mRefCount     = 0;
                    mChannelCount = 0;
                    mPlays        = null;
                }
                return(!mDSPInit);
            }
        }
예제 #2
0
        private static bool InitCard(VideoStandard_t VideoStandard)
        {
            lock (mInitObj)
            {
                mRefCount++;

                if (!mDSPInit)
                {
                    DS40xxSDKWrap.SetDefaultVideoStandard(VideoStandard);
                    mChannelCount = DS40xxSDKWrap.InitDSPs();
                    if (mChannelCount > 0)
                    {
                        mPlays = new HKCardPlayer[mChannelCount];

                        mImageStreamCallback = new IMAGE_STREAM_CALLBACK(DoImageStreamCallBack);
                        DS40xxSDKWrap.RegisterImageStreamCallback(mImageStreamCallback, IntPtr.Zero);

                        mDSPInit = true;
                    }
                }
                return(mDSPInit);
            }
        }