//
//  NowDate.m
//  ZeroRec/Komadori
//
//  Created by AIG-Soft on 11/04/11.
//  Copyright 2011 AIG-Soft. All rights reserved.
//

#import "NowDate.h"
#import	"Setup.h"
#import "libs.h"
#import "AppDelegate.h"

@interface NowDate()
{
	AppDelegate *app;
	Setup *setup;
}
@end

@implementation NowDate

// 現在日時の表示
//--------------------------------------

// タイマーチェックによる現在時刻色設定
-(void)setColor
{
UIColor *col;
#ifdef USE_TIMER
	if ([setup checkRecTimer]) {
		col=[UIColor greenColor];
	} else {
		col=[UIColor redColor];
	}
#else
	col=[UIColor greenColor];
#endif
	labelNowDate.textColor=col;
}

// 現在日時の表示(タイマー判定付き)
-(void)display:(id)sender
{
//	printSelf();
	NSDate *date=[NSDate date];	// 一旦インスタンスに入れないとメモリリークを起こす
	labelNowDate.text=dateStringWithoutGMT(date);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"        // 警告回避のため
	if ([target_ performSelector:selector_ withObject:nil]) {
		//nslog(@"現在時刻色の自立チェック:date=%@",str);
		// 録画中以外は自立チェックが必要
		// ただし1分1回で十分
		//	   0123456789012345678
		// str=yyyy/mm/dd hh:mm:ss(日付の部分はローカライズで変わるが秒の位置は変わらない)
		//nslog(@"substr=%@",[str substringFromIndex:17]);
		if ([[labelNowDate.text substringFromIndex:17]isEqualToString:@"00"]) {
			[self setColor];
		}
		// 初期表示時と録画中はタイマーチェック処理が設定してくれるので省略(負荷削減のため)
	}
#pragma clang diagnostic pop
}

-(void)displayWithColor
{
	[self setColor];	// 現在時刻色設定
	[self display:nil];	// 現在日時表示
}

-(void)start
{
	printSelf();
	dateTimer=[NSTimer timerWithTimeInterval:1.0 // 1秒単位
									  target:self
									selector:@selector(display:)
									userInfo:nil
									 repeats:YES // 時間表示タイマーはリピート
			   ];
	AddTimerToRunLoop(dateTimer); // 実行ループにタイマーを追加する
}

-(void)stop
{
	printSelf();
	if (dateTimer!=nil) {
		[dateTimer invalidate];
	}
}

-(id)initWithLabel:(UILabel *)label target:(id)target selector:(SEL)selector
{
	self=[super init];
	if (self!=nil) {
		// 保存
		app=getAppDelegate();
		setup		=app.setup;
		labelNowDate=label;
		target_		=target;
		selector_	=selector;
	}
	return (self);
}

-(void)dealloc
{
	[self stop];
}

@end
