History log of /external/adhd/cras/src/server/cras_server.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
94f07550848b7e387bf063949c939866acc0225c 15-Nov-2016 Cheng-Yi Chiang <cychiang@chromium.org> CRAS: device_monitor - Add device monitor to handle device request

Use device monitor to handle message from audio thread.
When audio thread finds a device in bad state, it can send a message to
main thread to reset a device properly from iodev_list.

BUG=chromium:662786
TEST=make check
TEST=With hack patch of severe underrun, check device reset upon severe
underrun. Also check audio thread log.

Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
Change-Id: Iac6d3f688f40cfe434002064407363151857ec6b
Reviewed-on: https://chromium-review.googlesource.com/411743
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
da4ceebf26e54f972c647f1153020801c38b3803 25-Oct-2016 Yuji Sasaki <sasakiy@google.com> CRAS: Add --disable_profile option to control SDP profile

Google WiFi (Gale) is not capable to handle SCO audio stream
due to HCI-UART limitation, so HSP/HFP had to be disabled.
Command line option --disable_profile is added to cras
executive, and option is given in cras.sh based on
mosys platform name.

BUG=chrome-os-partner:58573
TEST=Run on gale and sdptool browse, verify no HSP/HFP in SDP
Signed-off-by: Yuji Sasaki <sasakiy@google.com>

Change-Id: Icc2bc87ffaf6847608cd2793894c498f90fd9e46
Reviewed-on: https://chromium-review.googlesource.com/403111
Commit-Ready: Yuji Sasaki <sasakiy@chromium.org>
Tested-by: Yuji Sasaki <sasakiy@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Yuji Sasaki <sasakiy@chromium.org>
/external/adhd/cras/src/server/cras_server.c
3cc4ea57a895c8ad308d4564ebfeebf64d3c2552 11-Oct-2016 Hsin-Yu Chao <hychao@chromium.org> CRAS: observer - Move suspend signal to observer

BUG=None
TEST=Manual test playback audio across suspend/resume

Change-Id: Id097287a5fbe99c2e60ab2865a673ad29dae7e44
Reviewed-on: https://chromium-review.googlesource.com/398690
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
/external/adhd/cras/src/server/cras_server.c
dc115f02e335a6d197b6ef4bf0516e4866a7fc6e 26-Mar-2016 Dylan Reid <dgreid@chromium.org> CRAS: Server side common observer code.

Add a central mechanism within the server to store observers of
state changes. Implement use of those methods in various places
within CRAS.

BUG=None
TEST=Add unit tests to cover the new observation mechanism.

Change-Id: I28920a750f7d5eaf9d678663aba08ba90e4bb845
Reviewed-on: https://chromium-review.googlesource.com/348654
Commit-Ready: John Muir <muirj@google.com>
Tested-by: John Muir <muirj@google.com>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
5eb007a7979e768082fdb369ec9bb72dd6252e67 01-Jun-2016 John Muir <muirj@google.com> CRAS: Fix --disable-DBUS build.

BUG=None
TEST=Build passes with or without --disable-DBUS.

Change-Id: Ie82857d7b76cd8adfa189bedd0d6baab66207c71
Reviewed-on: https://chromium-review.googlesource.com/348740
Commit-Ready: John Muir <muirj@google.com>
Tested-by: John Muir <muirj@google.com>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
b75c3140f279d4cb038c64e9034f66dca45d302f 18-Jan-2016 Hsin-Yu Chao <hychao@chromium.org> CRAS: bt_player - Create bt player in CRAS

BlueZ provides media player dbus API for applications to interact
with bluetooth headsets/speakers through AVRCP. This change
introduces cras_bt_player module using this player API. With the
presence of this player object, bluetoothd will start reporting the
volume property of cras_bt_transport, which is what we care about.
The detail of player capabilities and media events handling will
not affect normal usage at all, and future commits will use them
for AVRCP qualification.

BUG=chromium:605035
TEST=Check debug log to verify CRAS player is registered.

Change-Id: I78356fc8e290b64d6d45c5c0a08d70899e090662
Reviewed-on: https://chromium-review.googlesource.com/340861
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
530fa383ceea354e9d324071bfd146bae2b3484a 28-Apr-2016 John Muir <muirj@google.com> CRAS: Return better error codes for send/recv client msg.

For certain codes may want to do something different.

BUG=None
TEST=Test client server connections and disconnect.

