- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 8.8k
frontend: Refactor and update Audio Mixer #12735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
8a0fd00    to
    caa02d3      
    Compare
  
    7e94625    to
    e9f1da9      
    Compare
  
    | Small request for this redesign, if it's feasible and easy enough: can you add one more checkbox to the menu to show sources that are inactive, but present on the previewed screen? Of course it only makes sense in the studio mode, but it would be a great help when you need to adjust levels of a source that will become active with next transition, but without having to find it in the list of all available sources. | 
56c2845    to
    1ce7b5d      
    Compare
  
    895cced    to
    95167b7      
    Compare
  
    95167b7    to
    f65b084      
    Compare
  
    f65b084    to
    a64d278      
    Compare
  
    a64d278    to
    f506e3e      
    Compare
  
    
Description
Moves a bunch of logic out of OBSBasic into a central AudioMixer class, refactors a bunch of code to clean up, and adds a pile of new functionality to the mixer.
Adds a new MenuCheckbox widget for having a checkbox toggle inside a QMenu that does not close the menu after clicking.
The primary addition in this PR is a new audio monitoring toggle button in the mixer itself. Other features have also been added such as the ability to show Hidden sources, Inactive sources, adjust how they get sorted, and an easier way to toggle the layout.
PR also depends on #12734 for icon coloring.
Motivation and Context
With the fixes made as part of #12175, it is now far more reasonable for us to expose audio monitoring more directly to users. It is often very desirable to be able to toggle on monitoring for things like Media Sources or some Video Devices such as capture cards.
I elected to also clean up the Audio Mixer code a bunch while working on this feature addition, and add some other additional features and UI adjustments.
There is more that I want to do and clean up still but I'm trying to keep this PR at least moderately reasonable.
How Has This Been Tested?
Tested muting and monitoring on multiple audio sources both via the Mixer dock, the Advanced Audio Properties window, as well as a separate Audio Mixer window utilizing the same widget, to test that things are properly encapsulated and not kept in any local widget state.
Types of changes
Checklist: