InputSoundController.m
4.12キロバイト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//
// InputSoundController.m
// jacket_test_ios
//
// Created by ドラッサル 亜嵐 on 2017/10/06.
// Copyright © 2017年 ドラッサル 亜嵐. All rights reserved.
//
#import "InputSoundController.h"
@interface InputSoundController ()
@property (strong, nonatomic) IBOutlet UIButton *btn0;
@property (strong, nonatomic) IBOutlet UIButton *btn1;
@end
@implementation InputSoundController {
UIView *_mask;
NSTimer *_writeResponseTimer;
bool ignoreWriteResponse;
id lastButton;
NSInteger newState;
}
@synthesize protocol;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
[_mask removeFromSuperview];
[self dismissViewControllerAnimated:YES completion:Nil];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
_lastProtocolDelegate = protocol.delegate;
protocol.delegate = self;
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
protocol.delegate = _lastProtocolDelegate;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
- (void)showAlert {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ジャケットの設定"
message:@"設定が保存されました。"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
- (void)showAlert:(NSString*)title message:(NSString*)message{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
- (void)showMask {
_mask = [[UIView alloc] initWithFrame:[self.view frame]];
[_mask setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.25]];
[self.view addSubview:_mask];
}
-(void)writeResponseTimeout:(NSTimer *)timer {
ignoreWriteResponse = true;
[self showAlert:@"ジャケットの設定" message:@"設定が保存されない。"];
}
- (void)protocolDidGetData:(NSString *)dataType data:(NSString *)dataData {
if([dataType isEqualToString:@"writeSound"]){
if(ignoreWriteResponse) return;
[_writeResponseTimer invalidate];
if([dataData isEqual:@"OK"]) {
[self showAlert:@"ジャケットの設定" message:@"設定が保存されました。"];
} else {
[self showAlert:@"ジャケットの設定" message:@"設定が保存されない。"];
}
}
}
- (IBAction)btn0:(id)sender {
if(lastButton) {
[lastButton setBackgroundColor:[UIColor clearColor]];
}
lastButton = sender;
newState = 0;
[sender setBackgroundColor:[UIColor yellowColor]];
}
- (IBAction)btn1:(id)sender {
if(lastButton) {
[lastButton setBackgroundColor:[UIColor clearColor]];
}
lastButton = sender;
newState = 1;
[sender setBackgroundColor:[UIColor yellowColor]];
}
- (IBAction)cancelButtonClicked:(id)sender {
[self dismissViewControllerAnimated:YES completion:Nil];
}
- (IBAction)saveButtonClicked:(id)sender {
ignoreWriteResponse = false;
[self showMask];
[protocol putData:@"writeSound" data:[NSString stringWithFormat:@"%ld",newState]];
_writeResponseTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self selector:@selector(writeResponseTimeout:) userInfo: nil repeats:NO];
}
@end