Change-Id: Id91bb3b6fd9b10038a0b1d79437ff3adbf435838
Reviewed-on: https://chromium-review.googlesource.com/341317
Commit-Ready: John Muir <muirj@google.com>
Tested-by: John Muir <muirj@google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
/external/adhd/cras/src/server/cras_server.c
54d7d7c2c921c0e264b1b22d4f5ffe642e3d4f9d 01-Apr-2016 John Muir <muirj@google.com> CRAS: Allow compile without DBUS.

This is required for building on Brillo where DBUS doesn't
exist. When DBUS is not available, use a new UTF8 validation
function.

BUG=None
TEST=Ran all unit tests with DBUS enabled.
Build with DBUS enabled or disabled.
Execution on Brillo with DBUS disabled.
Added unit test for new UTF8 validation function.

Change-Id: I284a41aea258f5d8ffb67edc76ec318363078b31
Reviewed-on: https://chromium-review.googlesource.com/339403
Commit-Ready: John Muir <muirj@google.com>
Tested-by: John Muir <muirj@google.com>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
/external/adhd/cras/src/server/cras_server.c
cc7f32c4ce2599d186453eda561c99b0ac241555 13-Oct-2015 Liam Girdwood <liam.r.girdwood@linux.intel.com> CRAS: mixer - separate out mixer operations for SIMD support

Separate out the mixer operations to a new file. This new file will export
SIMD optimised functions to the existing mixer public API for each SIMD
level compiled.

Build SIMD mixer operations and link to mixer.

Builds the mixer_ops.c once for each SIMD level and exports optimised
function via a uniquely named operations structure.

Check CPU SIMD capabilities during server init.

Initialise the mixer based on CPU capabilities.

Change-Id: I68b1801c0503109fa17bdfea57e7c12ac09176e3
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Reviewed-on: https://chromium-review.googlesource.com/312856
Commit-Ready: Dylan Reid <dgreid@chromium.org>
Tested-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
c516d3829b771383670149ee0f19b6404ced8f5c 13-Nov-2015 Dylan Reid <dgreid@chromium.org> CRAS: rclient - Add fd sending interface

Expand the function used to send messages to the client to include an
optional array of file descriptors.

Change-Id: I95808f106edbf62ba904990fb105d7f5956465cf
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/312770
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
6be509d0ea1ffc899babcd21336e2bb58ad19982 13-Nov-2015 Dylan Reid <dgreid@chromium.org> CRAS: Allow sending multiple fds

Sending multiple fds will allow an fd to be sent for input and output
shm. This will allow that to be passed instead of the shm id, which
won't work if spanning multiple IPC namespaces.

Change-Id: I3946099b1da37ffd417d449c75e5b520389df253
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/312513
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
ca8809321f7e18db9a40f359724a0643ed842f2a 30-Jul-2015 Hsin-Yu Chao <hychao@chromium.org> CRAS: server_metrics - Log longest fetch delay

Each output stream is fetched regularly base on the stream's
callback threshold. If a client fails to respond to a fetch
request in time, the next fetch request will be delayed.

This change adds to cras_server_metrics the ability to log
various types of information to UMA. And use it in audio thread
to track the longest case of stream's fetch delay.

BUG=chromium:335774
TEST=cras_test_client --playback_file and use 'p' to suspend
the client and the resume it, repeat this many times then
visit chrome://histogram to verify the Cras.StreamTimeoutMilliSeconds
histogram changed accordingly.

Change-Id: I81862cb2cbd2e62f78f1dcef13dafc30c34fee65
Reviewed-on: https://chromium-review.googlesource.com/289429
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
a8f04c73cb0e57efb829d15f3b7d29bf598f9b7a 30-Jul-2015 Hsin-Yu Chao <hychao@chromium.org> CRAS: main_message - Handle messages in main thread

Some codes are duplicated when handling various types of messages
in main thread, for example a2dp, bt_device and also UMA in near
future. Create a cras_main_message to provide a unified interface
to send message and register handlers in main thread.

BUG=chromium:335774
TEST=None

Change-Id: Idfe212d553c2ab39c99937b73555b1cf79e4e718
Reviewed-on: https://chromium-review.googlesource.com/289127
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
6bd7a9a717617f4ece4f966e2a88bebc5523ae40 19-Aug-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS: hfp - Enable hfp/hsp

BUG=chromium:432432
TEST=Connect bluetooth headset, verify A2DP is used when
there's only audio playback and HFP/HSP is used whenever
input stream is added.

Change-Id: Ib4cd0ca429aa6371f5edb3c254b4985a9789d50f
Reviewed-on: https://chromium-review.googlesource.com/231874
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
e02c0a29cd919867c024ae353010d537db7efa51 25-Nov-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS: bt_io - API to switch between A2DP and HFP/HSP

At events that a bluetooth device opens or closes, we might
want to switch to a different profile. When switches the profile
of a bt device, it is required to reinitialize the bt_ios.
This change adds the function to temporarily close the active
bt_ios and activate them later so they can switch to the preferred
profile.

BUG=chromium:432434
TEST=unittest

Change-Id: I7ac2feab38b1dd4eb4a4def0bbc2323eb5842bbd
Reviewed-on: https://chromium-review.googlesource.com/231870
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
7e28da20b5b9daa7952b21bc38481a6bddc4ff7d 04-Oct-2014 Dylan Reid <dgreid@chromium.org> CRAS: Switch server from select to poll.

Similar to the client side, switch from select to poll so that file
descriptors greater than FD_SETSIZE are handled correctly.

Change-Id: I3e89bcb2a01dcc857207971449f46d793b05e123
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/221542
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
276e42c304e7103d6c3cc7c6746b2fbaaf851f07 30-May-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS: HSP - Register Headset Profile for AG role

Register HSP AG profile, which doesn't require any initialization
procedure for SLC at new device connection.

BUG=chromium:258183
TEST=Apply whole patch set for HSP, run HSP_AG_IAC qualification
test.

Change-Id: I65914102b8521097161b629fb201762ae70f7ad1
Reviewed-on: https://chromium-review.googlesource.com/209126
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
2c1e4a94b93ea1ca23ae1ab177a80ad769a7c18a 17-Apr-2014 Dylan Reid <dgreid@chromium.org> CRAS: Use MIN and MAX from glibc instead of local macros.

Replace all instances of min and max with the version from glibc.
This prevents name collision with std::min and std::max when chrome
uses libcras.

BUG=chromium:364382
TEST=still builds and runs.

Change-Id: Iafc200fb0de82bbfbe105551250207392cb2f42a
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/195451
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
e63d669029edb7a97ad7089209a8d28f0a358818 14-Apr-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS: telephony: Add telephony api for HFP qualification test

A set of HFP qualification tests are telephony related but
Chrome OS doesn't have a way to do phone call. In order to pass
those tests, add a few dbus methods below to trigger phone call
events and use them in HFP qualification test.

org.chromium.cras.Telephony.IncomingCall for the event that AG
receives a incoming call.

org.chromium.cras.Telephony.AnswerCall for the event that user
answers the call from AG.

org.chromium.cras.Telephony.TerminateCall for the event that user
terminates the call from AG.

BUG=chromium:211636
TEST=Run CRAS with hfp enabled flag.
"dbus-send --system --type=method_call --print-reply
--dest=org.chromium.cras /org/chromium/cras/telephony
org.chromium.cras.Telephony.IncomingCall" and verify
correct AT commands are sent.

Run bluetooth PTS software, execute IncomingCall, TerminateCall,
and AnswerCall methods on DUT when asked to do so, together
with 'cras_test_client --capture_file /usr/local/test'
to establish audio connection. Verify that related test cases
can pass.

Change-Id: I77a9ee64e74f27c5d2ab7bc9a0c68550b0681e44
Reviewed-on: https://chromium-review.googlesource.com/194509
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
14b55b9f73523b7a6efcf5c543e74f1086166406 11-Apr-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS server: Ability to send message from audio thread to main

Expose cras_server_init() function to allow client callbacks be
registered before server runs. And in audio thread creation,
add a new pipe and register callback to process messages sent
from audio thread to main thread.

BUG=chromium:327817
TEST=emerge-link adhd; cros deploy adhd; Nothing breaks.

Change-Id: I570133ce42487fe9e2d7b140c87bcc4b3f1fee11
Reviewed-on: https://chromium-review.googlesource.com/194285
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
b60ba603af53b611ec4c68b7d91c3b94632e8bf6 12-Mar-2014 Hsin-Yu Chao <hychao@chromium.org> CRAS: HFP/HSP: add flag to enable hfp/hsp

Add a flag to start CRAS with HFP/HSP enabled.
Together with an upstart change. This will allow
manually configure CRAS to test HFP/HSP feature before
launch this feature.

BUG=chromium:211636
TEST=Start cras with '--enable_hfp', connect bluetooth
headset and verify HFP iodev is created.

Change-Id: I6f80a571bbb1d1c6058452c1f0f44b60cdc1fcaa
Reviewed-on: https://chromium-review.googlesource.com/189652
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
ea5981fe207266990ec8a119ed13c139b36c1f1d 02-Oct-2013 Chih-Chung Chang <chihchung@chromium.org> CRAS: Remove DL_FOREACH_SAFE because DL_FOREACH is also safe now.

BUG=none
TEST=make check

Change-Id: Iab32c7afb9c7a97fbc2f246b6c3e6130afd628f7
Reviewed-on: https://chromium-review.googlesource.com/171704
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Commit-Queue: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
8ca94b0cd25ec720aa65e25f4070a3c2e821e808 23-Aug-2013 Hsin-Yu Chao <hychao@chromium.org> CRAS BT: Remove HFP_AG profile

Don't register HFP profile for now.
Will add it back when we're ready for it.

BUG=chromium:232315
TEST=Unittest

Change-Id: If66b4fe16da58e2cd2c5dab15cc3c1f0ba3b1fc5
Reviewed-on: https://gerrit.chromium.org/gerrit/66798
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
85f0829cb76592bafc06aa8352dcd65b41072337 16-May-2013 Hsin-Yu Chao <hychao@chromium.org> CRAS BT: Add HFP AG profile

Creates the profile instance for HFP AG (Headset gateway).
This change registers callbacks to bluez for bluetooth
devices supporrts HFP_AG_UUID. More implementation will
be add later.

BUG=chromium:232315
TEST="emerge-link adhd". Add syslog to each profile callback,
connect and disconnect bluetooth headset to link to verify
each call is triggered.

Change-Id: Ie7528d55a1de32fcfa4092fcf2a201cfd9dc1724
Reviewed-on: https://gerrit.chromium.org/gerrit/59206
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
/external/adhd/cras/src/server/cras_server.c
7346213c701d9a6370991e18276335fc10f5acb7 15-May-2013 Scott James Remnant <keybuk@chromium.org> CRAS dbus: Initialize thread support

BUG=chromium:238944
TEST=disconnect/reconnect speaker and verify cras does not crash

Change-Id: I97dec0ce496a33cf16c727eca1fcc7e83855fb93
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/51307
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
f9a4c19abc0d4fd16980d0d1681e79720a9054df 01-Apr-2013 Chih-Chung Chang <chihchung@chromium.org> CRAS: Run external metrics_client command instead of linking metrics library.

This reduces the memory usage of cras.

BUG=none
TEST=start cras with and without codec driver loaded
Change-Id: I315a365245ab0dee0880a7afee7cbff74cfad9ec
Reviewed-on: https://gerrit.chromium.org/gerrit/47005
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
29d9262a56667fea8d937d6fd088aff7e4213aa6 01-Mar-2013 Scott James Remnant <keybuk@chromium.org> CRAS: bluetooth - enable A2DP Source endpoint

Hook up an A2DP Source endpoint using the A2DP iodev.

BUG=chromium:204431
TEST=connect bluetooth speakers and play YouTube video

Change-Id: I2450c4a1023d462f045c4badb51b46f484d5fe14
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/45113
/external/adhd/cras/src/server/cras_server.c
a67190546dcf8a283d9474c5cab24d7a152bf7f8 01-Mar-2013 Scott James Remnant <keybuk@chromium.org> CRAS: bluetooth - rewrite for BlueZ 5.2

BlueZ 5.2 brings us support for Bluetooth 4.0 and LE, but at the cost
of a different D-Bus API. It was easier to write fresh clean code
for the new API and remove the old code than incrementally refactor.

BUG=204431
TEST=build and run cras, verify logs

Change-Id: I3147aa7d59535b743425c7d48737f8c70614e5cd
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/45103
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
c3211501e365373b72e9ca423e837f07bc1f6ac5 10-Mar-2013 Chih-Chung Chang <chihchung@chromium.org> CRAS: Add cras_alert facility.

This is a similar to the state_callback_list used in
cras_system_state. The differences are:

(1) We do not call the callbacks immediately. We mark an alert as
"pending" when we know the callbacks should be called, but only actually
do so at the end of the event loop. This collapses multiple callbacks into
one (for example, if there are multiple nodes added at the same time,
we will only fire "nodes changed" signal once)

