Example #1
0
        public static bool alutInitWithoutContext(int[] argcp, string[] argv)
        {
            if (initialisationState != InitialisationState.Unintialized)
            {
                Alut.alutSetError (ALUT_ERROR_INVALID_OPERATION);
                return false;
            }

            if ((argcp == null) != (argv == null))
            {
                Alut.alutSetError (ALUT_ERROR_INVALID_VALUE);
                return false;
            }

            initialisationState = InitialisationState. ExternalDeviceAndContext;
            return false;
        }
Example #2
0
        public static bool alutInit(int[] argcp, string[] argv)
        {
            IntPtr device;
            IntPtr context;

            if (initialisationState != InitialisationState.Unintialized)
            {
                Alut.alutSetError (ALUT_ERROR_INVALID_OPERATION);
                return false;
            }

            if ((argcp == null) != (argv == null))
            {
                Alut.alutSetError (ALUT_ERROR_INVALID_VALUE);
                return false;
            }

            device = Alc.alcOpenDevice (null);
            if (device == IntPtr.Zero)
            {
                Alut.alutSetError (ALUT_ERROR_OPEN_DEVICE);
                return false;
            }

            context = Alc.alcCreateContext (device, IntPtr.Zero);
            if (context == IntPtr.Zero)
            {
                Alc.alcCloseDevice (device);
                Alut.alutSetError (ALUT_ERROR_CREATE_CONTEXT);
                return false;
            }

            if (Alc.alcMakeContextCurrent (context) == 0)
            {
                Alc.alcDestroyContext (context);
                Alc.alcCloseDevice (device);
                Alut.alutSetError (ALUT_ERROR_MAKE_CONTEXT_CURRENT);
                return false;
            }

            initialisationState = InitialisationState.ALUTDeviceAndContext;
            alutContext = context;
            return true;
        }
        void app_BeginRequest(object sender, EventArgs e)
        {
            int c = 0;
            switch (InitState)
            {
                case InitialisationState.InProgress:
                    while (InitState == InitialisationState.InProgress)
                    {
                        System.Threading.Thread.Sleep(500);
                        if (++c > 30)
                        {
                            HttpContext.Current.Response.Write("The website is being initialised. Please try again in a minute or so.");
                            HttpContext.Current.Response.End();
                        }
                    }
                    break;

                case InitialisationState.None:
                    InitState = InitialisationState.InProgress;
                    if (((HttpApplication)sender).Application["Sprocket_SystemCore_Instance"] == null)
                        InitialiseSystemCore((HttpApplication)sender);
                    InitState = InitialisationState.Complete;
                    break;

            }
            ((WebEvents)SystemCore.Instance["WebEvents"]).FireBeginRequest(sender, e);
        }
Example #4
0
        public static bool alutExit()
        {
            IntPtr device;

            if (initialisationState == InitialisationState. Unintialized)
            {
                Alut.alutSetError (ALUT_ERROR_INVALID_OPERATION);
                return false;
            }

            if (initialisationState == InitialisationState.ExternalDeviceAndContext)
            {
                initialisationState = InitialisationState.Unintialized;
                return true;
            }

            if (!Alut.alutSanityCheck ())
            {
                return false;
            }

            if (Alc.alcMakeContextCurrent (IntPtr.Zero) == 0)
            {
                Alut.alutSetError (ALUT_ERROR_MAKE_CONTEXT_CURRENT);
                return false;
            }

            device = Alc.alcGetContextsDevice (alutContext);
            Alc.alcDestroyContext (alutContext);
            if (Alc.alcGetError (device) != Alc. ALC_NO_ERROR)
            {
                Alut.alutSetError (ALUT_ERROR_DESTROY_CONTEXT);
                return false;
            }

            Alc.alcCloseDevice (device);
            //if (Alc.alcGetError (device) != Alc. ALC_NO_ERROR)
            //{
            //    Alut.alutSetError (ALUT_ERROR_CLOSE_DEVICE);
            //    return false;
            //}

            initialisationState = InitialisationState. Unintialized;
            return true;
        }
Example #5
0
 public bool ClassInitialize(out string failure)
 {
     if (_initialisation == InitialisationState.Initialised) {
         failure = null;
         return true;
     }
     if (!_classInitialize.Valid) {
         failure = new TestException(_classInitialize.Error).ToString();
         return false;
     }
     if (_initialisation == InitialisationState.InitialisationFailed) {
         failure = _initialisationException.ToString();
         return false;
     }
     if (_classInitialize.Invoke(null, out failure, new [] { new TestContext(_context) })) {
         _initialisation = InitialisationState.Initialised;
         return true;
     }
     _initialisationException = failure;
     _initialisation = InitialisationState.InitialisationFailed;
     return true;
 }