Skip to content
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

[FEATURE] Ability to Control Multiple Programs At Once #54

Closed
FroobTubeLIVE opened this issue Dec 26, 2022 · 12 comments
Closed

[FEATURE] Ability to Control Multiple Programs At Once #54

FroobTubeLIVE opened this issue Dec 26, 2022 · 12 comments
Labels
enhancement New feature or request feature-request
Milestone

Comments

@FroobTubeLIVE
Copy link

FroobTubeLIVE commented Dec 26, 2022

(sorry if it seems like I'm spamming, I just brushed up on the rules and this seems to be the more "appropriate" place to suggest features/ideas)

Like I said on my last post on the "discussion" page, it would be an absolute power move if you were able to make it so that you can control multiple programs at the same time, instead of having to cycle through "sessions". As well as instead of being relegated to the "multi-instance" option.

Cheers

@FroobTubeLIVE FroobTubeLIVE added feature-request triage Marks issues that were created with an issue template labels Dec 26, 2022
@radj307
Copy link
Owner

radj307 commented Dec 29, 2022

Thanks for the feature request! I'm open to implementing this.

It would be fairly easy to add the ability to specify multiple applications as targets, but it does raise some questions as to how this would work.
I could add the ability to specify multiple target applications in the current (singular) target box by separating each entry with a semicolon ;, or I could add the ability to create a list of target boxes, each one specifying a single target application (similar to how the hotkeys tab works).

Let me know what you think.

@radj307 radj307 added enhancement New feature or request and removed triage Marks issues that were created with an issue template labels Dec 29, 2022
@StormingChaos StormingChaos changed the title Ability to Control Multiple Programs At Once [FEATURE] Ability to Control Multiple Programs At Once Dec 29, 2022
@FroobTubeLIVE
Copy link
Author

FroobTubeLIVE commented Dec 30, 2022

Thanks for the consideration! I was definitely thinking more along the lines of your latter suggestion, where you can specify hotkeys for specific applications.

I've made a mock-up version of the gist what I have in mind; in my pic attached I've merged the "Mixer" and "Hotkeys" tabs :) (feel free to laugh at the ridiculous resizing of things)

radj307 volumecontrol feature add on idea suggestion thing lol

@radj307
Copy link
Owner

radj307 commented Jan 4, 2023

Status update:

As of 0ef5d42 a rudimentary 'settings' interface has been added for hotkeys. It currently only supports strings/numbers (anything that you can enter into a textbox), but this will eventually be expanded to support selecting items from a list (and checkboxes).

Here is a screencap of the hotkeys tab:
image
Settings are unique to each hotkey:
image image
image

Next steps:

  1. Implement a selector control that supports lists
  2. Implement a template selector so the action settings window uses the correct control for each type of setting
  3. Implement some way to track applications when saving/loading (executable path? session GUID?)
  4. Update existing actions so they can take advantage of this
    • Device actions should all support specifying any number of audio devices
    • Session actions should all support specifying any number of audio sessions
  5. Polish the GUI

Note to self: Update the SDK documentation to introduce action developers to the new settings feature.

image

@FroobTubeLIVE
Copy link
Author

So from what little coding I understand (basically none), it looks like you've merged the "target applications" with the hotkeys themselves? Correct me if I'm wrong, which I easily could be lol

@radj307
Copy link
Owner

radj307 commented Jan 7, 2023

It's important to remember that hotkeys and actions are two distinct things in Volume Control, and you can have any number of hotkeys that all use the same action. I designed it like this with the intention of adding customizable actions, but never got around to it until now.

For example, TEST1 & TEST2 both use the Session: Action Setting Test Function action:
image
...but because they have different settings:
image image
...they do different things when triggered:
image

Once this is fully implemented, you'll be able to do something like this:
image
(In the future, it will be easier to tell which hotkeys have customized settings)


(jargon warning):