(2) We added a "prepare" function which will be called before calling the
callbacks. This gives each alert a chance to update the system to a
consistent state before signalling the clients.

We will move cras_system_state to use cras_alert in the next change.

BUG=chromium-os:33666
TEST=make check
Change-Id: I2c98430754f7395dfa96f82cde82dfb5fac65f00
Reviewed-on: https://gerrit.chromium.org/gerrit/45188
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
04cf46dbfbbf557847b462e4bb0e2b42402bd3cb 08-Mar-2013 Chih-Chung Chang <chihchung@chromium.org> CRAS: Rename the function from update_clients() to update_device_list().

The new name better reflects what the function does.

BUG=none
TEST=make check
Change-Id: I08d557af40b18cf63b1966709a515feffc8777e4
Reviewed-on: https://gerrit.chromium.org/gerrit/45016
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
0ab64e0807b5cdc1ba1ddc81e02377828bc14d4e 06-Mar-2013 Dylan Reid <dgreid@chromium.org> CRAS: Add UMA logging for no codecs found.

Add the ability to log events to UMA. This is behind a config flag to
preserve building on desktop linuxes where the chromeos metrics
library isn't present. The ebuild for chromeos will be changed to
pass --enable-chromeos-metrics.

BUG=chromium-os:39634
TEST=start cras with and without codec driver loaded

Change-Id: I6c394bcef7ad411a3057ae3ae93a7adeb575a022
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44744
/external/adhd/cras/src/server/cras_server.c
47e51ca64ed645bd0bc7e960c8ae19fb96805d34 06-Mar-2013 Dylan Reid <dgreid@chromium.org> CRAS: Check that there is a real output device.

Check if there is an output device in the system. Do this 5 seconds
after the server is started. The five second delay is to allow for
udev enumeration to complete. This log will be converted to an UMA
stat so that codec failures can be monitored.

BUG=none
TEST=start cras check that no message is present, remove codec driver
module from kernel, restart cras and see message in /var/log/messages.

Change-Id: I92d30159e01446248c85adb3ce7d6e038c134b85
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44743
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
3a70a03c24ccc5c3b8db82f8b758bc699566197d 01-Mar-2013 Dylan Reid <dgreid@chromium.org> CRAS: DBus - Enable some control methods over DBus.

Start to handle some DBus messages. Add support for setting volume
and mute for both input and output.

BUG=chromium-os:39287
TEST=Set each newly exported method with dbus-send:
dbus-send --system --type=method_call --dest=org.chromium.cras /org/chromium/cras org.chromium.cras.SetSystemCaptureGain int32:-1100
dbus-send --system --type=method_call --dest=org.chromium.cras /org/chromium/cras org.chromium.cras.SetSystemCaptureMute boolean:true
dbus-send --system --type=method_call --dest=org.chromium.cras /org/chromium/cras org.chromium.cras.SetSystemMute boolean:true
dbus-send --system --type=method_call --dest=org.chromium.cras /org/chromium/cras org.chromium.cras.SetSystemVolume byte:15
Verify that each worked with cras_test_client --dump_server_info

Change-Id: I587bb503528ab2b6cdd3800dbb415cedfbd91114
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44351
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
b3d3be29575bcc65ad8e7f888fab011c301c0633 07-Jan-2013 Chih-Chung Chang <chihchung@chromium.org> Allow server to receive a file descriptor with a message.

Change-Id: I0665f9e1a78d388779edd654ae954487ba911c40
Reviewed-on: https://gerrit.chromium.org/gerrit/40520
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
59af98f7b71ca243a855c0996a6f7f8cae5662c4 17-Dec-2012 Chih-Chung Chang <chihchung@chromium.org> Use SOCK_SEQPACKET instead SOCK_STREAM for server sockets.

So we can read a message in one system call (should be faster), and we
will use sendmsg to pass file descriptors to the server in the future.

TEST=play audio using cras
Change-Id: I52991c7b1b80f2070eb7ad36be8cce73a98ade7a
Reviewed-on: https://gerrit.chromium.org/gerrit/40193
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Tested-by: Chih-Chung Chang <chihchung@chromium.org>
/external/adhd/cras/src/server/cras_server.c
c86591bb068ebc7817f24eeb1a40194069c9362d 06-Dec-2012 Scott James Remnant <keybuk@chromium.org> CRAS: delay callback deletion until end of main loop

