Compare commits

..

6 commits

Author SHA1 Message Date
Christopher Snowhill
6f35cd579b WIP: Attempt to actually use the custom icons
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:56:24 -07:00
Christopher Snowhill
93da95722c Add new status icon resources
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:56:24 -07:00
Christopher Snowhill
9ec2f1b9df Icon: Liquid Glass style icon for macOS Tahoe
Still need to adjust the custom dock icon for this.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:56:24 -07:00
Christopher Snowhill
c630cae1b8 Apply recommended settings
Except for deployment target, which is staying at 10.13 for now.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:56:24 -07:00
Christopher Snowhill
1601206b57 Playback: Redo seeking to stick with the open file
Again, this is for the best anyway. Reopening the file repeatedly really
was slow, and resulted in deadlocks with rapid fire seeking, especially
with the Touch Bar scrubber control.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:52:58 -07:00
Christopher Snowhill
6655dd34ec Playback: Relax waiting on main thread a bit
Relax it from cycling for 1ms to 10ms. This isn't absolutely time
critical, after all, since this usually happens when there is some
buffering.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2025-06-26 21:51:07 -07:00

View file

@ -196,18 +196,28 @@
}
- (void)seekToTime:(double)time {
[output fadeOutBackground];
[output setVolume:volume];
[output seek:time];
[bufferChain seek:time];
CogStatus status = (CogStatus)currentPlaybackStatus;
NSURL *url;
BOOL paused = status == CogStatusPaused;
id userInfo;
NSDictionary *rgi;
@synchronized(chainQueue) {
url = [bufferChain streamURL];
userInfo = [bufferChain userInfo];
rgi = [bufferChain rgInfo];
}
[self play:url withUserInfo:userInfo withRGInfo:rgi startPaused:(status == CogStatusPaused) andSeekTo:time andResumeInterval:YES];
if(paused) {
[self setPlaybackStatus:CogStatusPaused waitUntilDone:YES];
if(time > 0.0) {
[self updatePosition:userInfo];
}
} else {
[output fadeIn];
}
}
- (void)setVolume:(double)v {
@ -694,7 +704,7 @@
while(atomic_load_explicit(&refCount, memory_order_relaxed) != 0) {
[semaphore signal]; // Gotta poke this periodically
if(mainThread)
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.001]];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
else
usleep(500);
}