espr3ss0 Posted June 25, 2020 Share Posted June 25, 2020 Wanting to know how to use the SDK (iCue 3..) and if / how I can change Profiles from the Command Line or something similar ? Link to comment Share on other sites More sharing options...
hastegag Posted June 26, 2020 Share Posted June 26, 2020 you can use the SDK and the unofficial corsair iCUE Game integration in the sticky at the top of this sub forum by MaccaCool available here: https://forum.corsair.com/v3/showthread.php?t=189370 Additionally, I believe user Legion2 used his implementation and ran it through a command line wrapper, which I think is here: https://github.com/Legion2/open-cue-cli I have not tested the latter, but that seems pretty cool Link to comment Share on other sites More sharing options...
espr3ss0 Posted June 27, 2020 Author Share Posted June 27, 2020 (edited) Thanks for the info will have a look. Just wondering if there may be a better way for what I want to achieve, which is using Alexa to control Profile switching ? I've seen it done but no idea where to start. Edited June 27, 2020 by espr3ss0 Link to comment Share on other sites More sharing options...
hastegag Posted June 27, 2020 Share Posted June 27, 2020 using autohotkey or similar automation software you can open icue, then just click the profile, but that can be somewhat time consuming and not as reliable as we might like. The MaccaCool unofficial game state integration will totally do what you need, but when you switch profiles it will only handle the lighting. You need to read up on the readme regarding setting priorities.cfg to list the cueprofiles in the subfolder you make under C:\Program Files (x86)\Corsair\CORSAIR iCUE Software\GameSdkEffects\ (make a new one in there and copy in one of the other folder's .cfg files). Then save some profiles in the new directory by exporting them from icue. In all likelihood you may have security settings preventing you from doing that in the app, so you may need to save them to your desktop, then copy them into the folder you made under GameSdkEffects. Also, the exported cueprofiles, IIRC need to have the <name>profileName</name> tag to match both the file name and how they appear in priorities.cfg, and I think you need to edit the exported cuefile to confirm, but again read through the docs on his github and let us know how you make out. Once you get all that sorted, telling an alexa to do these steps is basically just visiting some web addresses. I know nothing of alexa but I think they use IFFT or some other pretty easy implementation, so if you are familiar with that, it should be pretty easy to send the web requests to your local machine if it is logged in and tell it to switch profiles Link to comment Share on other sites More sharing options...
espr3ss0 Posted July 31, 2020 Author Share Posted July 31, 2020 Having trouble installing the Open Cue Service, I've unzipped and tried running open-cue-service but an error occurs ... "The application to execute does not exist: 'C:\Users\Coffee\AppData\Local\Temp\.net\open-cue-service\oj2trrd3.uek\open-cue-service.dll'." Link to comment Share on other sites More sharing options...
Legion2 Posted August 3, 2020 Share Posted August 3, 2020 Having trouble installing the Open Cue Service, I've unzipped and tried running open-cue-service but an error occurs ... "The application to execute does not exist: 'C:\Users\Coffee\AppData\Local\Temp\.net\open-cue-service\oj2trrd3.uek\open-cue-service.dll'." The problem is resolved the the latest version https://github.com/Legion2/open-cue-service/releases/tag/v0.2.3 1 Link to comment Share on other sites More sharing options...
espr3ss0 Posted August 4, 2020 Author Share Posted August 4, 2020 I must be doing something wrong, I now get a different error. (Following the Instruction run the open-cue-service.exe) Do I need anything installed before trying this? Unhandled exception. OpenCueService.CgSdk.SdkError: Sdk Error occurred: InvalidArguments - developer supplied invalid arguments to the function (for specifics look at function descriptions) at OpenCueService.CgSdk.CorsairGameSdk.WithErrorHandling(Boolean returnValue) at OpenCueService.CgSdk.CorsairGameSdk..ctor(String game) at OpenCueService.SdkHandler..ctor(IOptions`1 config) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at OpenCueService.Program.Main(String[] args) Link to comment Share on other sites More sharing options...
hastegag Posted August 5, 2020 Share Posted August 5, 2020 @espr3sso are you simultaneously running MaccaCool's on the same port? I got that error only when running both at the same time by accident. In either 0.2.2 or 0.2.3. They are both configured by default on localhost:25555 so that conflict means Legion2's cannot start if something is in its way. Could be a firewall issue too I suppose Link to comment Share on other sites More sharing options...
Legion2 Posted August 5, 2020 Share Posted August 5, 2020 @espr3sso The error comes from iCUE because it can not find the profiles directory. Have a look at https://github.com/Legion2/open-cue-cli#profiles on how to setup your profiles before starting the service. Link to comment Share on other sites More sharing options...
espr3ss0 Posted August 7, 2020 Author Share Posted August 7, 2020 Ok that now works, thanks. Question though ... Do I need to store my cue profiles in the created 'profiles' dir? Link to comment Share on other sites More sharing options...
hastegag Posted August 7, 2020 Share Posted August 7, 2020 Ok that now works, thanks. Question though ... Do I need to store my cue profiles in the created 'profiles' dir? I am sure Legion2 can answer you better, but yes you do, in that gamesdk subdirectory. You might be able to get away with a symbolic link or junction though I have not tested that - which might be handy Link to comment Share on other sites More sharing options...
Legion2 Posted August 8, 2020 Share Posted August 8, 2020 Ok that now works, thanks. Question though ... Do I need to store my cue profiles in the created 'profiles' dir? You can rename the dir in the config file, but the directory must be in the iCUE GameSdkEffects directory and contain a priorities.cfg. I exported all my profiles and stored them there. I didn't checked if you can use a symlink. Keep in mind there are some naming restrictions for the profiles when using them with the SDK. Link to comment Share on other sites More sharing options...
Recommended Posts