     // MARK: Output creation
     ////////////////////////////////////////////////////////////////////////////
 
+    /**
+    Configures an `AVCatpureVideoDataOutput`.
+
+    - parameter delegate: The delegate to set.
+
+    - returns: A configured `AVCatpureVideoDataOutput`.
+    */
     private func configuredCameraOutput(delegate: AVCaptureVideoDataOutputSampleBufferDelegate) -> AVCaptureVideoDataOutput {
         let videoOutput = AVCaptureVideoDataOutput()
         let queue = dispatch_queue_create("be.delannoyk.boumboum", nil)

        state = .Running
    }

    public func stopMonitoring() throws {
        //Ensuring we have a camera
        guard let camera = camera else {

import UIKit
import AVFoundation

/**
 Possible BoumBoum Errors.

 - AlreadyRunning:                  Means you asked to start monitoring while it already is.
 - AlreadyStopped:                  Means you asked to stop monitoring while it's not.
 - CameraUnavailable:               Means the camera isn't available.
 - TorchModeUnsupported:            Means the torch isn't available - though needed.
 - CameraLockFailed:                Means the camera lock failed to update the configuration.
 - CameraDeviceInputCreationFailed: Means the camera device input creation failed.
 */
public enum BoumBoumError: ErrorType {
    case AlreadyRunning
    case AlreadyStopped
