#import "bookmarks.h"
#import "wizard.h"
-#import <vlc_interface.h>
#import "CompatibilityFixes.h"
@interface VLCBookmarks (Internal)
[o_bookmarks_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
[self initStrings];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(inputChangedEvent:)
+ name:VLCInputChangedNotification
+ object:nil];
}
- (void)dealloc
if (p_old_input)
vlc_object_release(p_old_input);
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+
[super dealloc];
}
[o_edit_lbl_bytes setStringValue: _NS("Position")];
}
+- (void)updateCocoaWindowLevel:(NSInteger)i_level
+{
+ if (o_bookmarks_window && [o_bookmarks_window isVisible] && [o_bookmarks_window level] != i_level)
+ [o_bookmarks_window setLevel: i_level];
+}
+
- (void)showBookmarks
{
/* show the window, called from intf.m */
[o_bookmarks_window displayIfNeeded];
+ [o_bookmarks_window setLevel: [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]];
[o_bookmarks_window makeKeyAndOrderFront:nil];
}
+-(void)inputChangedEvent:(NSNotification *)o_notification
+{
+ [o_tbl_dataTable reloadData];
+}
+
- (IBAction)add:(id)sender
{
/* add item to list */
return;
}
- [o_edit_fld_name setStringValue: [NSString stringWithFormat:@"%s", pp_bookmarks[row]->psz_name]];
+ [o_edit_fld_name setStringValue: toNSStr(pp_bookmarks[row]->psz_name)];
int total = pp_bookmarks[row]->i_time_offset/ 1000000;
int hour = total / (60*60);
int min = (total - hour*60*60) / 60;
}
char *psz_uri = input_item_GetURI(input_GetItem(p_input));
- [[[VLCMain sharedInstance] wizard] initWithExtractValuesFrom: [NSString stringWithFormat:@"%lli", pp_bookmarks[i_first]->i_time_offset/1000000] to: [NSString stringWithFormat:@"%lli", pp_bookmarks[i_second]->i_time_offset/1000000] ofItem: [NSString stringWithFormat:@"%s", psz_uri]];
+ [[[VLCMain sharedInstance] wizard] initWithExtractValuesFrom: [NSString stringWithFormat:@"%lli", pp_bookmarks[i_first]->i_time_offset/1000000] to: [NSString stringWithFormat:@"%lli", pp_bookmarks[i_second]->i_time_offset/1000000] ofItem: toNSStr(psz_uri)];
free(psz_uri);
vlc_object_release(p_input);
[o_tbl_dataTable reloadData];
}
-/*****************************************************************************
- * callback stuff
- *****************************************************************************/
-
--(id)dataTable
-{
- return o_tbl_dataTable;
-}
-
/*****************************************************************************
* data source methods
*****************************************************************************/
if (!p_input)
return 0;
- else if (input_Control(p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks) != VLC_SUCCESS) {
- vlc_object_release(p_input);
+
+ int returnValue = input_Control(p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks);
+ vlc_object_release(p_input);
+
+ if (returnValue != VLC_SUCCESS)
return 0;
- } else {
- vlc_object_release(p_input);
- // Clear the bookmark list
- for (int i = 0; i < i_bookmarks; i++)
- vlc_seekpoint_Delete(pp_bookmarks[i]);
- free(pp_bookmarks);
- return i_bookmarks;
- }
+
+ for (int i = 0; i < i_bookmarks; i++)
+ vlc_seekpoint_Delete(pp_bookmarks[i]);
+ free(pp_bookmarks);
+
+ return i_bookmarks;
}
- (id)tableView:(NSTableView *)theDataTable objectValueForTableColumn: (NSTableColumn *)theTableColumn row: (NSInteger)row
input_thread_t * p_input = pl_CurrentInput(VLCIntf);
seekpoint_t **pp_bookmarks;
int i_bookmarks;
- id ret;
+ id ret = @"";
if (!p_input)
return @"";
else if (input_Control(p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks) != VLC_SUCCESS)
ret = @"";
+ else if (row >= i_bookmarks)
+ ret = @"";
else {
NSString * identifier = [theTableColumn identifier];
if ([identifier isEqualToString: @"description"])
- ret = [NSString stringWithFormat:@"%s", pp_bookmarks[row]->psz_name];
+ ret = toNSStr(pp_bookmarks[row]->psz_name);
else if ([identifier isEqualToString: @"size_offset"])
ret = [NSString stringWithFormat:@"%lli", pp_bookmarks[row]->i_byte_offset];
else if ([identifier isEqualToString: @"time_offset"]) {