# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

cros_pre_src_prepare_brltty_config() {
	epatch "${FILESDIR}"/${P}-tty0-openflags.patch
	epatch "${FILESDIR}/"${P}-supress-messages.patch
	epatch "${FILESDIR}"/${P}-udev-run-script.patch
	epatch "${FILESDIR}"/${P}-r1-0001-The-autorelease-alarm-wasn-t-correctly-cancelled-on-.patch
	epatch "${FILESDIR}"/${P}-r1-0002-Hotkey-handling-shouldn-t-interfere-with-non-hotkey-.patch
	epatch "${FILESDIR}"/${P}-r1-0003-Add-a-so-far-manually-settable-flag-for-retaining-th.patch
	epatch "${FILESDIR}"/${P}-r1-0004-Fixes-to-chord-key-retention.-dm.patch
	epatch "${FILESDIR}"/${P}-r1-0005-Retain-the-chord-key-when-converting-from-a-brltty-t.patch
	epatch "${FILESDIR}"/${P}-r1-0006-A-bit-of-retain-chords-code-cleanup.-dm.patch
	epatch "${FILESDIR}"/${P}-r1-0007-Customize-retain-dots-for-Chrome-OS-and-ChromeVox.patch
	epatch "${FILESDIR}"/${P}-orbit.patch
	epatch "${FILESDIR}"/${P}-dot.patch
}

cros_post_src_prepare_brltty_config() {
	# Upstream has a patch that touches the autogenerated
	# part of the udev rules file.  Run this script after
	# that patch is applied so it applies cleanly.
	# updusbdevs rewrites the autogenerated part.  The -nogeneric
	# flag accomplishes what the upstream patch does.
	# Also, some of the patches in cros_pre_src_prepare_brltty_config
	# modify the usb device definitions in the C source, and for those
	# to be picked up by updusbdevs, those patches need to be applied
	# before the below line.
	./updusbdevs -nogeneric udev:Autostart/Udev/udev.rules || die
}

cros_post_src_install_brltty_config() {
	insinto /etc
	doins "${FILESDIR}"/brltty.conf
	exeinto $(udev_get_udevdir)
	doexe "${FILESDIR}"/brltty
}
