Commit a380220e authored by Felix Paul Kühne's avatar Felix Paul Kühne Committed by David Fuhrmann

macosx: move video filter control code to the global libvlccore control object...

macosx: move video filter control code to the global libvlccore control object since it does not belong in a window controller

(cherry picked from commit c16ab7a4f6880bf54acbe47e24610f84064a732d)
Signed-off-by: default avatarDavid Fuhrmann <dfuhrmann@videolan.org>
parent 6f199796
/*****************************************************************************
* CoreInteraction.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2011-2012 Felix Paul Kühne
* Copyright (C) 2011-2014 Felix Paul Kühne
* $Id$
*
* Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org>
......@@ -79,4 +79,10 @@
- (void)toggleFullscreen;
- (BOOL)fixPreferences;
- (void)setVideoFilter: (char *)psz_name on:(BOOL)b_on;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char*)psz_filter integer: (int)i_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char*)psz_filter float: (float)f_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter string: (const char *)psz_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter boolean: (BOOL)b_value;
@end
/*****************************************************************************
* CoreInteraction.m: MacOS X interface module
*****************************************************************************
* Copyright (C) 2011-2013 Felix Paul Kühne
* Copyright (C) 2011-2014 Felix Paul Kühne
* $Id$
*
* Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org>
......@@ -34,6 +34,8 @@
#import <vlc/vlc.h>
#import <vlc_strings.h>
#import <vlc_url.h>
#import <vlc_modules.h>
#import <vlc_charset.h>
@implementation VLCCoreInteraction
......@@ -44,8 +46,7 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
return _o_sharedInstance ? _o_sharedInstance : [[self alloc] init];
}
#pragma mark -
#pragma mark Initialization
#pragma mark - Initialization
- (id)init
{
......@@ -65,8 +66,7 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
}
#pragma mark -
#pragma mark Playback Controls
#pragma mark - Playback Controls
- (void)playOrPause
{
......@@ -565,8 +565,7 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
vlc_object_release(p_input);
}
#pragma mark -
#pragma mark drag and drop support for VLCVoutView, VLCDragDropView and VLCThreePartDropView
#pragma mark - drag and drop support for VLCVoutView, VLCDragDropView and VLCThreePartDropView
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
NSPasteboard *o_paste = [sender draggingPasteboard];
......@@ -614,8 +613,7 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
return NO;
}
#pragma mark -
#pragma mark video output stuff
#pragma mark - video output stuff
- (void)setAspectRatioIsLocked:(BOOL)b_value
{
......@@ -644,8 +642,7 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
}
}
#pragma mark -
#pragma mark uncommon stuff
#pragma mark - uncommon stuff
- (BOOL)fixPreferences
{
......@@ -681,4 +678,250 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
return b_needsRestart;
}
#pragma mark - video filter handling
- (const char *)getFilterType:(char *)psz_name
{
module_t *p_obj = module_find(psz_name);
if (!p_obj) {
return NULL;
}
if (module_provides(p_obj, "video splitter")) {
return "video-splitter";
} else if (module_provides(p_obj, "video filter2")) {
return "video-filter";
} else if (module_provides(p_obj, "sub source")) {
return "sub-source";
} else if (module_provides(p_obj, "sub filter")) {
return "sub-filter";
} else {
msg_Err(VLCIntf, "Unknown video filter type.");
return NULL;
}
}
- (void)setVideoFilter: (char *)psz_name on:(BOOL)b_on
{
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
char *psz_string, *psz_parser;
const char *psz_filter_type = [self getFilterType:psz_name];
if (!psz_filter_type) {
msg_Err(p_intf, "Unable to find filter module \"%s\".", psz_name);
return;
}
msg_Dbg(p_intf, "will set filter '%s'", psz_name);
psz_string = config_GetPsz(p_intf, psz_filter_type);
if (b_on) {
if (psz_string == NULL) {
psz_string = strdup(psz_name);
} else if (strstr(psz_string, psz_name) == NULL) {
char *psz_tmp = strdup([[NSString stringWithFormat: @"%s:%s", psz_string, psz_name] UTF8String]);
free(psz_string);
psz_string = psz_tmp;
}
} else {
if (!psz_string)
return;
psz_parser = strstr(psz_string, psz_name);
if (psz_parser) {
if (*(psz_parser + strlen(psz_name)) == ':') {
memmove(psz_parser, psz_parser + strlen(psz_name) + 1,
strlen(psz_parser + strlen(psz_name) + 1) + 1);
} else {
*psz_parser = '\0';
}
/* Remove trailing : : */
if (strlen(psz_string) > 0 && *(psz_string + strlen(psz_string) -1) == ':')
*(psz_string + strlen(psz_string) -1) = '\0';
} else {
free(psz_string);
return;
}
}
config_PutPsz(p_intf, psz_filter_type, psz_string);
/* Try to set on the fly */
if (!strcmp(psz_filter_type, "video-splitter")) {
playlist_t *p_playlist = pl_Get(p_intf);
var_SetString(p_playlist, psz_filter_type, psz_string);
} else {
vout_thread_t *p_vout = getVout();
if (p_vout) {
var_SetString(p_vout, psz_filter_type, psz_string);
vlc_object_release(p_vout);
}
}
free(psz_string);
}
- (void)restartFilterIfNeeded: (char *)psz_filter option: (char *)psz_name
{
vout_thread_t *p_vout = getVout();
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
if (p_vout == NULL)
return;
else
vlc_object_release(p_vout);
vlc_object_t *p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (p_filter) {
/* we cannot rely on the p_filter existence.
This filter might be just
disabled, but the object still exists. Therefore, the string
is checked, additionally.
*/
const char *psz_filter_type = [self getFilterType:psz_filter];
if (!psz_filter_type) {
msg_Err(p_intf, "Unable to find filter module \"%s\".", psz_name);
goto out;
}
char *psz_string = config_GetPsz(p_intf, psz_filter_type);
if (!psz_string) {
goto out;
}
if (strstr(psz_string, psz_filter) == NULL) {
free(psz_string);
goto out;
}
free(psz_string);
int i_type;
i_type = var_Type(p_filter, psz_name);
if (i_type == 0)
i_type = config_GetType(p_intf, psz_name);
if (!(i_type & VLC_VAR_ISCOMMAND)) {
msg_Warn(p_intf, "Brute-restarting filter '%s', because the last changed option isn't a command", psz_name);
[self setVideoFilter: psz_filter on: NO];
[self setVideoFilter: psz_filter on: YES];
} else
msg_Dbg(p_intf, "restart not needed");
out:
vlc_object_release(p_filter);
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter integer: (int)i_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
config_PutInt(p_intf, psz_name, i_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetInteger(p_filter, psz_name, i_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter float: (float)f_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
config_PutFloat(p_intf, psz_name, f_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetFloat(p_filter, psz_name, f_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter string: (const char *)psz_value
{
char *psz_new_value = strdup(psz_value);
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
config_PutPsz(p_intf, psz_name, EnsureUTF8(psz_new_value));
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetString(p_filter, psz_name, EnsureUTF8(psz_new_value));
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
free(psz_new_value);
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter boolean: (BOOL)b_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
intf_thread_t *p_intf = VLCIntf;
if (!p_intf)
return;
config_PutInt(p_intf, psz_name, b_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetBool(p_filter, psz_name, b_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
}
}
@end
......@@ -151,11 +151,6 @@
- (void)updateCocoaWindowLevel:(NSInteger)i_level;
- (void)resetValues;
- (void)setVideoFilter: (char *)psz_name on:(BOOL)b_on;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char*)psz_filter integer: (int)i_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char*)psz_filter float: (float)f_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter string: (const char *)psz_value;
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter boolean: (BOOL)b_value;
- (void)saveCurrentProfile;
......
......@@ -23,11 +23,9 @@
#import "CompatibilityFixes.h"
#import "intf.h"
#import <vlc_common.h>
#import <vlc_modules.h>
#import <vlc_charset.h>
#import "VideoEffects.h"
#import "SharedDialogs.h"
#import "CoreInteraction.h"
@interface VLCVideoEffects (Internal)
- (void)resetProfileSelector;
......@@ -507,232 +505,6 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[o_addlogo_transparency_lbl setEnabled: b_state];
}
- (const char *)getFilterType:(char *)psz_name
{
module_t *p_obj = module_find(psz_name);
if (!p_obj) {
return NULL;
}
if (module_provides(p_obj, "video splitter")) {
return "video-splitter";
} else if (module_provides(p_obj, "video filter2")) {
return "video-filter";
} else if (module_provides(p_obj, "sub source")) {
return "sub-source";
} else if (module_provides(p_obj, "sub filter")) {
return "sub-filter";
} else {
msg_Err(p_intf, "Unknown video filter type.");
return NULL;
}
}
- (void)setVideoFilter: (char *)psz_name on:(BOOL)b_on
{
char *psz_string, *psz_parser;
const char *psz_filter_type = [self getFilterType:psz_name];
if (!psz_filter_type) {
msg_Err(p_intf, "Unable to find filter module \"%s\".", psz_name);
return;
}
msg_Dbg(p_intf, "will set filter '%s'", psz_name);
psz_string = config_GetPsz(p_intf, psz_filter_type);
if (b_on) {
if (psz_string == NULL) {
psz_string = strdup(psz_name);
} else if (strstr(psz_string, psz_name) == NULL) {
char *psz_tmp = strdup([[NSString stringWithFormat: @"%s:%s", psz_string, psz_name] UTF8String]);
free(psz_string);
psz_string = psz_tmp;
}
} else {
if (!psz_string)
return;
psz_parser = strstr(psz_string, psz_name);
if (psz_parser) {
if (*(psz_parser + strlen(psz_name)) == ':') {
memmove(psz_parser, psz_parser + strlen(psz_name) + 1,
strlen(psz_parser + strlen(psz_name) + 1) + 1);
} else {
*psz_parser = '\0';
}
/* Remove trailing : : */
if (strlen(psz_string) > 0 && *(psz_string + strlen(psz_string) -1) == ':')
*(psz_string + strlen(psz_string) -1) = '\0';
} else {
free(psz_string);
return;
}
}
config_PutPsz(p_intf, psz_filter_type, psz_string);
/* Try to set on the fly */
if (!strcmp(psz_filter_type, "video-splitter")) {
playlist_t *p_playlist = pl_Get(p_intf);
var_SetString(p_playlist, psz_filter_type, psz_string);
} else {
vout_thread_t *p_vout = getVout();
if (p_vout) {
var_SetString(p_vout, psz_filter_type, psz_string);
vlc_object_release(p_vout);
}
}
free(psz_string);
}
- (void)restartFilterIfNeeded: (char *)psz_filter option: (char *)psz_name
{
vout_thread_t *p_vout = getVout();
if (p_vout == NULL)
return;
else
vlc_object_release(p_vout);
vlc_object_t *p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (p_filter) {
/* we cannot rely on the p_filter existence.
This filter might be just
disabled, but the object still exists. Therefore, the string
is checked, additionally.
*/
const char *psz_filter_type = [self getFilterType:psz_filter];
if (!psz_filter_type) {
msg_Err(p_intf, "Unable to find filter module \"%s\".", psz_name);
goto out;
}
char *psz_string = config_GetPsz(p_intf, psz_filter_type);
if (!psz_string) {
goto out;
}
if (strstr(psz_string, psz_filter) == NULL) {
free(psz_string);
goto out;
}
free(psz_string);
int i_type;
i_type = var_Type(p_filter, psz_name);
if (i_type == 0)
i_type = config_GetType(p_intf, psz_name);
if (!(i_type & VLC_VAR_ISCOMMAND)) {
msg_Warn(p_intf, "Brute-restarting filter '%s', because the last changed option isn't a command", psz_name);
[self setVideoFilter: psz_filter on: NO];
[self setVideoFilter: psz_filter on: YES];
} else
msg_Dbg(p_intf, "restart not needed");
out:
vlc_object_release(p_filter);
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter integer: (int)i_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
config_PutInt(p_intf, psz_name, i_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetInteger(p_filter, psz_name, i_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter float: (float)f_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
config_PutFloat(p_intf, psz_name, f_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetFloat(p_filter, psz_name, f_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter string: (const char *)psz_value
{
char *psz_new_value = strdup(psz_value);
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
config_PutPsz(p_intf, psz_name, EnsureUTF8(psz_new_value));
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetString(p_filter, psz_name, EnsureUTF8(psz_new_value));
vlc_object_release(p_vout);
vlc_object_release(p_filter);
[self restartFilterIfNeeded: psz_filter option: psz_name];
}
free(psz_new_value);
}
- (void)setVideoFilterProperty: (char *)psz_name forFilter: (char *)psz_filter boolean: (BOOL)b_value
{
vout_thread_t *p_vout = getVout();
vlc_object_t *p_filter;
config_PutInt(p_intf, psz_name, b_value);
if (p_vout) {
p_filter = vlc_object_find_name(pl_Get(p_intf), psz_filter);
if (!p_filter) {
msg_Warn(p_intf, "filter '%s' isn't enabled", psz_filter);
vlc_object_release(p_vout);
return;
}
var_SetBool(p_filter, psz_name, b_value);
vlc_object_release(p_vout);
vlc_object_release(p_filter);
}
}
- (NSString *)generateProfileString
{
return [NSString stringWithFormat:@"%@;%@;%@;%lli;%f;%f;%f;%f;%f;%lli;%f;%@;%lli;%lli;%lli;%lli;%lli;%lli;%@;%lli;%lli;%lli;%lli;%lli;%@;%lli;%@;%lli;%lli;%lli;%lli;%lli;%lli",
......@@ -809,6 +581,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
[self saveCurrentProfile];
i_old_profile_index = [o_profile_pop indexOfSelectedItem];
VLCCoreInteraction *vci_si = [VLCCoreInteraction sharedInstance];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSUInteger selectedProfile = [o_profile_pop indexOfSelectedItem];
......@@ -845,7 +618,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
tempArray = [tempString componentsSeparatedByString:@":"];
count = [tempArray count];
for (NSUInteger x = 0; x < count; x++)
[self setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
[vci_si setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
}
tempString = B64DecNSStr([items objectAtIndex:1]);
......@@ -855,7 +628,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
tempArray = [tempString componentsSeparatedByString:@":"];
count = [tempArray count];
for (NSUInteger x = 0; x < count; x++)
[self setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
[vci_si setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
}
tempString = B64DecNSStr([items objectAtIndex:2]);
......@@ -865,39 +638,39 @@ static VLCVideoEffects *_o_sharedInstance = nil;
tempArray = [tempString componentsSeparatedByString:@":"];
count = [tempArray count];
for (NSUInteger x = 0; x < count; x++)
[self setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
[vci_si setVideoFilter:(char *)[[tempArray objectAtIndex:x] UTF8String] on:YES];
}
/* try to set filter values on-the-fly and store them appropriately */
[self setVideoFilterProperty:"hue" forFilter:"adjust" integer:[[items objectAtIndex:3] intValue]];
[self setVideoFilterProperty:"contrast" forFilter:"adjust" float:[[items objectAtIndex:4] floatValue]];
[self setVideoFilterProperty:"brightness" forFilter:"adjust" float:[[items objectAtIndex:5] floatValue]];
[self setVideoFilterProperty:"saturation" forFilter:"adjust" float:[[items objectAtIndex:6] floatValue]];
[self setVideoFilterProperty:"gamma" forFilter:"adjust" float:[[items objectAtIndex:7] floatValue]];
[self setVideoFilterProperty:"sharpen-sigma" forFilter:"sharpen" float:[[items objectAtIndex:8] floatValue]];
[self setVideoFilterProperty:"gradfun-radius" forFilter:"gradfun" integer:[[items objectAtIndex:9] intValue]];
[self setVideoFilterProperty:"grain-variance" forFilter:"grain" float:[[items objectAtIndex:10] floatValue]];
[self setVideoFilterProperty:"transform-type" forFilter:"transform" string:[B64DecNSStr([items objectAtIndex:11]) UTF8String]];
[self setVideoFilterProperty:"puzzle-rows" forFilter:"puzzle" integer:[[items objectAtIndex:12] intValue]];
[self setVideoFilterProperty:"puzzle-cols" forFilter:"puzzle" integer:[[items objectAtIndex:13] intValue]];
[self setVideoFilterProperty:"colorthres-color" forFilter:"colorthres" integer:[[items objectAtIndex:14] intValue]];
[self setVideoFilterProperty:"colorthres-saturationthres" forFilter:"colorthres" integer:[[items objectAtIndex:15] intValue]];
[self setVideoFilterProperty:"colorthres-similaritythres" forFilter:"colorthres" integer:[[items objectAtIndex:16] intValue]];
[self setVideoFilterProperty:"sepia-intensity" forFilter:"sepia" integer:[[items objectAtIndex:17] intValue]];
[self setVideoFilterProperty:"gradient-mode" forFilter:"gradient" string:[B64DecNSStr([items objectAtIndex:18]) UTF8String]];
[self setVideoFilterProperty:"gradient-cartoon" forFilter:"gradient" integer:[[items objectAtIndex:19] intValue]];
[self setVideoFilterProperty:"gradient-type" forFilter:"gradient" integer:[[items objectAtIndex:20] intValue]];
[self setVideoFilterProperty:"extract-component" forFilter:"extract" integer:[[items objectAtIndex:21] intValue]];
[self setVideoFilterProperty:"posterize-level" forFilter:"posterize" integer:[[items objectAtIndex:22] intValue]];
[self setVideoFilterProperty:"blur-factor" forFilter:"motionblur" integer:[[items objectAtIndex:23] intValue]];
[self setVideoFilterProperty:"marq-marquee" forFilter:"marq" string:[B64DecNSStr([items objectAtIndex:24]) UTF8String]];
[self setVideoFilterProperty:"marq-position" forFilter:"marq" integer:[[items objectAtIndex:25] intValue]];
[self setVideoFilterProperty:"logo-file" forFilter:"logo" string:[B64DecNSStr([items objectAtIndex:26]) UTF8String]];
[self setVideoFilterProperty:"logo-position" forFilter:"logo" integer:[[items objectAtIndex:27] intValue]];
[self setVideoFilterProperty:"logo-opacity" forFilter:"logo" integer:[[items objectAtIndex:28] intValue]];
[self setVideoFilterProperty:"clone-count" forFilter:"clone" integer:[[items objectAtIndex:29] intValue]];
[self setVideoFilterProperty:"wall-rows" forFilter:"wall" integer:[[items objectAtIndex:30] intValue]];
[self setVideoFilterProperty:"wall-cols" forFilter:"wall" integer:[[items objectAtIndex:31] intValue]];
[vci_si setVideoFilterProperty:"hue" forFilter:"adjust" integer:[[items objectAtIndex:3] intValue]];
[vci_si setVideoFilterProperty:"contrast" forFilter:"adjust" float:[[items objectAtIndex:4] floatValue]];
[vci_si setVideoFilterProperty:"brightness" forFilter:"adjust" float:[[items objectAtIndex:5] floatValue]];
[vci_si setVideoFilterProperty:"saturation" forFilter:"adjust" float:[[items objectAtIndex:6] floatValue]];
[vci_si setVideoFilterProperty:"gamma" forFilter:"adjust" float:[[items objectAtIndex:7] floatValue]];
[vci_si setVideoFilterProperty:"sharpen-sigma" forFilter:"sharpen" float:[[items objectAtIndex:8] floatValue]];
[vci_si setVideoFilterProperty:"gradfun-radius" forFilter:"gradfun" integer:[[items objectAtIndex:9] intValue]];
[vci_si setVideoFilterProperty:"grain-variance" forFilter:"grain" float:[[items objectAtIndex:10] floatValue]];
[vci_si setVideoFilterProperty:"transform-type" forFilter:"transform" string:[B64DecNSStr([items objectAtIndex:11]) UTF8String]];
[vci_si setVideoFilterProperty:"puzzle-rows" forFilter:"puzzle" integer:[[items objectAtIndex:12] intValue]];
[vci_si setVideoFilterProperty:"puzzle-cols" forFilter:"puzzle" integer:[[items objectAtIndex:13] intValue]];
[vci_si setVideoFilterProperty:"colorthres-color" forFilter:"colorthres" integer:[[items objectAtIndex:14] intValue]];
[vci_si setVideoFilterProperty:"colorthres-saturationthres" forFilter:"colorthres" integer:[[items objectAtIndex:15] intValue]];
[vci_si setVideoFilterProperty:"colorthres-similaritythres" forFilter:"colorthres" integer:[[items objectAtIndex:16] intValue]];
[vci_si setVideoFilterProperty:"sepia-intensity" forFilter:"sepia" integer:[[items objectAtIndex:17] intValue]];
[vci_si setVideoFilterProperty:"gradient-mode" forFilter:"gradient" string:[B64DecNSStr([items objectAtIndex:18]) UTF8String]];
[vci_si setVideoFilterProperty:"gradient-cartoon" forFilter:"gradient" integer:[[items objectAtIndex:19] intValue]];
[vci_si setVideoFilterProperty:"gradient-type" forFilter:"gradient" integer:[[items objectAtIndex:20] intValue]];
[vci_si setVideoFilterProperty:"extract-component" forFilter:"extract" integer:[[items objectAtIndex:21] intValue]];
[vci_si setVideoFilterProperty:"posterize-level" forFilter:"posterize" integer:[[items objectAtIndex:22] intValue]];
[vci_si setVideoFilterProperty:"blur-factor" forFilter:"motionblur" integer:[[items objectAtIndex:23] intValue]];
[vci_si setVideoFilterProperty:"marq-marquee" forFilter:"marq" string:[B64DecNSStr([items objectAtIndex:24]) UTF8String]];
[vci_si setVideoFilterProperty:"marq-position" forFilter:"marq" integer:[[items objectAtIndex:25] intValue]];
[vci_si setVideoFilterProperty:"logo-file" forFilter:"logo" string:[B64DecNSStr([items objectAtIndex:26]) UTF8String]];
[vci_si setVideoFilterProperty:"logo-position" forFilter:"logo" integer:[[items objectAtIndex:27] intValue]];
[vci_si setVideoFilterProperty:"logo-opacity" forFilter:"logo" integer:[[items objectAtIndex:28] intValue]];
[vci_si setVideoFilterProperty:"clone-count" forFilter:"clone" integer:[[items objectAtIndex:29] intValue]];
[vci_si setVideoFilterProperty:"wall-rows" forFilter:"wall" integer:[[items objectAtIndex:30] intValue]];
[vci_si setVideoFilterProperty:"wall-cols" forFilter:"wall" integer:[[items objectAtIndex:31] intValue]];
if ([items count] >= 33) { // version >=2 of profile string
[vci_si setVideoFilterProperty: "brightness-threshold" forFilter: "adjust" boolean: [[items objectAtIndex:32] intValue]];
......@@ -1024,7 +797,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_adjust_ckb state];
[self setVideoFilter: "adjust" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "adjust" on: b_state];
[o_adjust_brightness_sld setEnabled: b_state];
[o_adjust_brightness_ckb setEnabled: b_state];
[o_adjust_brightness_lbl setEnabled: b_state];
......@@ -1042,15 +815,15 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)adjustSliderChanged:(id)sender
{
if (sender == o_adjust_brightness_sld)
[self setVideoFilterProperty: "brightness" forFilter: "adjust" float: [o_adjust_brightness_sld floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "brightness" forFilter: "adjust" float: [o_adjust_brightness_sld floatValue]];
else if (sender == o_adjust_contrast_sld)
[self setVideoFilterProperty: "contrast" forFilter: "adjust" float: [o_adjust_contrast_sld floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "contrast" forFilter: "adjust" float: [o_adjust_contrast_sld floatValue]];
else if (sender == o_adjust_gamma_sld)
[self setVideoFilterProperty: "gamma" forFilter: "adjust" float: [o_adjust_gamma_sld floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gamma" forFilter: "adjust" float: [o_adjust_gamma_sld floatValue]];
else if (sender == o_adjust_hue_sld)
[self setVideoFilterProperty: "hue" forFilter: "adjust" integer: [o_adjust_hue_sld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "hue" forFilter: "adjust" integer: [o_adjust_hue_sld intValue]];
else if (sender == o_adjust_saturation_sld)
[self setVideoFilterProperty: "saturation" forFilter: "adjust" float: [o_adjust_saturation_sld floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "saturation" forFilter: "adjust" float: [o_adjust_saturation_sld floatValue]];
if (sender == o_adjust_hue_sld)
[o_adjust_hue_sld setToolTip: [NSString stringWithFormat:@"%i", [o_adjust_hue_sld intValue]]];
......@@ -1061,6 +834,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)enableAdjustBrightnessThreshold:(id)sender
{
if (sender == o_adjust_reset_btn) {
VLCCoreInteraction *vci_si = [VLCCoreInteraction sharedInstance];
[o_adjust_brightness_sld setFloatValue: 1.0];
[o_adjust_contrast_sld setFloatValue: 1.0];
[o_adjust_gamma_sld setFloatValue: 1.0];
......@@ -1071,11 +845,11 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[o_adjust_gamma_sld setToolTip: [NSString stringWithFormat:@"%0.3f", 1.0]];
[o_adjust_hue_sld setToolTip: [NSString stringWithFormat:@"%i", 0]];
[o_adjust_saturation_sld setToolTip: [NSString stringWithFormat:@"%0.3f", 1.0]];
[self setVideoFilterProperty: "brightness" forFilter: "adjust" float: 1.0];
[self setVideoFilterProperty: "contrast" forFilter: "adjust" float: 1.0];
[self setVideoFilterProperty: "gamma" forFilter: "adjust" float: 1.0];
[self setVideoFilterProperty: "hue" forFilter: "adjust" integer: 0.0];
[self setVideoFilterProperty: "saturation" forFilter: "adjust" float: 1.0];
[vci_si setVideoFilterProperty: "brightness" forFilter: "adjust" float: 1.0];
[vci_si setVideoFilterProperty: "contrast" forFilter: "adjust" float: 1.0];
[vci_si setVideoFilterProperty: "gamma" forFilter: "adjust" float: 1.0];
[vci_si setVideoFilterProperty: "hue" forFilter: "adjust" integer: 0.0];
[vci_si setVideoFilterProperty: "saturation" forFilter: "adjust" float: 1.0];
} else
config_PutInt(p_intf, "brightness-threshold", [o_adjust_brightness_ckb state]);
}
......@@ -1084,14 +858,14 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_sharpen_ckb state];
[self setVideoFilter: "sharpen" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "sharpen" on: b_state];
[o_sharpen_sld setEnabled: b_state];
[o_sharpen_lbl setEnabled: b_state];
}
- (IBAction)sharpenSliderChanged:(id)sender
{
[self setVideoFilterProperty: "sharpen-sigma" forFilter: "sharpen" float: [sender floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "sharpen-sigma" forFilter: "sharpen" float: [sender floatValue]];
[sender setToolTip: [NSString stringWithFormat:@"%0.3f", [sender floatValue]]];
}
......@@ -1099,14 +873,14 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_banding_ckb state];
[self setVideoFilter: "gradfun" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "gradfun" on: b_state];
[o_banding_sld setEnabled: b_state];
[o_banding_lbl setEnabled: b_state];
}
- (IBAction)bandingSliderChanged:(id)sender
{
[self setVideoFilterProperty: "gradfun-radius" forFilter: "gradfun" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradfun-radius" forFilter: "gradfun" integer: [sender intValue]];
[sender setToolTip: [NSString stringWithFormat:@"%i", [sender intValue]]];
}
......@@ -1114,14 +888,14 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_grain_ckb state];
[self setVideoFilter: "grain" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "grain" on: b_state];
[o_grain_sld setEnabled: b_state];
[o_grain_lbl setEnabled: b_state];
}
- (IBAction)grainSliderChanged:(id)sender
{
[self setVideoFilterProperty: "grain-variance" forFilter: "grain" float: [sender floatValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "grain-variance" forFilter: "grain" float: [sender floatValue]];
[sender setToolTip: [NSString stringWithFormat:@"%0.3f", [sender floatValue]]];
}
......@@ -1158,7 +932,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
#pragma mark geometry
- (IBAction)enableTransform:(id)sender
{
[self setVideoFilter: "transform" on: [o_transform_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "transform" on: [o_transform_ckb state]];
[o_transform_pop setEnabled: [o_transform_ckb state]];
}
......@@ -1171,19 +945,19 @@ static VLCVideoEffects *_o_sharedInstance = nil;
else if (tag == 2)
psz_string = "vflip";
[self setVideoFilterProperty: "transform-type" forFilter: "transform" string: psz_string];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "transform-type" forFilter: "transform" string: psz_string];
}
- (IBAction)enableZoom:(id)sender
{
[self setVideoFilter: "magnify" on: [o_zoom_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "magnify" on: [o_zoom_ckb state]];
}
- (IBAction)enablePuzzle:(id)sender
{
BOOL b_state = [o_puzzle_ckb state];
[self setVideoFilter: "puzzle" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "puzzle" on: b_state];
[o_puzzle_columns_fld setEnabled: b_state];
[o_puzzle_columns_stp setEnabled: b_state];
[o_puzzle_columns_lbl setEnabled: b_state];
......@@ -1195,9 +969,9 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)puzzleModifierChanged:(id)sender
{
if (sender == o_puzzle_columns_fld || sender == o_puzzle_columns_stp)
[self setVideoFilterProperty: "puzzle-cols" forFilter: "puzzle" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "puzzle-cols" forFilter: "puzzle" integer: [sender intValue]];
else
[self setVideoFilterProperty: "puzzle-rows" forFilter: "puzzle" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "puzzle-rows" forFilter: "puzzle" integer: [sender intValue]];
}
- (IBAction)enableClone:(id)sender
......@@ -1209,7 +983,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[self enableWall: o_wall_ckb];
}
[self setVideoFilter: "clone" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "clone" on: b_state];
[o_clone_number_lbl setEnabled: b_state];
[o_clone_number_fld setEnabled: b_state];
[o_clone_number_stp setEnabled: b_state];
......@@ -1217,7 +991,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)cloneModifierChanged:(id)sender
{
[self setVideoFilterProperty: "clone-count" forFilter: "clone" integer: [o_clone_number_fld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "clone-count" forFilter: "clone" integer: [o_clone_number_fld intValue]];
}
- (IBAction)enableWall:(id)sender
......@@ -1229,7 +1003,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[self enableClone: o_clone_ckb];
}
[self setVideoFilter: "wall" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "wall" on: b_state];
[o_wall_numofcols_fld setEnabled: b_state];
[o_wall_numofcols_stp setEnabled: b_state];
[o_wall_numofcols_lbl setEnabled: b_state];
......@@ -1242,9 +1016,9 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)wallModifierChanged:(id)sender
{
if (sender == o_wall_numofcols_fld || sender == o_wall_numofcols_stp)
[self setVideoFilterProperty: "wall-cols" forFilter: "wall" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "wall-cols" forFilter: "wall" integer: [sender intValue]];
else
[self setVideoFilterProperty: "wall-rows" forFilter: "wall" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "wall-rows" forFilter: "wall" integer: [sender intValue]];
}
#pragma mark -
......@@ -1253,7 +1027,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_threshold_ckb state];
[self setVideoFilter: "colorthres" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "colorthres" on: b_state];
[o_threshold_color_fld setEnabled: b_state];
[o_threshold_color_lbl setEnabled: b_state];
[o_threshold_saturation_sld setEnabled: b_state];
......@@ -1265,12 +1039,12 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)thresholdModifierChanged:(id)sender
{
if (sender == o_threshold_color_fld)
[self setVideoFilterProperty: "colorthres-color" forFilter: "colorthres" integer: [o_threshold_color_fld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "colorthres-color" forFilter: "colorthres" integer: [o_threshold_color_fld intValue]];
else if (sender == o_threshold_saturation_sld) {
[self setVideoFilterProperty: "colorthres-saturationthres" forFilter: "colorthres" integer: [o_threshold_saturation_sld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "colorthres-saturationthres" forFilter: "colorthres" integer: [o_threshold_saturation_sld intValue]];
[o_threshold_saturation_sld setToolTip: [NSString stringWithFormat:@"%i", [o_threshold_saturation_sld intValue]]];
} else {
[self setVideoFilterProperty: "colorthres-similaritythres" forFilter: "colorthres" integer: [o_threshold_similarity_sld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "colorthres-similaritythres" forFilter: "colorthres" integer: [o_threshold_similarity_sld intValue]];
[o_threshold_similarity_sld setToolTip: [NSString stringWithFormat:@"%i", [o_threshold_similarity_sld intValue]]];
}
}
......@@ -1279,7 +1053,7 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
BOOL b_state = [o_sepia_ckb state];
[self setVideoFilter: "sepia" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "sepia" on: b_state];
[o_sepia_fld setEnabled: b_state];
[o_sepia_stp setEnabled: b_state];
[o_sepia_lbl setEnabled: b_state];
......@@ -1287,19 +1061,19 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)sepiaModifierChanged:(id)sender
{
[self setVideoFilterProperty: "sepia-intensity" forFilter: "sepia" integer: [o_sepia_fld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "sepia-intensity" forFilter: "sepia" integer: [o_sepia_fld intValue]];
}
- (IBAction)enableNoise:(id)sender
{
[self setVideoFilter: "noise" on: [o_noise_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "noise" on: [o_noise_ckb state]];
}
- (IBAction)enableGradient:(id)sender
{
BOOL b_state = [o_gradient_ckb state];
[self setVideoFilter: "gradient" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "gradient" on: b_state];
[o_gradient_mode_pop setEnabled: b_state];
[o_gradient_mode_lbl setEnabled: b_state];
[o_gradient_color_ckb setEnabled: b_state];
......@@ -1310,40 +1084,40 @@ static VLCVideoEffects *_o_sharedInstance = nil;
{
if (sender == o_gradient_mode_pop) {
if ([[o_gradient_mode_pop selectedItem] tag] == 3)
[self setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "hough"];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "hough"];
else if ([[o_gradient_mode_pop selectedItem] tag] == 2)
[self setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "edge"];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "edge"];
else
[self setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "gradient"];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradient-mode" forFilter: "gradient" string: "gradient"];
} else if (sender == o_gradient_color_ckb)
[self setVideoFilterProperty: "gradient-type" forFilter: "gradient" integer: [o_gradient_color_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradient-type" forFilter: "gradient" integer: [o_gradient_color_ckb state]];
else
[self setVideoFilterProperty: "gradient-cartoon" forFilter: "gradient" boolean: [o_gradient_cartoon_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "gradient-cartoon" forFilter: "gradient" boolean: [o_gradient_cartoon_ckb state]];
}
- (IBAction)enableExtract:(id)sender
{
BOOL b_state = [o_extract_ckb state];
[self setVideoFilter: "extract" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "extract" on: b_state];
[o_extract_fld setEnabled: b_state];
[o_extract_lbl setEnabled: b_state];
}
- (IBAction)extractModifierChanged:(id)sender
{
[self setVideoFilterProperty: "extract-component" forFilter: "extract" integer: [o_extract_fld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "extract-component" forFilter: "extract" integer: [o_extract_fld intValue]];
}
- (IBAction)enableInvert:(id)sender
{
[self setVideoFilter: "invert" on: [o_invert_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "invert" on: [o_invert_ckb state]];
}
- (IBAction)enablePosterize:(id)sender
{
BOOL b_state = [o_posterize_ckb state];
[self setVideoFilter: "posterize" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "posterize" on: b_state];
[o_posterize_fld setEnabled: b_state];
[o_posterize_stp setEnabled: b_state];
[o_posterize_lbl setEnabled: b_state];
......@@ -1351,42 +1125,42 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)posterizeModifierChanged:(id)sender
{
[self setVideoFilterProperty: "posterize-level" forFilter: "posterize" integer: [o_posterize_fld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "posterize-level" forFilter: "posterize" integer: [o_posterize_fld intValue]];
}
- (IBAction)enableBlur:(id)sender
{
BOOL b_state = [o_blur_ckb state];
[self setVideoFilter: "motionblur" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "motionblur" on: b_state];
[o_blur_sld setEnabled: b_state];
[o_blur_lbl setEnabled: b_state];
}
- (IBAction)blurModifierChanged:(id)sender
{
[self setVideoFilterProperty: "blur-factor" forFilter: "motionblur" integer: [sender intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "blur-factor" forFilter: "motionblur" integer: [sender intValue]];
[sender setToolTip: [NSString stringWithFormat:@"%i", [sender intValue]]];
}
- (IBAction)enableMotionDetect:(id)sender
{
[self setVideoFilter: "motiondetect" on: [o_motiondetect_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "motiondetect" on: [o_motiondetect_ckb state]];
}
- (IBAction)enableWaterEffect:(id)sender
{
[self setVideoFilter: "ripple" on: [o_watereffect_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "ripple" on: [o_watereffect_ckb state]];
}
- (IBAction)enableWaves:(id)sender
{
[self setVideoFilter: "wave" on: [o_waves_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "wave" on: [o_waves_ckb state]];
}
- (IBAction)enablePsychedelic:(id)sender
{
[self setVideoFilter: "psychedelic" on: [o_psychedelic_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "psychedelic" on: [o_psychedelic_ckb state]];
}
#pragma mark -
......@@ -1394,22 +1168,23 @@ static VLCVideoEffects *_o_sharedInstance = nil;
- (IBAction)enableAddText:(id)sender
{
BOOL b_state = [o_addtext_ckb state];
VLCCoreInteraction *vci_si = [VLCCoreInteraction sharedInstance];
[o_addtext_pos_pop setEnabled: b_state];
[o_addtext_pos_lbl setEnabled: b_state];
[o_addtext_text_lbl setEnabled: b_state];
[o_addtext_text_fld setEnabled: b_state];
[self setVideoFilter: "marq" on: b_state];
[self setVideoFilterProperty: "marq-marquee" forFilter: "marq" string: (char *)[[o_addtext_text_fld stringValue] UTF8String]];
[self setVideoFilterProperty: "marq-position" forFilter: "marq" integer: [[o_addtext_pos_pop selectedItem] tag]];
[vci_si setVideoFilter: "marq" on: b_state];
[vci_si setVideoFilterProperty: "marq-marquee" forFilter: "marq" string: (char *)[[o_addtext_text_fld stringValue] UTF8String]];
[vci_si setVideoFilterProperty: "marq-position" forFilter: "marq" integer: [[o_addtext_pos_pop selectedItem] tag]];
}
- (IBAction)addTextModifierChanged:(id)sender
{
if (sender == o_addtext_text_fld)
[self setVideoFilterProperty: "marq-marquee" forFilter: "marq" string: (char *)[[o_addtext_text_fld stringValue] UTF8String]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "marq-marquee" forFilter: "marq" string: (char *)[[o_addtext_text_fld stringValue] UTF8String]];
else
[self setVideoFilterProperty: "marq-position" forFilter: "marq" integer: [[o_addtext_pos_pop selectedItem] tag]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "marq-position" forFilter: "marq" integer: [[o_addtext_pos_pop selectedItem] tag]];
}
- (IBAction)enableAddLogo:(id)sender
......@@ -1422,24 +1197,24 @@ static VLCVideoEffects *_o_sharedInstance = nil;
[o_addlogo_logo_lbl setEnabled: b_state];
[o_addlogo_transparency_sld setEnabled: b_state];
[o_addlogo_transparency_lbl setEnabled: b_state];
[self setVideoFilter: "logo" on: b_state];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "logo" on: b_state];
}
- (IBAction)addLogoModifierChanged:(id)sender
{
if (sender == o_addlogo_logo_fld)
[self setVideoFilterProperty: "logo-file" forFilter: "logo" string: (char *)[[o_addlogo_logo_fld stringValue] UTF8String]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "logo-file" forFilter: "logo" string: (char *)[[o_addlogo_logo_fld stringValue] UTF8String]];
else if (sender == o_addlogo_pos_pop)
[self setVideoFilterProperty: "logo-position" forFilter: "logo" integer: [[o_addlogo_pos_pop selectedItem] tag]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "logo-position" forFilter: "logo" integer: [[o_addlogo_pos_pop selectedItem] tag]];
else {
[self setVideoFilterProperty: "logo-opacity" forFilter: "logo" integer: [o_addlogo_transparency_sld intValue]];
[[VLCCoreInteraction sharedInstance] setVideoFilterProperty: "logo-opacity" forFilter: "logo" integer: [o_addlogo_transparency_sld intValue]];
[o_addlogo_transparency_sld setToolTip: [NSString stringWithFormat:@"%i", [o_addlogo_transparency_sld intValue]]];
}
}
- (IBAction)enableAnaglyph:(id)sender
{
[self setVideoFilter: "anaglyph" on: [o_anaglyph_ckb state]];
[[VLCCoreInteraction sharedInstance] setVideoFilter: "anaglyph" on: [o_anaglyph_ckb state]];
}
@end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment