summaryrefslogtreecommitdiff
path: root/MenuApplets/Audio
AgeCommit message (Collapse)Author
2020-10-15AudioApplet: Make the slider exponential for finer volume controlMarcin Gasperowicz
The volume slider was linear, which is not ideal for an audio volume control. Perceived volume would not change much within 30-100% range and would change in leaps within 0-30% range where the resolution is not sufficient for fine grained control. The simplest solution is to bring the value into 0.0-1.0 range and square it to obtain an exponential curve. This is a decent approximation of the logarithmic taper used in audio potentiometers.
2020-08-27Base: Move 16x16 common icons to /res/icons/16x16/thankyouverycool
Drops the '16' suffix from filenames. Resizes inconsistent audio-volume icons to intended size.
2020-07-26Base+MenuApplet: Add new controls and icons for AudioAppletthankyouverycool
Adds a classic volume slider to the AudioApplet. Percent text and mute state can now be toggled via checkboxes. Left click opens, right click mutes. Updates existing icons and adds unique icons for muted vs zero volume states.
2020-07-21Base: rename audio volume icons with descriptive namesBenoît Lormeau
2020-07-21AudioApplet: Scrolling the Audio applet will adjust the main mix volumeBenoît Lormeau
The Audio applet now dislays the main mix volume next to the speaker icon. A click on the applet still mutes the global mixer. By scrolling the mouse wheel while on the applet, you can decrease/increase the mixer volume. Different icons will be painted depending on the volume and the mute state. Happy listening :^)
2020-07-04LibGUI: Make GUI::Application a Core::ObjectAndreas Kling
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
2020-06-12MenuApplets: Fix using OwnPtr<> with RefCounted typesSergey Bugaev
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-03Meta: Fix Makefile permissions (not executable)Ben Wiederhake
2020-03-04LibGUI: Use GUI::Window::set_main_widget<WidgetType>() in clientsAndreas Kling
2020-02-23LibGUI: Remove parent parameter to GUI::Widget constructorAndreas Kling
2020-02-14LibGUI: Remove some header dependencies from Widget.hAndreas Kling
2020-02-14LibGfx: Add forward declaration headerAndreas Kling
This patch adds <LibGfx/Forward.h> with forward declarations for Gfx.
2020-02-10Audio.MenuApplet: Add window title.=
2020-02-06LibGUI: Remove leading G from filenamesAndreas Kling
2020-02-06LibAudio: Remove leading A from filenamesAndreas Kling
2020-02-06LibGfx: Rename from LibDraw :^)Andreas Kling
2020-02-06LibDraw: Put all classes in the Gfx namespaceAndreas Kling
I started adding things to a Draw namespace, but it somehow felt really wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename the library to LibGfx. :^)
2020-02-06LibAudio: Put all classes in the Audio namespace and remove leading AAndreas Kling
2020-02-02LibGUI: Put all classes in the GUI namespace and remove the leading GAndreas Kling
This took me a moment. Welcome to the new world of GUI::Widget! :^)
2020-01-21MenuApplets: Use unveil()Andreas Kling
The Clock and Audio applets really only need ("/res", "r") for LibGUI. The CPUGraph applet also needs ("/proc/all", "r") for reading the CPU usage data. Somewhat surprisingly, this also adds ("/etc/passwd", "r") since CProcessStatisticsReader does username lookups.
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2020-01-17Kernel: Add "accept" pledge promise for accepting incoming connectionsAndreas Kling
This patch adds a new "accept" promise that allows you to call accept() on an already listening socket. This lets programs set up a socket for for listening and then dropping "inet" and/or "unix" so that only incoming (and existing) connections are allowed from that point on. No new outgoing connections or listening server sockets can be created. In addition to accept() it also allows getsockopt() with SOL_SOCKET and SO_PEERCRED, which is used to find the PID/UID/GID of the socket peer. This is used by our IPC library when creating shared buffers that should only be accessible to a specific peer process. This allows us to drop "unix" in WindowServer and LookupServer. :^) It also makes the debugging/introspection RPC sockets in CEventLoop based programs work again.
2020-01-12Applications+DevTools+MenuApplets: Drop "unix" pledge when possibleAndreas Kling
Now that the "unix" pledge is no longer required for socket I/O, we can drop it after making the connections we need in a program. In most GUI program cases, once we've connected to the WindowServer by instantiating a GApplication, we no longer need "unix" :^)
2020-01-11MenuApplets: Use pledge()Andreas Kling
2019-12-25Build: support library and generator dependenciesjoshua stein
Instead of directly manipulating LDFLAGS, set LIB_DEPS in each subdirectory Makefile listing the libraries needed for building/linking such as "LIB_DEPS = Core GUI Draw IPC Core". This adds each library as an -L and -l argument in LDFLAGS, but also adds the library.a file as a link dependency on the current $(PROGRAM). This causes the given library to be (re)built before linking the current $(PROGRAM), but will also re-link any binaries depending on that library when it is modified, when running make from the root directory. Also turn generator tools like IPCCompiler into dependencies on the files they generate, so they are built on-demand when a particular directory needs them. This all allows the root Makefile to just list directories and not care about the order, as all of the dependency tracking will figure it out.
2019-12-20Build: clean up build system, use one shared Makefilejoshua stein
Allow everything to be built from the top level directory with just 'make', cleaned with 'make clean', and installed with 'make install'. Also support these in any particular subdirectory. Specifying 'make VERBOSE=1' will print each ld/g++/etc. command as it runs. Kernel and early host tools (IPCCompiler, etc.) are built as object.host.o so that they don't conflict with other things built with the cross-compiler.
2019-12-16Audio.MenuApplet: Remove debug spam about mutingAndreas Kling
2019-12-16MenuApplets: Remove accidentally committed executableAndreas Kling
2019-12-16WindowServer+MenuApplets: Move the "Audio" applet to its own programAndreas Kling
This patch introduces the second MenuApplet: Audio. To make this work, menu applet windows now also receive mouse events. There's still some problem with mute/unmute via clicking not actually working, but the call goes from the applet program over IPC to the AudioServer, where something goes wrong with the state change message. Need to look at that separately. Anyways, it's pretty cool to have more applets running in their own separate processes. :^)