A callback function may remove multiple callback structures from the
linked list, including the next one in turn. To avoid use-after-free
bugs only flag a callback as deleted and cleanup later.

BUG=none
TEST=compiled, run and unit tests

Change-Id: I29b697206936f06e49f8e4e21fa5a3cb83148b1f
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/39315
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
c1c7df0d0839d2c26cafb4a2c70990f2d544d52e 03-Dec-2012 Dylan Reid <dgreid@chromium.org> CRAS: server - ignore NULL dbus

In case dbus isn't running, don't call the functions that depend on
it. This won't happen on ChromsOS, but can if running on a generic
Linux build/chroot.

BUG=none
TEST=build and run in chroot without dbus.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Change-Id: I1305a0d57f29aeb5152d4a19b11ab70eb0a7f68c
Reviewed-on: https://gerrit.chromium.org/gerrit/39093
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
/external/adhd/cras/src/server/cras_server.c
1e81e5ae7558e1c27f30187d3d40ba425e065f59 16-Oct-2012 Scott James Remnant <keybuk@chromium.org> CRAS: bluetooth - track default adapter

Communicate with the BlueZ bluetooth daemon via D-Bus to obtain the
object path of the system default bluetooth adapter. Use signals from
BlueZ to track changes in the default as adapters are removed and
inserted. Also track signals from the D-Bus daemon itself as the
bluetooth daemon is stopped and started.

BUG=chromium-os:21369
TEST=src/bluetooth_unittest

Change-Id: I0a90335a9062da77fe008f76e41916821ae7761a
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35710
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
709cabc104873141cbc73fc81a0e09cbc2c56407 18-Oct-2012 Dylan Reid <dgreid@chromium.org> CRAS: system - run timer manager.

Initialize the timer manager in system state and export a function to
fetch it. From the main server loop, wake up when timers are about to
fire and call the callbacks.

BUG=chromium-os:35285
TEST=make check, and play audio through the test client.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Change-Id: I410435c1d351f34345107277602b61cc26803ad3
Reviewed-on: https://gerrit.chromium.org/gerrit/36182
/external/adhd/cras/src/server/cras_server.c
a241e7f733dc1d7668f9d1d5c3b04eefeff6b95c 15-Oct-2012 Scott James Remnant <keybuk@chromium.org> CRAS: dbus - cleanup and re-enable

Remove the use of assert() from the D-Bus code, replace with syslog()
in the non-recoverable cases.

Call cras_system_rm_select_fd() before closing a timeout fd to remove
it from the main loop, otherwise repeated timeout additions fail.

Dispatch pending D-Bus messages each time through the main loop.

BUG=chromium-os:21369
TEST=emerge-$BOARD cras & reboot, check for respawn

Change-Id: Ia49d3dbd35b1376011ad6bb2d76d3ebf5eb8ad98
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35611
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
0160b2c639c03fd191314a0866c4630fedc99576 11-Oct-2012 Dylan Reid <dgreid@chromium.org> CRAS: don't start dbus

It is asserting when it starts and isn't used yet.

BUG=chromium-os:35180
TEST=run cras, check it doesn't assert.

Change-Id: Ie178a82e8db2e50f9cbff226a98db329122dff06
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35199
/external/adhd/cras/src/server/cras_server.c
3513ecffad3d0680dd3278cf4535b0906cf36228 10-Oct-2012 Scott James Remnant <keybuk@chromium.org> CRAS: dbus - connect to system bus

To support Bluetooth Audio we need a connection to the D-Bus System Bus
so that we can communicate with BlueZ; both to obtain the set of known
audio devices, and to create transports for media to them.

BUG=chromium-os:21369
TEST=D-Bus ListNames & GetConnectionUnixProcessID

Change-Id: I9e421bf40cc33332e22456a5cd638edaf362c358
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/35063
Reviewed-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
1b20f197b63741dd848b4f60c8ac59a55eceac80 29-Sep-2012 Dylan Reid <dgreid@chromium.org> CRAS: Clean up syslog.

This verbose level of debugging is no longer needed. Set many error
prints to the appropriate level, and only log errors to syslog.

BUG=34884
TEST=run and check syslog to be sure there isn't verbose logging.
Signed-off-by: Dylan Reid <dgreid@chromium.org>

