/*=====================================================================
     | BUFFER CONFIGURATION
     | ====================================================================*/
    static void usbConfigBuffer()
    {
        uint pretrig_kb = 0;
        uint capture_kb = 0;

        // Configure Beagle 5000 for capturing USB 3.0, and waiting for a
        // trigger event.
        if (BeagleApi.bg_usb5000_configure(
                beagle,
                BeagleApi.BG_USB5000_CAPTURE_USB3,
                BeagleUsb5000TriggerMode.BG_USB5000_TRIGGER_MODE_EVENT) !=
            (int)BeagleStatus.BG_OK)
        {
            Console.Write(
                "error: could not configure Beagle 5000 with desired mode\n");
            Environment.Exit(1);
        }

        // Configure the onboard USB 3.0 buffer for 1MB of pretrigger and
        // 3MB of posttrigger.
        if (BeagleApi.bg_usb5000_usb3_capture_config(beagle, 1024, 4096) < 0)
        {
            Console.Write("error: configuring capture buffer failed!\n");
            Environment.Exit(1);
        }

        BeagleApi.bg_usb5000_usb3_capture_config_query(beagle,
                                                       ref pretrig_kb,
                                                       ref capture_kb);

        Console.Write("Configured capture buffer: " +
                      "pretrig = {0:d}KB total capture = {1:d}KB\n\n",
                      pretrig_kb, capture_kb);
    }