1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //
- // BabyBeats.m
- // BabyBluetoothAppDemo
- //
- // Created by ZTELiuyw on 15/9/15.
- // Copyright (c) 2015年 刘彦玮. All rights reserved.
- //
- #import "BabyRhythm.h"
- #import "BabyDefine.h"
- @implementation BabyRhythm {
- BOOL isOver;
- BBBeatsBreakBlock blockOnBeatBreak;
- BBBeatsOverBlock blockOnBeatOver;
- }
- - (instancetype)init {
- self = [super init];
- if (self) {
- //beatsInterval
- _beatsInterval = KBABYRHYTHM_BEATS_DEFAULT_INTERVAL;
- }
- return self;
- }
- - (void)beats {
-
- if (isOver) {
- BabyLog(@">>>beats isOver");
- return;
- }
-
- BabyLog(@">>>beats at :%@",[NSDate date]);
- if (self.beatsTimer) {
- [self.beatsTimer setFireDate: [[NSDate date]dateByAddingTimeInterval:self.beatsInterval]];
- }
- else {
- self.beatsTimer = [NSTimer timerWithTimeInterval:self.beatsInterval target:self selector:@selector(beatsBreak) userInfo:nil repeats:YES];
- [self.beatsTimer setFireDate: [[NSDate date]dateByAddingTimeInterval:self.beatsInterval]];
- [[NSRunLoop currentRunLoop] addTimer:self.beatsTimer forMode:NSRunLoopCommonModes];
- }
- }
- - (void)beatsBreak {
- BabyLog(@">>>beatsBreak :%@",[NSDate date]);
- [self.beatsTimer setFireDate:[NSDate distantFuture]];
- if (blockOnBeatBreak) {
- blockOnBeatBreak(self);
- }
- }
- - (void)beatsOver {
- BabyLog(@">>>beatsOver :%@",[NSDate date]);
- [self.beatsTimer setFireDate:[NSDate distantFuture]];
- isOver = YES;
- if (blockOnBeatOver) {
- blockOnBeatOver(self);
- }
-
- }
- - (void)beatsRestart {
- BabyLog(@">>>beatsRestart :%@",[NSDate date]);
- isOver = NO;
- [self beats];
- }
- - (void)setBlockOnBeatsBreak:(void(^)(BabyRhythm *bry))block {
- blockOnBeatBreak = block;
- }
- - (void)setBlockOnBeatsOver:(void(^)(BabyRhythm *bry))block {
- blockOnBeatOver = block;
- }
- @end
|