Change-Id: Ife0a22e5306fd7c73a6547b435b9653df1eae030
Reviewed-on: https://gerrit.chromium.org/gerrit/34318
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Tested-by: Dylan Reid <dgreid@chromium.org>
Commit-Ready: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
6da3ff813c598fd2e67f0973723dbb5f4d993905 10-Aug-2012 Dylan Reid <dgreid@chromium.org> CRAS: server - Update client list in shm region.

Instead of sending a message to the client every time the client list
changes, just update the shm region. This will break client list
reporting until a subsequent change to the client checks the new place.

BUG=chromium-os:32347
TEST=cras_test_client --dump_server_info -> no clients in list.
Signed-off-by: Dylan Reid <dgreid@chromium.org>

Change-Id: I92f2c063250f8ccaa8d6dcfa23dce913ba04d55e
Reviewed-on: https://gerrit.chromium.org/gerrit/29862
Reviewed-by: Chih-Chung Chang <chihchung@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Ready: Dylan Reid <dgreid@chromium.org>
Tested-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
24650d5dad079adaa12f0de67aaa9b16a8427e34 05-Jun-2012 Taylor Hutt <thutt@chromium.org> ADHD: Add udev device monitoring to cras

Adds the disocvery of device insertion & removal via 'udev' to cras.

Also disables the sending of messages to cras, from gavd, about device
insertion & removal.

TEST=On kaen, verify that sound multiplexes through internal speakers & USB headphones.
BUG=none
Change-Id: I437a6ab1927e0a1452951ca8b568a17af9b94c7b
Signed-off-by: Taylor Hutt <thutt@chromium.org>
/external/adhd/cras/src/server/cras_server.c
2d39f3f8f9b727cbc51a78a61ed7e60ae8fd0d69 18-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: server - Handle client-registered fds in main loop.

Clients can register a file descriptor, callback, and callback data
combination to be called from the main loop when fd becomes readable.
This feature will allow iodevs to be notified about changes to file
descriptors without having to spawn a thread to block on them.

Change-Id: I62b83bc62e546679adfb197487b6bf1bc5324ca1
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
39f934dc230415c6c6262d8edc6a9b5e28807754 20-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: Export a list of attached clients.

To aid in bug reports, etc have the server export a list of attached
clients and add a client-side API to retrieve the list. This will be
valuable to enable checking who is attached to the CRAS server.

BUG=none
TEST=updated test client to print out list of clients.

Change-Id: I64ff1c77a1563df267bfea3c364fc7321a87b092
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
d58198b3a55eb7fa4475c3d1f599a019019fef2a 19-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: server - Store pid, gid, and uid for clients.

The pid, gid and uid will be added to log messages so that clients can
be easily tracked back to their owners.

Change-Id: I4c58bf496253f9821396c0277be312bed7dd412c
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
16b9f01fe27560e67697ce25913850e3c123fd33 13-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: Make server side socket writes non-blocking.

This will avoid problems where a client stops reading from a socket,
causing writes on the server to block. This is a preventative fix due
to Chrome having a similar problem in SyncSocket.

BUG=none
TEST=updated unit test, plus manually build a run CRAS.

Change-Id: I25bab9b17e40fc642d08c8d9e6e34afb3bdc380e
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
af5070d69baad2c16a000e349b8bb25febc9477f 03-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: iodev_list - push list to clients when it changes.

The clients will now be notified when the list of available iodevs
changes. Also send the list from cras_server when a new client
attaches.

BUG=none
TEST=updated unittest

Change-Id: I96727f53777ef76c32909b57f4a532e55710a7d2
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
22e703de555b3c65172d4452d2c8bf9fc4ee95d6 03-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: Add ability to send message to all clients.

Add send_message_to_all_clients function to cras_server. This will
take the given message and send it to each attached client.

BUG=none
TEST=none, code not used yet.

Change-Id: I0ed0d1240bb90630f3aeafc1d60483e9fd6b4131
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c
7d074ddd850d58ea3650796f10e7f3c005cf4a9b 03-Apr-2012 Dylan Reid <dgreid@chromium.org> CRAS: Factor out server stuff from main.

Just move code, no functional change.

BUG=none.
TEST=none.

Change-Id: I5f6a22b09842caaaa60469b93be4f3cf75a1da0c
Signed-off-by: Dylan Reid <dgreid@chromium.org>
/external/adhd/cras/src/server/cras_server.c