aboutsummaryrefslogtreecommitdiffstats
path: root/ponymix.cc
Commit message (Collapse)AuthorAgeFilesLines
* drop try/catch wrapping EnableNotificationsDave Reisner2016-06-061-9/+5
| | | | This can't possibly throw anything but a runtime error.
* get rid of using std::* statements in headersDave Reisner2016-06-061-7/+7
|
* Determine default opt_device after arg parsingDave Reisner2015-03-261-1/+5
| | | | Fixes GHI#30.
* fix compile time warnings for unreachable codeDave Reisner2014-12-291-0/+2
|
* more ponies behind fewer pipes.Dave Reisner2014-08-201-1/+2
|
* remove runtime_error exceptions for impossibleDave Reisner2014-07-051-3/+0
| | | | these should be caught at compiletime, not runtime
* Make Range::InRange a boolDave Reisner2014-07-051-1/+1
|
* add is-available verbDave Reisner2014-05-061-3/+11
|
* I gotta have more poniesDave Reisner2014-05-061-0/+3
|
* implement --short option to replace *-short commandsDave Reisner2013-11-201-54/+41
| | | | | | | | This deprecates and removes documentation for list-short, list-cards-short and list-profiles-short, but does not actually remove their functionality (for backwards compat). Using any of these commands will simply call the s/-short// version of the command and set the --short option instead.
* whitespace policeDave Reisner2013-11-051-4/+0
|
* Fix segfault when invalid command issued.Simon Gomizelj2013-11-051-0/+3
| | | | | First check if we actually find an entry inside the action map before working on it further.
* directly construct maps/structs via initializer listDave Reisner2013-08-031-3/+3
|
* favor static_cast over c-style castsDave Reisner2013-08-031-1/+1
|
* implement --max-volume to override baked in defaultsDave Reisner2013-04-301-1/+24
| | | | Solves GH#19.
* add version function, wire it up from the makefileDave Reisner2013-04-101-2/+12
|
* clamp max volume based on max(dev->vol(), 100)Dave Reisner2013-04-101-1/+3
| | | | Fixes GHI#17.
* remove unnecessary indirect varsDave Reisner2013-04-081-13/+5
|
* check for exact match before matching on a prefixDave Reisner2013-03-121-1/+7
|
* allow matching commands on prefixesDave Reisner2013-03-011-8/+30
| | | | | | | | | | Allow for invocations such as "ponymix get-v" or "ponymix -d SB set-d". Bail when the command is ambiguous and print the possible matches. This necessarily means changing the return type of string_to_command to return the whole pair<> out of the action map to allow for useful errors when we do arg checking (as we don't necessarily have the full command name from the user).
* remove unused headerDave Reisner2013-02-281-1/+0
|
* whitespace policeDave Reisner2013-01-271-1/+1
|
* document --notifyDave Reisner2013-01-221-1/+2
|
* add support for libnotify based notifierDave Reisner2013-01-221-1/+13
|
* always use nullptr instead of NULLDave Reisner2013-01-211-1/+1
|
* abstract volume/balance output away from ponymixDave Reisner2013-01-211-35/+13
| | | | | | Add a Notifier virtual base class and a CommandLineNotifier implementation which handles output of volume and balance levels after a change.
* clamp volume betweem 0-100 when using increase/decreaseDave Reisner2013-01-201-16/+10
|
* use convenient methods for increase/decreaseDave Reisner2013-01-061-2/+2
|
* restrict list when using the -t flagDave Reisner2013-01-031-0/+1
|
* 80 columns!Dave Reisner2013-01-031-1/+2
|
* show description in list-shortDave Reisner2013-01-031-2/+3
|
* resolve the card choice as late as possibleDave Reisner2013-01-031-24/+21
| | | | | | | Avoid some needless churn of back and forth between a card name and Card*. We rarely actually need the card unless we're performing an operation on it, so delay it as long as possible. Add a convenience function to resolve the active card or die.
* Cleanup manpage, reintroduce application commands sectionDave Reisner2013-01-031-1/+13
| | | | | | | 99d86934399e9 implies that I lied. move and kill have special behavior since they only ever really operate on sink-inputs and source-outputs. Reflect this in Kill on the frontend, since it previously required the exact device type.
* reorg usage outputDave Reisner2013-01-021-11/+7
|
* remove defunct enumDave Reisner2013-01-021-28/+1
|
* implement -short variations of list verbsDave Reisner2013-01-021-60/+130
|
* A dash of color...Dave Reisner2013-01-021-6/+85
|
* fix abort on set-profile after removing profileDave Reisner2013-01-021-0/+4
| | | | | | ponymix set-profile off ponymix set-profile output:stereo-da+input:stereo-analog <kaboom>
* remove string_to_device; PulseClient can do this nowDave Reisner2013-01-021-21/+6
|
* Derive the card from the targetted deviceDave Reisner2013-01-021-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Unless explicitly specified, target a card based on the selected device. Note that not all devices will be tied to a card. falconindy » put differently, if i have multiple cards, what determines which card is used by pulse for a given app? tanuk » In theory, the logic can be anything (it depends on what policy-implementing modules are loaded). By default, routing is mostly handled by module-stream-restore, which chooses the sink based on the user's previous routing choices. tanuk » If the user hasn't done any routing choices, the fallback logic is to select the current "default sink". tanuk » I don't recommend trying to guess the routing policy. falconindy » i guess my understanding of pulse internals is lacking falconindy » but that's rather enlightening falconindy » is there any way to figure out the connection between a sink and a card? tanuk » Yes... (One moment, I'll look up things.) falconindy » ah. uint32_t card falconindy » appears to be in pa_sink_info falconindy » so that ties the sink to the index of a card? tanuk » Yep. falconindy » awesome, that's good enough for what i need to do tanuk » Not all sinks are part of a card, though, but those that are will have the card index set. falconindy » also good to know
* ponymix: validate arg count before invoking functionDave Reisner2013-01-021-126/+83
| | | | | | | | | | | | | | | A few changes make this fun and easy: - Merge the function array into the string to action lookup and return a Command instead of simply an enum. A Command is the function and the min/max arg count. - Implement an InRange method for the Range class. - Add a Dispatch function to convert the string to Command and validate the arguments. This leaves us in a position where the argc parameter to each method is never used, but maybe some day a command will be added that takes a range of args rather than a fixed number.
* rename class Pulse to PulseClientDave Reisner2013-01-021-24/+24
|
* eschew _unused_ attributeDave Reisner2013-01-011-18/+14
|
* alias sane types to --device flagsDave Reisner2013-01-011-9/+35
|
* maybe fix app mode?Dave Reisner2013-01-011-1/+16
| | | | | | | A sources-output can only be moved to a new source, and a sink-input can only be moved to a new sink. So, derive the target type based on this. Also, reroute sink -> sink-input and source -> source-output to save some keystrokes.
* action, not optionDave Reisner2013-01-011-3/+4
|
* initial commitDave Reisner2013-01-011-0/+520