mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 23:32:26 +00:00
7f8d069087
the slider on the touch bar was always updated when any of the related properties changed their value. this is partially dependent on the refresh rate of the video, in the case of time-pos. too many updates to touch bar impact the render performance. to prevent this we only update the slider when necessary, when the touch bar or the touch bar item is visible. the touch bar items only need a granularity of seconds without any decimals, but the time-pos property provides a granularity with decimals. we floor those values and only update the touch bar items when we have at least a 1 second difference. we also check for the visibility of the touch bar and its items. Fixes #8477
47 lines
1.9 KiB
Objective-C
47 lines
1.9 KiB
Objective-C
/*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
#import "osdep/macosx_application_objc.h"
|
|
|
|
#define BASE_ID @"io.mpv.touchbar"
|
|
static NSTouchBarCustomizationIdentifier customID = BASE_ID;
|
|
static NSTouchBarItemIdentifier seekBar = BASE_ID ".seekbar";
|
|
static NSTouchBarItemIdentifier play = BASE_ID ".play";
|
|
static NSTouchBarItemIdentifier nextItem = BASE_ID ".nextItem";
|
|
static NSTouchBarItemIdentifier previousItem = BASE_ID ".previousItem";
|
|
static NSTouchBarItemIdentifier nextChapter = BASE_ID ".nextChapter";
|
|
static NSTouchBarItemIdentifier previousChapter = BASE_ID ".previousChapter";
|
|
static NSTouchBarItemIdentifier cycleAudio = BASE_ID ".cycleAudio";
|
|
static NSTouchBarItemIdentifier cycleSubtitle = BASE_ID ".cycleSubtitle";
|
|
static NSTouchBarItemIdentifier currentPosition = BASE_ID ".currentPosition";
|
|
static NSTouchBarItemIdentifier timeLeft = BASE_ID ".timeLeft";
|
|
|
|
struct mpv_event;
|
|
|
|
@interface TouchBar : NSTouchBar <NSTouchBarDelegate>
|
|
|
|
-(void)processEvent:(struct mpv_event *)event;
|
|
|
|
@property(nonatomic, retain) Application *app;
|
|
@property(nonatomic, retain) NSDictionary *touchbarItems;
|
|
@property(nonatomic, assign) double duration;
|
|
@property(nonatomic, assign) double position;
|
|
@property(nonatomic, assign) int pause;
|
|
|
|
@end
|