Ejemplo n.º 1
0
 private void btnStop_Click(object sender, EventArgs e)
 {
     VSP.SignalToStop();
     VSP.WaitForStop();
     btnStart.Enabled    = true;
     btnStop.Enabled     = false;
     btnSnapshot.Enabled = false;
     btnTimer.Enabled    = false;
     timer1.Enabled      = false;
     lblDebug.Text       = "Preview stopped";
     VSP.Visible         = true;
     lblCntDwn.Text      = "Disabled";
     countDown           = spanOfShots;
 }
Ejemplo n.º 2
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     src             = new VideoCaptureDevice(devs[0].MonikerString);
     VSP.VideoSource = src;
     VideoCapabilities[] VCap = src.VideoCapabilities;
     picHeight = VCap[0].FrameSize.Height;
     picWidth  = VCap[0].FrameSize.Width;
     VSP.Start();
     lblDebug.Text       = "Preview startd, resolution = " + picWidth.ToString() + "X" + picHeight.ToString();
     threshold           = picWidth * picHeight * 20;
     btnStart.Enabled    = false;
     btnStop.Enabled     = true;
     btnSnapshot.Enabled = true;
     btnTimer.Enabled    = true;
 }
Ejemplo n.º 3
0
        private void sayCheese()
        {
            Bitmap snapshot    = new Bitmap(640, 480);
            string strFilename = "P" + DateTime.Now.Year.ToString();

            if (DateTime.Now.Month.ToString().Length == 1)
            {
                strFilename += "0" + DateTime.Now.Month.ToString();
            }
            else
            {
                strFilename += DateTime.Now.Month.ToString();
            }
            if (DateTime.Now.Day.ToString().Length == 1)
            {
                strFilename += "0" + DateTime.Now.Day.ToString();
            }
            else
            {
                strFilename += DateTime.Now.Day.ToString();
            }
            if (DateTime.Now.Hour.ToString().Length == 1)
            {
                strFilename += "0" + DateTime.Now.Hour.ToString();
            }
            else
            {
                strFilename += DateTime.Now.Hour.ToString();
            }
            if (DateTime.Now.Minute.ToString().Length == 1)
            {
                strFilename += "0" + DateTime.Now.Minute.ToString();
            }
            else
            {
                strFilename += DateTime.Now.Minute.ToString();
            }
            if (DateTime.Now.Second.ToString().Length == 1)
            {
                strFilename += "0" + DateTime.Now.Second.ToString();
            }
            else
            {
                strFilename += DateTime.Now.Second.ToString();
            }
            strFilename += ".jpg";
            string strAdded = DateTime.Now.Year.ToString() + "-";

            if (DateTime.Now.Month.ToString().Length == 1)
            {
                strAdded += "0" + DateTime.Now.Month.ToString() + "-";
            }
            else
            {
                strAdded += DateTime.Now.Month.ToString() + "-";
            }
            if (DateTime.Now.Day.ToString().Length == 1)
            {
                strAdded += "0" + DateTime.Now.Day.ToString() + " ";
            }
            else
            {
                strAdded += DateTime.Now.Day.ToString() + " ";
            }
            if (DateTime.Now.Hour.ToString().Length == 1)
            {
                strAdded += "0" + DateTime.Now.Hour.ToString() + ":";
            }
            else
            {
                strAdded += DateTime.Now.Hour.ToString() + ":";
            }
            if (DateTime.Now.Minute.ToString().Length == 1)
            {
                strAdded += "0" + DateTime.Now.Minute.ToString() + ":";
            }
            else
            {
                strAdded += DateTime.Now.Minute.ToString() + ":";
            }
            if (DateTime.Now.Second.ToString().Length == 1)
            {
                strAdded += "0" + DateTime.Now.Second.ToString();
            }
            else
            {
                strAdded += DateTime.Now.Second.ToString();
            }
            if (VSP.IsRunning)
            {
                snapshot = VSP.GetCurrentVideoFrame();
                Graphics   g     = Graphics.FromImage(snapshot);
                RectangleF rectf = new RectangleF(10, 10, 300, 20);
                g.SmoothingMode     = SmoothingMode.AntiAlias;
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.PixelOffsetMode   = PixelOffsetMode.HighQuality;
                g.DrawString(strAdded, new Font("Courier New", 12), Brushes.Red, rectf);
                g.Flush();
                snapshot.Save(strPath + strFilename, System.Drawing.Imaging.ImageFormat.Jpeg);
                g.Dispose();
            }
            snapshot.Dispose();
            //compare this snapshot to last one, targeting on removing the old one if there is actually no difference
            if (lastFileName == "")
            {
                lastFileName = strFilename;
            }
            else
            {
                bool isAlmostSame = almostSame(strPath + lastFileName, strPath + strFilename);
                if (!isAlmostSame)
                {
                    lastFileName = strFilename;
                    //shorten the span of snapshots if the sanpshot is different with preview one
                    spanOfShots = 5;
                }
                else
                {
                    spanOfShots = 10;
                    try {
                        File.Delete(strPath + strFilename);                         // delete this snapshot if this one is almost identical to the preview one
                    }
                    catch
                    {
                    }
                }
            }
        }