As of df7670e, I've implemented a working data template selector (note that Setting has a textbox while Toggle Switch has a checkbox):
image
Since these controls are dynamically generated, this is a big step forward.
From here, I need to add a data template for selecting target applications/devices, and update all of the existing actions to take advantage of that. And polish up the UI, of course.

There is also a new SDK attribute HotkeyActionSettingAttribute that allows developers to control the label shown in the UI. It can be used like this:
image

@FroobTubeLIVE
Copy link
Author

Well I'm looking forward to it, my man! (and everyone else involved in the project!)

@radj307
Copy link
Owner

radj307 commented Jan 11, 2023

Working implementation as of 104bf54 / 92556b0:
vc-actionsettings2

Using settings:
image
image image image image

Next steps:

  1. Finish implementing this for other hotkey actions
  2. Polish up the action settings menu

@FroobTubeLIVE
Copy link
Author

Incredibly pogged up, thank you so much for your hard work 🙏 You guys are absolute legends 💚

@radj307
Copy link
Owner

radj307 commented Jan 13, 2023

Thank you! 👍

I have a preview prerelease ready that includes customizable Session-group actions:
https://github.com/radj307/volume-control/releases/tag/6.0.0-rc1
Please try it out and let me know what you think!

The UI remains unpolished, and any suggestions along those lines would be helpful for improving it.

Some notes:

  • Action settings are accessed via ▼ that button
    image
  • When there are no targets specified, the action acts like normal and only affects the currently selected session.
    image
  • When there are targets specified, the action only affects those targets.
    image
  • These 'Targets' are process names, which currently aren't actually displayed anywhere in the volume control UI. This is confusing, and I'm working on fixing it; for now, see the next note.
  • When you click the + button, the currently selected session is automatically filled in if it doesn't already exist in the list.
    These auto-filled names are guaranteed to be accurate, so you don't have to find the process name yourself.

@FroobTubeLIVE
Copy link
Author

Well my first thoughts are that it's pretty unintuitive. When manually entering an application in the "Targets" dialog, it overwrites all other Targets in the "Actions" column no matter what for me. That was, until I clicked the "Add" button, and removed the applications that appeared accordingly.
THEN my second thoughts were "Eureka, it works!!!!!!!"

I still vouch for an idea similar to what I mentioned at the beginning, with the "Mixer" tab being merged with the "Hotkeys" tab, and having an additional dropdown menu on the far right to select the Target Application. This would solve the rudimentary feel of the "Targets" dialog that appears and the issues that I faced with it, and would also be MUCH easier to understand and more attractive imo at a glance.

On that note, maybe "Edit Mode" should just be merged and have the options it shows be fully integrated and visible by default? Whether or not you choose to implement something like the previous suggestion, that's something that just makes sense to me.

Still, it gets the job done and I am ABSOLUTELY stoked because I have a pretty big project of my own, a video I've been trying to put together, and NOW I can FINALLY finish my script! I'm going to talk about a bunch of things and this amazing project of yours is one of them. Long story short I'd love to have you/the team in my video :) Do you have any social media I can contact you on? I don't want to make too much of a scene here haha

@radj307
Copy link
Owner

radj307 commented Jan 15, 2023

Thanks for the feedback!

My reasoning for not integrating the mixer & hotkey tabs is that it would require extensive changes to the existing codebase; something I'd be more comfortable approaching by re-designing the application rather than a simple update.
I wholeheartedly agree that "Edit Mode" has outlived its purpose, and it has been removed as of 164a00a.

On the subject of contact methods, I don't really have any social media to speak of; but you can contact me via email at radj307@gmail.com

@radj307 radj307 added this to the 6.X.X milestone Mar 31, 2023
@radj307
Copy link
Owner

radj307 commented Sep 9, 2023

Closing this as the requested feature has been implemented. Further enhancements to this feature are being tracked in #64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature-request
Projects
None yet
Development

No branches or pull requests

2 participants