public bool Connect() { // If we're already connected, then simply return if (fIsConnected) return fIsConnected; fIsConnected = capDriverConnect(); if (!fIsConnected) throw new Exception("VfwCaptureDevice - Connection to device failed"); // Get the driver capabilities fDriverCapabilities = new CAPDRIVERCAPS(); bool gotDriverCaps = capDriverGetCaps(ref fDriverCapabilities); // Finally allow a subclasser to do something special // upon connection. OnConnected(); capGetStatus(ref fCaptureStatus); StringBuilder sb = new StringBuilder(100); StringBuilder sbVersion = new StringBuilder(100); capDriverGetName(sb, 100); capDriverGetVersion(sbVersion, 100); fDeviceDriver = new VfwDeviceDriver(sb.ToString(), sbVersion.ToString()); return fIsConnected; }
public void Refresh() { string name = "".PadRight(100), version = "".PadRight(100); for (short i = 0; i < gmaxDevices; i++) { if (AviCap32.capGetDriverDescription(i, ref name, 100, ref version, 100)) { VfwDeviceDriver d = new VfwDeviceDriver(name, version); d.Name = name.Trim(); d.Version = version.Trim(); devices.Add(d); } } }