public MainWin() { Text = Application.ProductName; ClientSize = new Size(600, 600*3/4); preview = new PreviewWin(); cam = null; stillImageObj = null; storageObj = null; img = null; taking = false; imgSaveFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal); captureTimeout = new Timer(); captureTimeout.Interval = 1000; captureTimeout.Tick += new EventHandler(CaptureTimeout); panel = new TableLayoutPanel(); //panel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; panel.Dock = DockStyle.Fill; Controls.Add(panel); cbCamera = new ComboBox(); cbCamera.DropDownStyle = ComboBoxStyle.DropDownList; cbCamera.SelectedIndexChanged += new EventHandler(CameraChanged); panel.Controls.Add(cbCamera, 0, 0); btnRefresh = new Button(); btnRefresh.Text = "Refresh"; btnRefresh.FlatStyle = FlatStyle.System; btnRefresh.Click += new EventHandler(RefreshDevicesOnClick); panel.Controls.Add(btnRefresh, 1, 0); btnTake = new Button(); btnTake.Text = "Take Picture"; btnTake.FlatStyle = FlatStyle.System; btnTake.Click += new EventHandler(TakePicture); panel.Controls.Add(btnTake, 2, 0); btnSave = new Button(); btnSave.Text = "Save Picture"; btnSave.FlatStyle = FlatStyle.System; btnSave.Click += new EventHandler(SavePicture); panel.Controls.Add(btnSave, 3, 0); btnClear = new Button(); btnClear.Text = "Clear Display"; btnClear.FlatStyle = FlatStyle.System; btnClear.Click += new EventHandler(ClearPicture); panel.Controls.Add(btnClear, 4, 0); pb = new PictureBox(); pb.Dock = DockStyle.Fill; pb.SizeMode = PictureBoxSizeMode.Zoom; pb.DoubleClick += new EventHandler(TakePicture); panel.Controls.Add(pb, 0, 1); panel.SetColumnSpan(pb, 5); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); RefreshDevices(); RefreshButtons(); }
void DevRemoved(object sender, WPD.PortableDeviceEventArgs e) { stillImageObj = null; storageObj = null; cam = null; RefreshDevices(); }
void DevReset(object sender, WPD.PortableDeviceEventArgs e) { WPD.PortableDeviceCategory stillImageCat = cam.GetCategory(WPD.FunctionCategory.StillImageCapture); stillImageObj = stillImageCat.Functions[0] as WPD.StillImageObject; WPD.PortableDeviceCategory storageCat = cam.GetCategory(WPD.FunctionCategory.Storage); storageObj = storageCat.Functions[0] as WPD.StorageObject; CreateInitialState(); RefreshButtons(); }
void CameraChanged(object sender, EventArgs e) { cam = cbCamera.SelectedItem as WPD.PortableDevice; if (cam == null) { stillImageObj = null; storageObj = null; return; } cam.DeviceRemoved += new WPD.PortableDeviceEventHandler(DevRemoved); cam.DeviceReset += new WPD.PortableDeviceEventHandler(DevReset); cam.ObjectAdded += new WPD.PortableDeviceEventHandler(ObjAdded); cam.ObjectRemoved += new WPD.PortableDeviceEventHandler(ObjRemoved); cam.StorageFormat += new WPD.PortableDeviceEventHandler(StgFormat); WPD.PortableDeviceCategory stillImageCat = cam.GetCategory(WPD.FunctionCategory.StillImageCapture); stillImageObj = stillImageCat.Functions[0] as WPD.StillImageObject; WPD.PortableDeviceCategory storageCat = cam.GetCategory(WPD.FunctionCategory.Storage); storageObj = storageCat.Functions[0] as WPD.StorageObject; CreateInitialState(); RefreshButtons(); }