Subversion Repositories svn.mios

Rev

Rev 696 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 696 Rev 738
Line 146... Line 146...
146
   
146
147
    public void requestPatchBuffer(int coreNumber, int patch, int bank) {
147
    public void requestPatchBuffer(int coreNumber, int patch, int bank) {
148
        if (isDone()) {
148
        if (isDone()) {
149
            resetForwarding();
149
            resetForwarding();
150
            requestPatch = new int[]{patch};
150
            requestPatch = new int[] { patch };
151
            progress = new ProgressMonitor(null, "", "Receiving SysEx data...", 0, requestPatch.length);       
151
            progress = new ProgressMonitor(null, "", "Receiving SysEx data...",
-
 
152
                    0, requestPatch.length);
152
            STATE = COLLECTING;
153
            STATE = COLLECTING;
153
            timer.start();
154
            timer.start();
154
            requestCount = 0;  
155
            requestCount = 0;
155
            String message;
156
            String message;
156
            if (bank==-1) {
157
            if (bank == -1) {
Line 172... Line 173...
172
        if (requestCount < requestPatch.length) {
173
        if (requestCount < requestPatch.length) {
173
            timer.restart();
174
            timer.restart();
174
            String message = "";
175
            String message = "";
175
            if (tempSyxType==ENSEMBLE) {
176
            if (tempSyxType == ENSEMBLE) {
176
                message = SIDSysexInfo.hardEnsembleRequestSysex;               
177
                message = SIDSysexInfo.hardEnsembleRequestSysex;
-
 
178
                message = message.replace("<ensemble>",
177
                message = message.replace("<ensemble>", zeroPadToHex(requestPatch[requestCount]));
179
                        zeroPadToHex(requestPatch[requestCount]));
178
            } else if (tempSyxType==PATCH){
180
            } else if (tempSyxType == PATCH) {
179
                message = SIDSysexInfo.hardPatchRequestSysex;
181
                message = SIDSysexInfo.hardPatchRequestSysex;
180
                message = message.replace("<bank>", zeroPadToHex(requestBank));
182
                message = message.replace("<bank>", zeroPadToHex(requestBank));
-
 
183
                message = message.replace("<patch>",
181
                message = message.replace("<patch>", zeroPadToHex(requestPatch[requestCount]));                    
184
                        zeroPadToHex(requestPatch[requestCount]));
182
            }  
185
            }
183
            message = message.replace("<device>", "00");
186
            message = message.replace("<device>", "00");
184
            sendSyx(message);
187
            sendSyx(message);
185
        } else {
188
        } else {
186
            stopRequest();
189
            stopRequest();
Line 204... Line 207...
204
            progress.close();
207
            progress.close();
205
        }
208
        }
206
    }
209
    }
207
210
208
    private void scanSyx(String m) {
211
    private void scanSyx(String m) {
-
 
212
        if (progress.isCanceled()
209
        if (progress.isCanceled() || (tempResponse.substring(0, 5).equals("ERROR"))) {
213
                || (tempResponse.substring(0, 5).equals("ERROR"))) {
210
            stopScan();
214
            stopScan();
211
        } else if (tempResponse.substring(0, 12).equals("ACKNOWLEDGED")) {
215
        } else if (tempResponse.substring(0, 12).equals("ACKNOWLEDGED")) {
212
            stopScan();
216
            stopScan();
213
            pickMeUp = Integer.parseInt(m.substring(14, 16), 16);
217
            pickMeUp = Integer.parseInt(m.substring(14, 16), 16);
214
            setChanged();
218
            setChanged();
Line 221... Line 225...
221
        if (progress.isCanceled()) {
225
        if (progress.isCanceled()) {
222
            stopRequest();
226
            stopRequest();
223
        } else {
227
        } else {
224
            if (!(m.indexOf(SIDSysexInfo.acknowledgedSysex.replace("<device>",
228
            if (!(m.indexOf(SIDSysexInfo.acknowledgedSysex.replace("<device>",
225
                    "00")) == 0)) {
229
                    "00")) == 0)) {
226
                if (m.substring(0, 2).equalsIgnoreCase("F0")) { // select next array item with each F0
230
                if (m.substring(0, 2).equalsIgnoreCase("F0")) { // select next
-
 
231
                                                                // array item
-
 
232
                                                                // with each F0
227
                    tempSyx = m;
233
                    tempSyx = m;
228
                } else {
234
                } else {
229
                    if (m.substring(0, 2).equalsIgnoreCase("F7")) { // for windows (1024 byte limit, F7 added at beginning of next chunk)
235
                    if (m.substring(0, 2).equalsIgnoreCase("F7")) { // for
-
 
236
                                                                    // windows
-
 
237
                                                                    // (1024
-
 
238
                                                                    // byte
-
 
239
                                                                    // limit, F7
-
 
240
                                                                    // added at
-
 
241
                                                                    // beginning
-
 
242
                                                                    // of next
-
 
243
                                                                    // chunk)
230
                        m = m.substring(2);
244
                        m = m.substring(2);
231
                    }
245
                    }
232
                    tempSyx += m;
246
                    tempSyx += m;
233
                }
247
                }
234
                timer.restart();
248
                timer.restart();
Line 291... Line 305...
291
            for (int i = 0; i < p.length; i++) {
305
            for (int i = 0; i < p.length; i++) {
292
                String dataStr = p[i].getSysexString();
306
                String dataStr = p[i].getSysexString();
293
                String strMessage;
307
                String strMessage;
294
                if (p[0].isEnsemble()) {
308
                if (p[0].isEnsemble()) {
295
                    strMessage = SIDSysexInfo.hardEnsembleDumpSysex;
309
                    strMessage = SIDSysexInfo.hardEnsembleDumpSysex;
296
                    strMessage = strMessage.replace("<ensemble>", zeroPadToHex(patchNumber[i]));                   
310
                    strMessage = strMessage.replace("<ensemble>",
-
 
311
                            zeroPadToHex(patchNumber[i]));
297
                } else {
312
                } else {
298
                    strMessage = SIDSysexInfo.hardPatchDumpSysex;
313
                    strMessage = SIDSysexInfo.hardPatchDumpSysex;
299
                    strMessage = strMessage.replace("<bank>", zeroPadToHex(bankNumber));
314
                    strMessage = strMessage.replace("<bank>",
-
 
315
                            zeroPadToHex(bankNumber));
300
                    strMessage = strMessage.replace("<patch>", zeroPadToHex(patchNumber[i]));                  
316
                    strMessage = strMessage.replace("<patch>",
-
 
317
                            zeroPadToHex(patchNumber[i]));
301
                }              
318
                }
302
                strMessage = strMessage.replace("<device>", zeroPadToHex(masterCore));
319
                strMessage = strMessage.replace("<device>",
-
 
320
                        zeroPadToHex(masterCore));
303
                strMessage = strMessage.replace("<data><checksum>", dataStr);
321
                strMessage = strMessage.replace("<data><checksum>", dataStr);
304
                s[i + 1] = strMessage;
322
                s[i + 1] = strMessage;
305
            }
323
            }
306
            startDump(s);
324
            startDump(s);
307
        }
325
        }
Line 313... Line 331...
313
            if (p.isEnsemble()) {
331
            if (p.isEnsemble()) {
314
                strMessage = SIDSysexInfo.editEnsembleDumpSysex;
332
                strMessage = SIDSysexInfo.editEnsembleDumpSysex;
315
            } else {
333
            } else {
316
                strMessage = SIDSysexInfo.editPatchDumpSysex;
334
                strMessage = SIDSysexInfo.editPatchDumpSysex;
317
            }
335
            }
318
            strMessage = strMessage.replace("<device>", zeroPadToHex(masterCore));
336
            strMessage = strMessage.replace("<device>",
-
 
337
                    zeroPadToHex(masterCore));
319
            strMessage = strMessage.replace("<data><checksum>", p.getSysexString());
338
            strMessage = strMessage.replace("<data><checksum>", p
-
 
339
                    .getSysexString());
320
            startDump(new String[] { getForwardSyx(cores), strMessage });
340
            startDump(new String[] { getForwardSyx(cores), strMessage });
321
        }
341
        }
322
    }
342
    }
323
   
343
324
    public void dumpPatchBank(Bank b, int bankNumber) {
344
    public void dumpPatchBank(Bank b, int bankNumber) {