Ejemplo n.º 1
0
        public void move(double newPosition, double threshold)
        {
            if (Math.Abs(newPosition - position) <= threshold)
            {
                if (currentOrNextItemIndex != -1)
                {
                    args.Clear();

                    if (position < annoList[currentOrNextItemIndex].Start &&
                        newPosition >= annoList[currentOrNextItemIndex].Start)
                    {
                        args["label"]  = annoList[currentOrNextItemIndex].Label;
                        args["time"]   = annoList[currentOrNextItemIndex].Start;
                        args["dur"]    = (double)0.0f;
                        args["state"]  = 1;
                        args["scheme"] = annoList.Scheme.Name;
                        trigger.call("update_enter", args);
                    }

                    if (newPosition > annoList[currentOrNextItemIndex].Stop)
                    {
                        args["label"]  = annoList[currentOrNextItemIndex].Label;
                        args["time"]   = annoList[currentOrNextItemIndex].Start;
                        args["dur"]    = annoList[currentOrNextItemIndex].Duration;
                        args["scheme"] = annoList.Scheme.Name;
                        args["state"]  = 0;
                        trigger.call("update_leave", args);

                        currentOrNextItemIndex++;
                        if (currentOrNextItemIndex >= annoList.Count)
                        {
                            currentOrNextItemIndex = -1;
                        }
                    }
                }
            }
            else
            {
                currentOrNextItemIndex = findItem(newPosition);
            }

            position = newPosition;
        }
Ejemplo n.º 2
0
        public AnnoTrigger(AnnoList annoList, PluginCaller trigger, Dictionary <string, object> args)
        {
            this.annoList = annoList;
            this.trigger  = trigger;
            this.args     = args;

            position = 0;
            currentOrNextItemIndex = annoList.Count == 0 ? -1 : 0;

            object result = trigger.call("open", args);

            if (result != null)
            {
                MessageTools.Error(result.ToString());
            }
        }