Ejemplo n.º 4
0
 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
 {
     VSP.SignalToStop();
     VSP.WaitForStop();
 }
Ejemplo n.º 5
0
        public Map(string fname, RpgController rpgController)
        {
            scriptHandler = new MapScriptHandler(fname, this, rpgController);
            Stream s = ResourceManager.Open(fname);
            BinaryReader br = new BinaryReader(s);

            //signature
            string str = StringBufferReader.read(s,6);
            if(str != "V3MAP")
            throw new NotAMapFileException(fname);

            //version
            int version = br.ReadInt32();
            if(version != 2) throw new MapFileBrokenException("Wrong version; expected 2; received " + version.ToString(),fname);

            try
            {

            //vc offset (skipped)
            br.ReadInt32();

            //mapname,vspname,musicname,renderstring,startupscript
            name = StringBufferReader.read(s,256);
            vspfile = StringBufferReader.read(s,256);
            musicfile = StringBufferReader.read(s,256);
            rstring = StringBufferReader.read(s,256);
            initscript = StringBufferReader.read(s,256);

            //startloc
            start.X = br.ReadInt16();
            start.Y = br.ReadInt16();

            //layers
            int numLayers = br.ReadInt32();
            layers = new TileLayer[numLayers];
            for(int i=0;i<numLayers;i++)
            {
                TileLayer tl = layers[i] = new TileLayer();
                tl.loadFromv32stream(br);
            }

            width = layers[0].width;
            height = layers[0].height;

            //special layers
            logicalLayer = new LogicalLayer(width,height);
            logicalLayer.obs = new Layer(); logicalLayer.obs.loadSpecialFromv32stream(8,width,height,br);
            logicalLayer.zone = new Layer(); logicalLayer.zone.loadSpecialFromv32stream(16,width,height,br);

            //zones
            int numZonedefs = br.ReadInt32();
            zonedefs = new Zonedef[numZonedefs];
            for(int i=0;i<numZonedefs;i++)
            {
                zonedefs[i] = new Zonedef();
                zonedefs[i].name = StringBufferReader.read(s,256);
                zonedefs[i].script = StringBufferReader.read(s,256);
                zonedefs[i].percent = br.ReadByte();
                zonedefs[i].delay = br.ReadByte();
                zonedefs[i].method = br.ReadByte();
            }

            //entities

            int numEntdefs = br.ReadInt32();
            entdefs = new Entdef[numEntdefs];
            for(int i=0;i<numEntdefs;i++)
            {
                entdefs[i] = new Entdef();
                entdefs[i].index = i;
                entdefs[i].x = br.ReadInt16();
                entdefs[i].y = br.ReadInt16();
                entdefs[i].facing = (Directions)br.ReadByte();
                if(entdefs[i].facing == Directions.None) entdefs[i].facing = Directions.s;
                entdefs[i].obstructable = br.ReadByte()==1;
                entdefs[i].obstruction = br.ReadByte()==1;
                entdefs[i].autoface = br.ReadByte()==1;
                entdefs[i].speed = br.ReadInt16(); //convert this to carot ticks?
                br.ReadByte();//activation mode
                entdefs[i].mode = br.ReadByte();
                entdefs[i].x1 = br.ReadInt16();
                entdefs[i].y1 = br.ReadInt16();
                entdefs[i].x2 = br.ReadInt16();
                entdefs[i].y2 = br.ReadInt16();
                entdefs[i].wanderDelay = br.ReadInt16();//convert this to carot ticks?
                br.ReadInt32();//wtf?
                entdefs[i].moveScript = StringBufferReader.read(s,256);
                entdefs[i].chrname = StringBufferReader.read(s,256);
                entdefs[i].descr = StringBufferReader.read(s,256);
                entdefs[i].script = StringBufferReader.read(s,256);
            }
            }
            catch(Exception e)
            {
            throw new MapFileBrokenException("Something is wrong with the mapfile.  Here's what happened:\n" + e.Message,fname);
            }

            //load up the vsp
            try
            {
            vsp = new VSP(Lib.GetAccompanyingFilePath(fname,vspfile));
            }
            catch(FileNotFoundException e) {throw new VspFileNotFoundException(e.Message); }

            br.Close();
        }