show_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,184 行 · 第 1/4 页
LST
1,184 行
81 * Returns : 全局变量
82 g_file_num, 总录音文件个数
83 *
84 * Notes :
85 *
86 ********************************************************************************
87 */
88 void parse_total_num(void)
89 {
\ 00F0 C5 PUSH BC
\ 00F1 D5 PUSH DE
\ 00F2 21F4FF LD HL,65524
\ 00F5 39 ADD HL,SP
\ 00F6 F9 LD SP,HL
90 //fselInit(FSEL_TYPE_VOICE, FSEL_DIR_SEQUENCE, 1);
91 //fselSetLocation(&g_record_vars.location);
92 //g_file_num = fselGetTotal();
93
94 char name[12];
95
96 g_file_num = 0;
\ 00F7 AF XOR A
\ 00F8 320000 LD (g_file_num),A
97
98 if(FS_Dir(name, voice_ext[0], FS_DIR_FILE))
\ 00FB 0E80 LD C,128
\ 00FD C5 PUSH BC
\ 00FE 010000 LD BC,voice_ext
\ 0101 EB EX DE,HL
\ 0102 CD0000 CALL LWRD FS_Dir
\ 0105 E1 POP HL
\ 0106 B7 OR A
\ 0107 2822 JR Z,?0012
\ 0109 ?0010:
99 {
100 g_file_num++;
\ 0109 210000 LD HL,g_file_num
\ 010C 34 INC (HL)
\ 010D ?0013:
101
102 while( FS_Dir(name, voice_ext[0], FS_DIR_FILE_CONT))
\ 010D 0E00 LD C,0
\ 010F C5 PUSH BC
\ 0110 010000 LD BC,voice_ext
\ 0113 210200 LD HL,2
\ 0116 39 ADD HL,SP
\ 0117 EB EX DE,HL
\ 0118 CD0000 CALL LWRD FS_Dir
\ 011B E1 POP HL
\ 011C B7 OR A
\ 011D 280C JR Z,?0012
\ 011F ?0014:
103 {
104 g_file_num++;
\ 011F 210000 LD HL,g_file_num
\ 0122 34 INC (HL)
105 CLEAR_WATCHDOG();
\ 0123 DB4E IN A,(78)
\ 0125 CBDF SET 3,A
\ 0127 D34E OUT (78),A
106 }
107 }
\ 0129 18E2 JR ?0013
\ 012B ?0012:
\ 012B ?0011:
108
109 }
\ 012B 210C00 LD HL,12
\ 012E 39 ADD HL,SP
\ 012F F9 LD SP,HL
\ 0130 D1 POP DE
\ 0131 C1 POP BC
\ 0132 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0135 format_filename:
110 /*
111 ********************************************************************************
112 * Description : 格式化文件名
113 *
114 * Arguments : 全局变量
115 g_record_vars.rec_type
116 *
117 * Returns : 全局变量
118 g_record_vars.location.filename
119 *
120 * Notes : RECxx.WAV or RECxx.ACT
121 *
122 ********************************************************************************
123 */
124 void format_filename(void)
125 {
\ 0135 C5 PUSH BC
\ 0136 D5 PUSH DE
126 //date_t date;
127
128 strcpy(g_record_vars.location.filename, "REC");
\ 0137 110000 LD DE,?0015
\ 013A 212400 LD HL,g_record_vars+36
\ 013D CD0000 CALL LWRD ?STRCPY_L11
129 //REC000.WAV
130 itoa_3(g_record_vars.wav_num, &g_record_vars.location.filename[3]);
\ 0140 012700 LD BC,g_record_vars+39
\ 0143 ED5B0600 LD DE,(g_record_vars+6)
\ 0147 3E00 LD A,BYTE3 itoa_3
\ 0149 210000 LD HL,LWRD itoa_3
\ 014C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
131 strcat(g_record_vars.location.filename, " WAV");
\ 014F 110400 LD DE,?0016
\ 0152 212400 LD HL,g_record_vars+36
\ 0155 CD0000 CALL LWRD ?STRCAT_L11
132
133 }
\ 0158 D1 POP DE
\ 0159 C1 POP BC
\ 015A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 015D gen_filename:
134 /*
135 ********************************************************************************
136 * Description : 生成新的录音文件名
137 *
138 * Arguments : 全局变量
139 g_record_vars.rec_type
140 *
141 * Returns : TRUE, 成功
142 FALSE, 编号01~99 文件都存在
143 全局变量
144 g_record_vars.location
145 g_record_vars.wav_num
146 g_file_name_time[], 文件名,文件时间字符串
147 *
148 * Notes :
149 *
150 ********************************************************************************
151 */
152 BOOL gen_filename(void)
153 {
\ 015D C5 PUSH BC
\ 015E D5 PUSH DE
\ 015F DDE5 PUSH IX
\ 0161 F5 PUSH AF
\ 0162 F5 PUSH AF
154 date_t date;
155
156 int num = GenNewName(&g_record_vars.location);
\ 0163 110A00 LD DE,g_record_vars+10
\ 0166 3E00 LD A,BYTE3 GenNewName
\ 0168 210000 LD HL,LWRD GenNewName
\ 016B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
157
158 //check 01~99 full
159 if(num == 0) return FALSE;
\ 016E 7D LD A,L
\ 016F B4 OR H
\ 0170 2003 JR NZ,?0018
\ 0172 ?0017:
\ 0172 6F LD L,A
\ 0173 1853 JR ?0020
\ 0175 ?0018:
160 g_record_vars.wav_num = num;
\ 0175 220600 LD (g_record_vars+6),HL
161
162 //build g_file_name_time for display
163 memcpy(g_file_name_time, g_record_vars.location.filename, sizeof("REC00"));
\ 0178 010600 LD BC,6
\ 017B 110000 LD DE,g_file_name_time
\ 017E 212400 LD HL,g_record_vars+36
\ 0181 EDB0 LDIR
164 TM_GetDate(&date, 0);
\ 0183 69 LD L,C
\ 0184 60 LD H,B
\ 0185 39 ADD HL,SP
\ 0186 EB EX DE,HL
\ 0187 CD0000 CALL LWRD TM_GetDate
165 //g_file_build_time[5] = ' '; //"WAVxx "
166 itoa_4(date.year, &g_file_build_time[0]);
\ 018A 010000 LD BC,g_file_build_time
\ 018D 210000 LD HL,0
\ 0190 39 ADD HL,SP
\ 0191 5E LD E,(HL)
\ 0192 23 INC HL
\ 0193 56 LD D,(HL)
\ 0194 3E00 LD A,BYTE3 itoa_4
\ 0196 210000 LD HL,LWRD itoa_4
\ 0199 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
167 g_file_build_time[4] = '/'; //"WAVxx 2004/"
\ 019C 3E2F LD A,47
\ 019E 320400 LD (g_file_build_time+4),A
168 itoa_2(date.month, &g_file_build_time[5]);
\ 01A1 010500 LD BC,g_file_build_time+5
\ 01A4 210200 LD HL,2
\ 01A7 39 ADD HL,SP
\ 01A8 5E LD E,(HL)
\ 01A9 3E00 LD A,BYTE3 itoa_2
\ 01AB 210000 LD HL,LWRD itoa_2
\ 01AE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
169 g_file_build_time[7] = '/'; //"WAVxx 2004/01/"
\ 01B1 3E2F LD A,47
\ 01B3 320700 LD (g_file_build_time+7),A
170 itoa_2(date.day, &g_file_build_time[8]);
\ 01B6 010800 LD BC,g_file_build_time+8
\ 01B9 210300 LD HL,3
\ 01BC 39 ADD HL,SP
\ 01BD 5E LD E,(HL)
\ 01BE 3E00 LD A,BYTE3 itoa_2
\ 01C0 210000 LD HL,LWRD itoa_2
\ 01C3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
171 //"WAVxx 2004/01/01"
172
173 return TRUE;
\ 01C6 2E01 LD L,1
174 }
\ 01C8 ?0020:
\ 01C8 F1 POP AF
\ 01C9 F1 POP AF
\ 01CA DDE1 POP IX
\ 01CC D1 POP DE
\ 01CD C1 POP BC
\ 01CE C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01D1 show_stop:
175
176 /*
177 ********************************************************************************
178 * Description : 停止界面
179 *
180 * Arguments : auto_start, 是否自动开始录音
181 *
182 * Returns :
183 *
184 * Notes :
185 *
186 ********************************************************************************
187 */
188 int show_stop(BOOL auto_start)
189 {
\ 01D1 C5 PUSH BC
\ 01D2 FDE5 PUSH IY
\ 01D4 DDE5 PUSH IX
\ 01D6 DD210000 LD IX,0
\ 01DA DD39 ADD IX,SP
\ 01DC D5 PUSH DE
\ 01DD F5 PUSH AF
\ 01DE F5 PUSH AF
\ 01DF F5 PUSH AF
190 int result;
191 char key;
192 //int i=0; //loop counter
193 BOOL need_draw=TRUE;
194 BOOL need_parse=TRUE; //需要分析文件个数,总时间
195 BYTE rec_bitrate; //改变前保存旧的
196 BOOL waiting_keyup=FALSE; //录音后在等待用户按键抬起
197
198 g_menu_active = TRUE;
\ 01E0 3E01 LD A,1
\ 01E2 320B00 LD (g_menu_active),A
199
200 Open_RecRoute(g_rec_from); //根据当前录音源,打开及设置录音通道
\ 01E5 ED5B0000 LD DE,(g_rec_from)
\ 01E9 3E00 LD A,BYTE3 Open_RecRoute
\ 01EB 210000 LD HL,LWRD Open_RecRoute
\ 01EE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01F1 DD36FA01 LD (IX-6),1
\ 01F5 DD36F801 LD (IX-8),1
\ 01F9 ?0093:
\ 01F9 DD36FB00 LD (IX-5),0
\ 01FD ?0022:
201
202 while(1)
203 {
204 //check if need count num & time
205 if(need_parse)
\ 01FD AF XOR A
\ 01FE DDB6F8 OR (IX-8)
\ 0201 CAF602 JP Z,?0025
\ 0204 ?0024:
206 {
207 parse_total_num();
\ 0204 3E00 LD A,BYTE3 parse_total_num
\ 0206 21F000 LD HL,LWRD parse_total_num
\ 0209 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
208
209 //recommend by ryan
210 if(g_file_num >= 200)
\ 020C 3A0000 LD A,(g_file_num)
\ 020F FEC8 CP 200
\ 0211 3835 JR C,?0027
\ 0213 ?0026:
211 {
212 //print some error message
213 show_error(MDIROUT);
\ 0213 118D01 LD DE,397
\ 0216 CD9704 CALL LWRD ?0100
214
215 //进入选项让用户选择其他目录,或者改类型
216 rec_bitrate = g_record_vars.rec_bitrate;
\ 0219 3A0300 LD A,(g_record_vars+3)
\ 021C DD77FC LD (IX-4),A
217
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?