import cs134lib.*;

import objectdraw.ActiveObject;
import objectdraw.VisibleImage;
import javax.swing.*;
import java.awt.*;

/**
 * An active object that keeps track of whether
 * it is filming or not.
 */
public class VideoCamera extends ActiveObject {

  private VisibleImage display;  // visible image to update
  
  private boolean filming;       // are we still using the camera?

  private static final int FREQ = 1000 / 24;  // frame rate

  public VideoCamera(VisibleImage display) {
    this.display = display;
    filming = true;
    this.start();
  }
 
  public void run() {
    
    Camera c = new Camera();
    c.activate();
    
    double startTime = System.currentTimeMillis();
    while (System.currentTimeMillis() - startTime < 5000) {

      Image image = c.getImage();
      display.setImage(image);
      pause(FREQ);

    }
    
    c.deactivate();
    filming = false;  // turn off filming
    
  }
  
  /*
   * Return whether or not we are still filming
   */
  public boolean isFilming() {
    return filming;
  }
}
