[camera] add CameraController class