Changeset 798

Show
Ignore:
Timestamp:
2002-03-04 22:24:24 (7 years ago)
Author:
robert
Message:

Getting ready for another release.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mb_tagger/trunk/analyzer.cpp

    r797 r798  
    8787        Metadata data; 
    8888        fileCache->getData(index, eData, data); 
     89        fileCache->getTrm(index, trm); 
     90        if (trm == AnsiString(ANALYZER_REDO_STRING)) 
     91        { 
     92            data.trackId = ""; 
     93            fileCache->setData(index, eData, data); 
     94             
     95            fileCache->getData(index, eId3, data); 
     96            data.trackId = ""; 
     97            fileCache->setData(index, eId3, data); 
     98        } 
     99        trm = ""; 
     100 
    89101        if (!data.trackId.IsEmpty()) 
    90102        { 
    91103            // Yup, toss it into categorized 
    92             fileCache->setStatus(index, eAnalyzedRecognized); 
     104            fileCache->setStatus(index, eAnalyzedPreviously); 
    93105            status = fileName + " was previously matched."; 
    94106            parent->setStatus(status); 
  • mb_tagger/trunk/analyzer.h

    r787 r798  
    66#pragma hdrstop 
    77#include "filecache.h" 
     8 
     9#define ANALYZER_REDO_STRING "<redo>" 
    810 
    911class TMBTaggerForm; 
  • mb_tagger/trunk/defs.h

    r797 r798  
    4747    // States that the whole application will use 
    4848    ePending = 0, 
    49     eUnrecognized = 1, 
    50     eRecognized = 2, 
    51     eError = 3, 
    52     eDeleted = 4,           
     49    eUnrecognized = 1,     // unrecognized 
     50    eRecognized = 2,       // Recognized, but unsaved 
     51    eError = 3,            // Error 
     52    eDeleted = 4,          // Deleted 
     53    eSaved = 5,            // Saved & previously ident 
    5354 
    54     // State that the anylyzer, but the UI will never see 
     55    // State that the analyzer, but the UI will never see 
    5556    eAnalyzedRecognized = -1, 
    5657    eAnalyzedUnrecognized = -2, 
    57     eAnalyzedError = -3 
     58    eAnalyzedPreviously = -3, 
     59    eAnalyzedError = -4 
    5860}; 
    5961 
  • mb_tagger/trunk/filecache.cpp

    r797 r798  
    66    cache = new TList; 
    77    mutex = new TCriticalSection; 
    8     numUnsaved = 0; 
    98} 
    109 
     
    2928    mutex->Acquire(); 
    3029    count = cache->Count; 
    31     mutex->Release(); 
    32  
    33     return count; 
    34 } 
    35  
    36 int FileCache::getNumUnsaved(void) 
    37 { 
    38     int count; 
    39  
    40     mutex->Acquire(); 
    41     count = numUnsaved; 
    4230    mutex->Release(); 
    4331 
     
    10189 
    10290    if (!(entry->data == entry->id3)) 
    103     { 
    10491       entry->changed = true; 
    105        numUnsaved++; 
    106     } 
    10792    else 
    10893       entry->changed = false; 
     
    139124 
    140125        if (status == eDeleted && entry->changed) 
    141         { 
    142126            entry->changed = false; 
    143             numUnsaved--; 
    144         }     
    145127        else 
    146128        if (!(entry->data == entry->id3) && !entry->changed) 
     
    239221              entry->data = data; 
    240222              if (!(entry->data == entry->id3) && !entry->changed) 
    241               { 
    242223                  entry->changed = true; 
    243                   numUnsaved++; 
    244               }     
    245224           break; 
    246225       } 
  • mb_tagger/trunk/filecache.h

    r797 r798  
    2121 
    2222        int getNumItems(void); 
    23         int getNumUnsaved(void); 
    2423        int getNumReadyItems(void); 
    2524        int getNextItem(FileStatus status); 
     
    5049        TCriticalSection *mutex; 
    5150        TList            *cache; 
    52         int               numUnsaved; 
    5351}; 
    5452 
  • mb_tagger/trunk/main.cpp

    r797 r798  
    138138    } 
    139139 
    140     SetWindowPos(Handle, NULL, 
    141                  prefs->getPrefs().windowRect.Left, 
    142                  prefs->getPrefs().windowRect.Top, 
    143                  prefs->getPrefs().windowRect.Right - 
    144                  prefs->getPrefs().windowRect.Left, 
    145                  prefs->getPrefs().windowRect.Bottom - 
    146                  prefs->getPrefs().windowRect.Top, SWP_NOZORDER); 
     140    Width = prefs->getPrefs().windowRect.Right - 
     141            prefs->getPrefs().windowRect.Left; 
     142    Height = prefs->getPrefs().windowRect.Bottom - 
     143            prefs->getPrefs().windowRect.Top; 
     144    Left = prefs->getPrefs().windowRect.Left; 
     145    Top = prefs->getPrefs().windowRect.Top; 
    147146 
    148147    DragAcceptFiles(Handle, true); 
     
    330329    cdLookupButtonClick(NULL); 
    331330} 
     331 
     332//--------------------------------------------------------------------------- 
    332333 
    333334void __fastcall TMBTaggerForm::cdLookupButtonClick(TObject *Sender) 
     
    657658                treeView->Selected = NULL; 
    658659 
    659             fileCache->setStatus(index, eUnrecognized); 
    660660            tview->setStatus(index, ePending, eUnrecognized); 
    661661        } 
     
    671671            if (index == currentIndex) 
    672672                treeView->Selected = NULL; 
    673                  
    674             fileCache->setStatus(index, eRecognized); 
     673 
    675674            tview->setStatus(index, ePending, eRecognized); 
    676675        } 
    677676        else 
    678         { 
    679             enableButtons(); 
    680677            break; 
    681         } 
    682678    } 
    683679 
     
    689685            if (index == currentIndex) 
    690686                treeView->Selected = NULL; 
    691                  
    692             fileCache->setStatus(index, eError); 
     687 
    693688            tview->setStatus(index, ePending, eError); 
    694689        } 
     
    696691            break; 
    697692    } 
     693 
     694    for(;;) 
     695    { 
     696        index = fileCache->getNextItem(eAnalyzedPreviously); 
     697        if (index >= 0) 
     698        { 
     699            if (index == currentIndex) 
     700                treeView->Selected = NULL; 
     701 
     702            tview->setStatus(index, ePending, eSaved); 
     703        } 
     704        else 
     705            break; 
     706    } 
     707    enableButtons(); 
    698708} 
    699709 
     
    706716    BackgroundLookup   *lookup; 
    707717    LookupStatus        status; 
     718    FileStatus          fstatus; 
    708719    char                temp[10]; 
    709720    TTrackLookupDialog *lookupDialog; 
    710     AnsiString          fileName; 
     721    AnsiString          fileName, trm; 
     722    TTreeNode          *node; 
    711723 
    712724    if (trmIdEdit->Text.IsEmpty()) 
     
    765777        MessageDlg(err, mtError, TMsgDlgButtons() << mbOK, 0); 
    766778 
    767         fileCache->setStatus(currentIndex, eError); 
     779        tview->setStatus(currentIndex, eUnrecognized, eError); 
    768780        return; 
    769781    } 
     
    778790    delete lookup; 
    779791 
     792    fileCache->getData(currentIndex, eData, mdata); 
    780793    mdata.trackId = trackMBId; 
    781     fileCache->getFileName(currentIndex, fileName); 
    782     removePath(fileName); 
    783  
    784     artistEdit->Text = mdata.artist; 
    785     albumEdit->Text = mdata.album; 
    786     trackEdit->Text = mdata.track; 
    787     sprintf(temp, "%d", mdata.trackNum); 
    788     trackNumEdit->Text = AnsiString(temp); 
    789     trackIdEdit->Text = mdata.trackId; 
     794    fileCache->setData(currentIndex, eData, mdata); 
     795 
     796    // Add the current match to the submit info 
     797    fileCache->getTrm(currentIndex, trm); 
     798    submitInfo.add(trackMBId, trm); 
     799 
     800    fstatus = fileCache->getStatus(currentIndex); 
     801    tview->setStatus(currentIndex, fstatus, eRecognized); 
    790802 
    791803    setStatus("Track lookup done."); 
    792804    Cursor = crDefault; 
    793  
    794     enableButtons(); 
    795 } 
    796  
    797 //--------------------------------------------------------------------------- 
    798  
    799 void __fastcall TMBTaggerForm::revertButtonClick(TObject *Sender) 
    800 { 
    801     int        trackNum; 
    802     AnsiString artist, album, track, fileName, trm; 
    803     char       temp[10]; 
    804     Metadata   data; 
    805     FileStatus status; 
    806  
    807     fileCache->getData(currentIndex, eId3, data); 
    808     fileCache->setData(currentIndex, eData, data); 
    809     fileCache->getFileName(currentIndex, fileName); 
    810     fileCache->getTrm(currentIndex, trm); 
    811     status = fileCache->getStatus(currentIndex); 
    812     removePath(fileName); 
    813  
    814     artistEdit->Text = data.artist; 
    815     albumEdit->Text = data.album; 
    816     trackEdit->Text = data.track; 
    817     sprintf(temp, "%d", data.trackNum); 
    818     trackNumEdit->Text = AnsiString(temp); 
    819     trackIdEdit->Text = data.trackId; 
    820     trmIdEdit->Text = trm; 
    821  
    822     fileCache->setStatus(currentIndex, eUnrecognized); 
    823     tview->setStatus(currentIndex, status, eUnrecognized); 
    824  
    825     enableButtons(); 
    826 } 
    827  
    828 //--------------------------------------------------------------------------- 
    829  
    830 void __fastcall TMBTaggerForm::saveButtonClick(TObject *Sender) 
    831 { 
    832     Metadata    data; 
    833     AnsiString  fileName; 
    834     TTreeNode  *node; 
    835     FileStatus  status; 
    836  
    837     if (currentIndex < 0) 
    838        return; 
    839  
    840     fileCache->getFileName(currentIndex, fileName); 
    841     status = fileCache->getStatus(currentIndex); 
    842  
    843     data.track = trackEdit->Text; 
    844     data.artist = artistEdit->Text; 
    845     data.album = albumEdit->Text; 
    846     data.trackNum = atoi(trackNumEdit->Text.c_str()); 
    847     data.trackId = trackIdEdit->Text; 
    848     fileCache->setData(currentIndex, eData, data); 
    849  
    850     // Move the item to the recognized pile 
    851     fileCache->setStatus(currentIndex, eRecognized); 
    852     tview->setStatus(currentIndex, status, eRecognized); 
    853805 
    854806    node = tview->getNextTrack(eUnrecognized); 
     
    910862    ID3         id3(prefs->getPrefs().writeId3v1, prefs->getPrefs().writeId3v2); 
    911863    TCursor     saveCursor; 
    912     int         index, numFiles = 0
     864    int         index
    913865    Metadata    data; 
    914866    AnsiString  fileName, fileOnly, trm, rdf; 
    915867    TTreeNode  *node; 
    916     SubmitRDF   submit; 
    917868 
    918869    if (!userCheck()) 
     
    921872    treeView->Selected = NULL; 
    922873    currentIndex = -1; 
    923  
    924     // Check to see if we have any pending info. If so, submit it first. 
    925     submitSaved(); 
    926  
    927     submit.init(); 
    928874 
    929875    saveCursor = Screen->Cursor; 
     
    939885        if (!fileCache->hasChanged(index)) 
    940886        { 
    941             fileCache->setStatus(index, eDeleted); 
    942             tview->setStatus(index, eRecognized, eDeleted); 
     887            tview->setStatus(index, eRecognized, eSaved); 
    943888            continue; 
    944889        } 
     
    947892        fileCache->getFileName(index, fileName); 
    948893        fileCache->getTrm(index, trm); 
    949  
    950         // If we don't have a TRM, this track has been matched before, 
    951         // thus don't write it out to disk again. 
    952         if (!trm.IsEmpty()) 
    953         { 
    954             numFiles++; 
    955             submit.update(data.trackId, trm); 
    956         } 
    957894 
    958895        fileOnly = fileName; 
     
    999936            fileCache->setFileName(index, newName); 
    1000937        } 
    1001          
     938 
    1002939        // Set the id3 data to be same as the in memory data 
    1003940        fileCache->setData(index, eId3, data); 
    1004         fileCache->setStatus(index, eDeleted); 
    1005         tview->setStatus(index, eRecognized, eDeleted); 
     941        tview->setStatus(index, eRecognized, eSaved); 
    1006942        Application->ProcessMessages(); 
    1007943    } 
     
    1009945    Screen->Cursor = saveCursor; 
    1010946    setStatus("Done writing ID3 tags."); 
    1011  
    1012     submit.final(); 
    1013     submit.getRDF(rdf); 
    1014  
    1015     if (numFiles > 0 && !submitTrms(rdf)) 
    1016     { 
    1017         TMemoryStream *str; 
    1018         AnsiString     fileName; 
    1019  
    1020         fileName = ExtractFilePath(Application->ExeName) + "\\saved.rdf"; 
    1021         str = new TMemoryStream; 
    1022         str->Write(rdf.c_str(), rdf.Length()); 
    1023         try 
    1024         { 
    1025              str->SaveToFile(fileName); 
    1026         } 
    1027         catch(EWriteError *e) 
    1028         { 
    1029              MessageDlg("Could not write TRM information to disk for later " 
    1030                         "submisson.", mtError, TMsgDlgButtons() << mbOK, 0); 
    1031              unlink(fileName.c_str()); 
    1032         } 
    1033         delete str; 
    1034     } 
    1035947} 
    1036948 
     
    1040952      bool &CanClose) 
    1041953{ 
     954    int  mr; 
    1042955    char msg[100]; 
    1043956 
    1044     if (fileCache->getNumUnsaved() == 0) 
     957    if (tview->getNumUnsaved() == 0 && submitInfo.getNumItems() == 0) 
    1045958    { 
    1046959        CanClose = true; 
     
    1048961    } 
    1049962 
    1050     sprintf(msg, "You have %d unsaved files. Do you want to exit with" 
    1051                  "out saving?", fileCache->getNumUnsaved()); 
    1052     if (MessageDlg(msg, mtWarning, TMsgDlgButtons() 
    1053                 << mbYes << mbNo, 0) == mrYes) 
    1054         CanClose = true; 
    1055     else 
    1056         CanClose = false; 
     963    if (tview->getNumUnsaved() > 0) 
     964    { 
     965        sprintf(msg, "You have %d unsaved files. Do you want to save them?", 
     966                     tview->getNumUnsaved()); 
     967        mr = MessageDlg(msg, mtWarning, TMsgDlgButtons() 
     968                    << mbYes << mbNo << mbCancel, 0); 
     969        if (mr == mrYes) 
     970            writeTagsClick(NULL); 
     971        else 
     972        if (mr == mrCancel) 
     973        { 
     974           CanClose = false; 
     975           return; 
     976        } 
     977    } 
     978 
     979    if (submitInfo.getNumItems() > 0) 
     980    { 
     981        sprintf(msg, "There are %d matches to submit to the MusicBrainz server. " 
     982                     "Do you want to submit them now?", 
     983                     submitInfo.getNumItems()); 
     984        mr = MessageDlg(msg, mtWarning, TMsgDlgButtons() 
     985                    << mbYes << mbNo << mbCancel, 0); 
     986        if (mr == mrYes) 
     987        { 
     988           if (!submitTrms()) 
     989           { 
     990               CanClose = false; 
     991               return; 
     992           } 
     993        } 
     994        else 
     995        if (mr == mrCancel) 
     996        { 
     997           CanClose = false; 
     998           return; 
     999        } 
     1000    } 
     1001 
     1002    CanClose = true; 
    10571003} 
    10581004 
     
    12121158      TCloseAction &Action) 
    12131159{ 
    1214    if (mediaPlayer->Mode == mpPlaying || 
    1215        mediaPlayer->Mode == mpPaused) 
    1216    { 
    1217       mediaPlayer->Stop(); 
    1218       mediaPlayer->Close(); 
    1219    } 
    1220    else 
    1221    if (mediaPlayer->Mode == mpOpen) 
     1160    if (mediaPlayer->Mode == mpPlaying || 
     1161        mediaPlayer->Mode == mpPaused) 
     1162    { 
     1163       mediaPlayer->Stop(); 
    12221164       mediaPlayer->Close(); 
    1223  
    1224    seekbarTimer->Enabled = false; 
     1165    } 
     1166    else 
     1167    if (mediaPlayer->Mode == mpOpen) 
     1168        mediaPlayer->Close(); 
     1169 
     1170    seekbarTimer->Enabled = false; 
    12251171} 
    12261172 
     
    12851231{ 
    12861232    char msg[100]; 
    1287     bool enable; 
    1288  
    1289     enable = false; 
    1290     if (treeView->Selected) 
    1291     { 
    1292         FileStatus type; 
    1293  
    1294         type = tview->getNodeType(treeView->Selected); 
    1295         if (type == eUnrecognized || type == eRecognized) 
    1296             enable = !trackIdEdit->Text.IsEmpty(); 
    1297     } 
    1298     saveButton->Enabled = enable; 
    1299  
    1300     revertButton->Enabled = treeView->Selected != NULL; 
    1301  
    1302     if (treeView->Items->Count > 0) 
    1303     { 
    1304        sprintf(msg, "%d unsaved files", fileCache->getNumUnsaved()); 
    1305        writeTags->Enabled = true; 
    1306     } 
    1307     else 
    1308     { 
    1309        sprintf(msg, "No unsaved files"); 
    1310        writeTags->Enabled = false; 
    1311     } 
     1233    int  unsavedCount, submitCount; 
     1234 
     1235    unsavedCount = tview->getNumUnsaved(); 
     1236    submitCount = submitInfo.getNumItems(); 
     1237 
     1238    writeTags->Enabled = (unsavedCount > 0); 
     1239    submitButton->Enabled = (submitCount > 0); 
     1240 
     1241    sprintf(msg, "%d unsaved, %d unsubmitted", unsavedCount, submitCount); 
    13121242    statusBar->Panels->Items[1]->Text = msg; 
    13131243} 
     
    13231253    char       temp[10]; 
    13241254 
    1325     if (fileCache == NULL || tview->isSpecialNode(Node)) 
    1326     { 
    1327         clearCurrentSelection(); 
    1328         treeView->Selected = NULL; 
    1329         enableButtons(); 
     1255    if (fileCache == NULL) 
    13301256        return; 
    1331     }     
    13321257 
    13331258    if (currentIndex >= 0) 
    13341259    { 
     1260        FileStatus status, newStatus; 
     1261 
    13351262        // Set the data back to the current item, in case the user changed it 
    13361263        fileCache->getData(currentIndex, eData, data); 
     
    13401267        data.trackNum = atoi(trackNumEdit->Text.c_str()); 
    13411268        fileCache->setData(currentIndex, eData, data); 
     1269 
     1270        status = fileCache->getStatus(currentIndex); 
     1271        if (status == eSaved && fileCache->hasChanged(currentIndex)) 
     1272           newStatus = eRecognized; 
     1273        else 
     1274        if (status == eRecognized && !fileCache->hasChanged(currentIndex)) 
     1275           newStatus = eSaved; 
     1276        else 
     1277           newStatus = status; 
     1278 
     1279        tview->setStatus(currentIndex, status, newStatus); 
     1280 
     1281        currentIndex = -1; 
     1282    } 
     1283 
     1284    if (tview->isSpecialNode(Node)) 
     1285    { 
     1286        clearCurrentSelection(); 
     1287        treeView->Selected = NULL; 
     1288        enableButtons(); 
     1289        return; 
    13421290    } 
    13431291 
     
    14511399    out = treeView->ClientToScreen(in); 
    14521400 
     1401    status = tview->getNodeType(node); 
     1402    identifyAgainItem->Enabled = (status == eSaved); 
     1403    identifyAllAgainItem->Enabled = (status == eSaved); 
     1404 
    14531405    treeViewMenu->Popup(out.x, out.y); 
    14541406    popupNode = node; 
     
    14761428            { 
    14771429               case eRecognized: 
    1478                    treeView->Hint = "Tracks that were identified are shown here"; 
     1430                   treeView->Hint = "Tracks that were identified, but unsaved are shown here"; 
    14791431                   break; 
    14801432               case eUnrecognized: 
    14811433                   treeView->Hint = "Tracks that were not identified are shown here"; 
     1434                   break; 
     1435               case eSaved: 
     1436                   treeView->Hint = "Tracks that have been saved or previously identified are shown here"; 
    14821437                   break; 
    14831438               case ePending: 
     
    15071462void __fastcall TMBTaggerForm::removeItemClick(TObject *Sender) 
    15081463{ 
    1509     FileStatus status; 
    1510  
    15111464    if (popupNode == NULL) 
    15121465       return; 
    15131466 
    1514     status = fileCache->getStatus((int)popupNode->Data); 
    1515     fileCache->setStatus((int)popupNode->Data, eDeleted); 
    1516     tview->setStatus((int)popupNode->Data, status, eDeleted); 
     1467    removeNode(popupNode); 
     1468    popupNode = NULL; 
     1469
     1470 
     1471//--------------------------------------------------------------------------- 
     1472 
     1473void __fastcall TMBTaggerForm::removeNode(TTreeNode *node) 
     1474
     1475    FileStatus status; 
     1476    Metadata   data; 
     1477    AnsiString trm; 
     1478 
     1479    status = fileCache->getStatus((int)node->Data); 
     1480    fileCache->getData((int)node->Data, eData, data); 
     1481    fileCache->getTrm((int)node->Data, trm); 
     1482 
     1483    // If we have full info, remove it from the submit it. Even if it 
     1484    // may not be in the submit list. 
     1485    if (!data.trackId.IsEmpty() && !trm.IsEmpty()) 
     1486        submitInfo.remove(data.trackId); 
     1487 
     1488    tview->setStatus((int)node->Data, status, eDeleted); 
    15171489 
    15181490    popupNode = NULL; 
     
    15261498    FileStatus  status; 
    15271499    TTreeNode  *node; 
     1500    Metadata    data; 
     1501    AnsiString trm; 
    15281502 
    15291503    if (popupNode == NULL) 
     
    15371511            break; 
    15381512 
    1539         tview->setStatus((int)node->Data, status, eDeleted); 
    1540         fileCache->setStatus((int)node->Data, eDeleted); 
     1513        removeNode(node); 
    15411514    } 
    15421515 
    15431516    popupNode = NULL; 
     1517} 
     1518 
     1519//--------------------------------------------------------------------------- 
     1520 
     1521void __fastcall TMBTaggerForm::identifyAgainItemClick(TObject *Sender) 
     1522{ 
     1523    if (popupNode == NULL) 
     1524       return; 
     1525 
     1526    identifyAgain(popupNode); 
     1527    popupNode = NULL; 
     1528} 
     1529 
     1530//--------------------------------------------------------------------------- 
     1531 
     1532void __fastcall TMBTaggerForm::identifyAllAgainItemClick(TObject *Sender) 
     1533{ 
     1534    FileStatus  status; 
     1535    TTreeNode  *node; 
     1536    Metadata    data; 
     1537    AnsiString trm; 
     1538 
     1539    if (popupNode == NULL) 
     1540       return; 
     1541 
     1542    status = fileCache->getStatus((int)popupNode->Data); 
     1543    for(;;) 
     1544    { 
     1545        node = tview->getNextTrack(status); 
     1546        if (node == NULL) 
     1547            break; 
     1548 
     1549        identifyAgain(node); 
     1550    } 
     1551 
     1552    popupNode = NULL; 
     1553} 
     1554 
     1555//--------------------------------------------------------------------------- 
     1556 
     1557void __fastcall TMBTaggerForm::identifyAgain(TTreeNode *node) 
     1558{ 
     1559    FileStatus status; 
     1560    Metadata   data; 
     1561    AnsiString trm; 
     1562 
     1563    status = fileCache->getStatus((int)node->Data); 
     1564    fileCache->getData((int)node->Data, eId3, data); 
     1565    fileCache->getTrm((int)node->Data, trm); 
     1566 
     1567    // If we have full info, remove it from the submit it. Even if it 
     1568    // may not be in the submit list. 
     1569    if (!data.trackId.IsEmpty() && !trm.IsEmpty()) 
     1570        submitInfo.remove(data.trackId); 
     1571 
     1572    data.trackId = ""; 
     1573    trm = ANALYZER_REDO_STRING; 
     1574    fileCache->setData((int)node->Data, eData, data); 
     1575    fileCache->setTrm((int)node->Data, trm); 
     1576    tview->setStatus((int)node->Data, status, ePending); 
     1577    analyzer->wake(); 
     1578 
    15441579    enableButtons(); 
    15451580} 
     
    15471582//--------------------------------------------------------------------------- 
    15481583 
    1549 bool __fastcall TMBTaggerForm::submitTrms(const AnsiString &rdf
     1584bool __fastcall TMBTaggerForm::submitTrms(void
    15501585{ 
    15511586    BackgroundLookup   *lookup; 
     
    15541589    TTrackLookupDialog *lookupDialog; 
    15551590    AnsiString          fileName; 
     1591    AnsiString          rdf; 
    15561592 
    15571593    if (!userCheck()) 
    15581594        return false; 
     1595 
     1596    if (submitInfo.getNumItems() == 0) 
     1597        return false; 
     1598 
     1599    submitInfo.getRDF(rdf); 
    15591600 
    15601601    setStatus("Submtting TRM information to server..."); 
     
    16111652    Cursor = crDefault; 
    16121653 
     1654    submitInfo.clear(); 
     1655 
    16131656    return true; 
    16141657} 
     
    16181661void __fastcall TMBTaggerForm::processSubmitMessage(TMessage &Message) 
    16191662{ 
    1620     submitSaved(); 
    1621 
    1622  
    1623 //--------------------------------------------------------------------------- 
    1624  
    1625 void __fastcall TMBTaggerForm::submitSaved(void) 
    1626 
    1627     TMemoryStream *str; 
    1628     AnsiString     fileName, rdf; 
    1629  
    1630     fileName = ExtractFilePath(Application->ExeName) + "\\saved.rdf"; 
    1631     if (access(fileName.c_str(), 0) != 0) 
    1632         return; 
    1633  
    1634     str = new TMemoryStream; 
    1635     try 
    1636     { 
    1637          char *ptr; 
    1638  
    1639          str->LoadFromFile(fileName); 
    1640          ptr = new char[str->Size + 1]; 
    1641          str->Read(ptr, str->Size); 
    1642          rdf = AnsiString(ptr); 
    1643          delete [] ptr; 
    1644     } 
    1645     catch(EReadError *e) 
    1646     { 
    1647          MessageDlg("Could not read saved TRM information from disk.", 
    1648                     mtError, TMsgDlgButtons() << mbOK, 0); 
    1649          unlink(fileName.c_str()); 
    1650          delete str; 
    1651          return; 
    1652     } 
    1653     delete str; 
    1654  
    1655     if (submitTrms(rdf)) 
    1656        unlink(fileName.c_str()); 
     1663    //submitSaved(); 
    16571664} 
    16581665 
     
    16831690    return true; 
    16841691} 
    1685 //--------------------------------------------------------------------------- 
    1686  
     1692 
     1693//--------------------------------------------------------------------------- 
     1694 
     1695void __fastcall TMBTaggerForm::submitButtonClick(TObject *Sender) 
     1696
     1697    submitTrms(); 
     1698
     1699 
     1700 
     1701 
     1702 
  • mb_tagger/trunk/main.dfm

    <
    r797 r798  
    132132    00000000000000000000000000000000000080000001} 
    133133  OldCreateOrder = False 
    134   Position = poDefault 
    135134  OnClose = FormClose 
    136135  OnCloseQuery = FormCloseQuery 
     
    329328    end 
    330329    object prevButton: TSpeedButton 
    331       Left = 191 
     330      Left = 225 
    332331      Top = 1 
    333332      Width = 33 
     
    407406    end 
    408407    object nextButton: TSpeedButton 
    409       Left = 224 
     408      Left = 258 
    410409      Top = 1 
    411410      Width = 33 
     
    484483    end 
    485484    object reloadButton: TSpeedButton 
    486       Left = 271 
     485      Left = 305 
    487486      Top = 1 
    488487      Width = 33 
     
    562561    end 
    563562    object stopButton: TSpeedButton 
    564       Left = 304 
     563      Left = 338 
    565564      Top = 1 
    566565      Width = 33 
     
    880879      ShowHint = True 
    881880      OnClick = openDirButtonClick 
     881    end 
     882    object submitButton: TSpeedButton 
     883      Left = 179 
     884      Top = 1 
     885      Width = 33 
     886      Height = 33 
     887      Hint = 'Submit tagged information to MusicBrainz' 
     888      Flat = True 
     889      Glyph.Data = { 
     890        360C0000424D360C000000000000360000002800000020000000200000000100 
     891        180000000000000C0000120B0000120B00000000000000000000C0C0C0C0C0C0 
     892        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     893        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     894        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     895        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     896        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     897        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     898        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     899        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     900        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     901        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     902        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     903        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     904        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     905        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     906        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     907        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     908        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     909        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     910        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     911        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     912        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     913        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     914        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     915        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     916        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     917        C061C9FF3E83AC3E83AC61C9FF61C9FF61C9FF61C9FF61C9FF61C9FF61C9FF61 
     918        C9FF61C9FF61C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     919        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C03E83 
     920        AC0000002E2929494C4700000024161A61C9FF61C9FF61C9FF61C9FF61C9FF61 
     921        C9FF61C9FF61C9FF61C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     922        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00000 
     923        00CFD6CBFFFFFDFFFFFDFFFFFD494C4724161A61C9FF61C9FF61C9FF61C9FF61 
     924        C9FF61C9FF61C9FF61C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     925        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C00000 
     926        00CFD6CBFFFFFDFFFFFDFFFFFDFFFFFD00000061C9FF61C9FF61C9FF61C9FF61 
     927        C9FF61C9FF61C9FF61C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     928        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00000000000003E83 
     929        AC24161A776E6EBCBDBDBCBDBDCFD6CB0000002E292900000000000000000000 
     930        00002E292961C9FF61C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     931        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00000008080800000 
     932        003E83AC24161A000000000000FFFFFF00000024161AA4A9A1FFFFFDFFFFFD93 
     933        9E9C2E29292E292961C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     934        C0C0C00000000000000000000000000000000000000000000000008080808080 
     935        8000000061C9FF61C9FF000000FFFFFF0000002E2929FFFFFDFFFFFDFFFFFDFF 
     936        FFFDCFD6CB00000061C9FF61C9FFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     937        C0C0C0808080C0C0C0808080808080808080808080808080808080C0C0C0C0DC 
     938        C0808080000000AE6C73000000FFFFFF000000000000494C47CFD6CBFFFFFDFF 
     939        FFFDFFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     940        C0C0C0808080C0DCC0C0DCC0C0DCC0C0DCC0C0DCC0C0DCC0C0DCC0C0DCC0C0DC 
     941        C0C0C0C0000000AE6C73000000FFFFFF000000644A4D24161A00000000000000 
     942        0000FFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     943        C0C0C0808080808080808080808080808080808080808080808080C0DCC0C0C0 
     944        C0000000AE6C73AE6C73000000FFFFFF24161A0000002E2929644A4D644A4D00 
     945        0000FFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     946        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C00000 
     947        00AE6C73AE6C73AE6C73000000FFFFFFFFFFFD939E9C2E292900000024161A00 
     948        0000FFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     949        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000AE6C 
     950        73AE6C73AE6C73AE6C73000000BCBDBDFFFFFDFFFFFDFFFFFDCFD6CB59626100 
     951        0000FFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     952        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0AE6C 
     953        73AE6C73AE6C73AE6C732E2929494C47BCBDBDFFFFFDFFFFFDFFFFFDFFFFFDFF 
     954        FFFDFFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     955        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0AE6C 
     956        73AE6C73AE6C73AE6C73AE6C732E29290000002E2929939E9CFFFFFDFFFFFDFF 
     957        FFFDFFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     958        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0AE6C 
     959        73AE6C73AE6C73AE6C73AE6C73AE6C73AE6C732E292900000024161A776E6ECF 
     960        D6CBFFFFFD000000AE6C73AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     961        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     962        C0AE6C73AE6C73AE6C73AE6C73AE6C73AE6C73AE6C73AE6C73AE6C7324161A00 
     963        0000494C472E2929AE6C73C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     964        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     965        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     966        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     967        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     968        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     969        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     970        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     971        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     972        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     973        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     974        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     975        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     976        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     977        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     978        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     979        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     980        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     981        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     982        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     983        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     984        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     985        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     986        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 
     987        C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0} 
     988      ParentShowHint = False 
     989      ShowHint = True 
     990      OnClick = submitButtonClick 
    882991    end 
    883992  end 
     
    10981207        SelEnd = 0 
    10991208        SelStart = 0 
    1100         TabOrder = 0 
     1209        TabOrder = 6 
    11011210        ThumbLength = 13 
    11021211        TickMarks = tmBottomRight 
     
    11101219        VisibleButtons = [] 
    11111220        Visible = False 
    1112         TabOrder = 1 
     1221        TabOrder = 7 
    11131222        OnNotify = mediaPlayerNotify 
    11141223      end 
     
    11201229        Anchors = [akLeft, akTop, akRight] 
    11211230        ReadOnly = True 
    1122         TabOrder = 2 
     1231        TabOrder = 4 
    11231232      end 
    11241233      object trackNumEdit: TEdit 
     
    11361245        Height = 21 
    11371246        Anchors = [akLeft, akTop, akRight] 
    1138         TabOrder = 4 
     1247        TabOrder = 2 
    11391248      end 
    11401249      object albumEdit: TEdit 
     
    11441253        Height = 21 
    11451254        Anchors = [akLeft, akTop, akRight] 
    1146         TabOrder = 5 
     1255        TabOrder = 1 
    11471256      end 
    11481257      object artistEdit: TEdit 
     
    11521261        Height = 21 
    11531262        Anchors = [akLeft, akTop, akRight] 
    1154         TabOrder = 6 
     1263        TabOrder = 0 
    11551264      end 
    11561265      object trackIdEdit: TEdit 
     
    11611270        Anchors = [akLeft, akTop, akRight] 
    11621271        ReadOnly = True 
    1163         TabOrder = 7 
     1272        TabOrder = 5 
    11641273      end 
    11651274    end