diff foosdk/sdk/foobar2000/foo_sample/Mac/fooSampleDSPView.mm @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/foobar2000/foo_sample/Mac/fooSampleDSPView.mm	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,41 @@
+#import "stdafx.h"
+#import "fooSampleDSPView.h"
+#import "dsp_sample.h"
+
+@interface fooSampleDSPView ()
+@property (nonatomic) dsp_preset_edit_callback_v2::ptr callback;
+@property (nonatomic) NSNumber * gain;
+@end
+
+@implementation fooSampleDSPView
+
+- (instancetype)init {
+    // IMPORTANT: feed OUR NSBundle, bundleForClass works well for this
+    return [self initWithNibName: @"fooSampleDSPView" bundle:[NSBundle bundleForClass: [self class]]];
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    // Do view setup here.
+    
+    dsp_preset_impl preset;
+    _callback->get_preset(preset);
+    self.gain = [NSNumber numberWithFloat: parse_preset(preset)];
+}
+
+- (IBAction)onEdit:(id)sender {
+    [self apply];
+}
+
+- (void) apply {
+    dsp_preset_impl preset;
+    make_preset( self.gain.floatValue , preset);
+    _callback->set_preset( preset );
+}
+@end
+
+service_ptr ConfigureSampleDSP( fb2k::hwnd_t parent, dsp_preset_edit_callback_v2::ptr callback ) {
+    fooSampleDSPView * dialog = [fooSampleDSPView new];
+    dialog.callback = callback;
+    return fb2k::wrapNSObject( dialog );
+}