public void OnSave(object sender, EventArgs args) { string nPerformer = _performer.Text.Trim(); string nTitle = _title.Text.Trim(); string nComposer = _composer.Text.Trim(); string nYear = _year.Text.Trim(); string nSubtitle = _subtitle.Text.Trim(); _sheet.SetPerformer(nPerformer); _sheet.SetTitle(nTitle); _sheet.SetComposer(nComposer); _sheet.SetYear(nYear); _sheet.SetSubtitle(nSubtitle); _sheet.SetImagePath(_imagefile.Filename); _sheet.ClearTracks(); Gtk.TreeIter iter; if (_store.GetIterFirst(out iter)) { do { string title = (string)_store.GetValue(iter, 1); string perf = (string)_store.GetValue(iter, 2); string composer = (string)_store.GetValue(iter, 3); if (composer.Trim() == "") { composer = nComposer; } string piece = (string)_store.GetValue(iter, 4); piece = piece.Trim(); string offset = (string)_store.GetValue(iter, 5); string [] parts = Regex.Split(offset, "[.:]"); double e_offset; int min = Convert.ToInt32(parts[0]); int secs = Convert.ToInt32(parts[1]); int hsecs = Convert.ToInt32(parts[2]); e_offset = min * 60 + secs + (hsecs / 100.0); if (perf.Trim() == "") { perf = nPerformer; } CueSheetEntry e = _sheet.AddTrack(title, perf, e_offset); e.setComposer(composer); e.setPiece(piece); } while(_store.IterNext(ref iter)); } _sheet.Save(); }
public void iLoad(StreamReader sr) { _composer=""; _year=""; _subtitle=""; _cddbId=""; Boolean _in_tracks=false; string e_perf=""; string e_title=""; double e_offset=-1.0; string e_piece=""; string e_composer=""; string aaid=""; int nr=0; //string filename=_cuefile; string directory=_directory; string line = ""; while ((line = sr.ReadLine()) != null) { line=line.Trim (); if (line!="") { //Console.WriteLine ("it="+_in_tracks+", "+line); if (!_in_tracks) { if (eq(line,"performer")) { _performer=unquote(line.Substring (9).Trim ()); } else if (eq(line,"title")) { _title=unquote(line.Substring (5).Trim ()); } else if (eq(line,"file")) { _music_file_name=line.Substring (4).Trim (); Match m=Regex.Match (_music_file_name,"([\"][^\"]+[\"])"); _music_file_name=m.ToString (); _music_file_name=unquote(_music_file_name).Trim (); _music_file_name=Tools.makefile(directory,_music_file_name); } else if (line.Substring(0,5).ToLower ()=="track") { _in_tracks=true; } else if (eq(line,"rem")) { //Hyena.Log.Information (line); line=line.Substring (3).Trim (); if (eq(line,"image")) { _image_file_name=line.Substring (5).Trim (); _image_file_name=unquote(_image_file_name).Trim (); _img_full_path=Tools.makefile(directory,_image_file_name); } else if (eq (line,"composer")) { _composer=unquote(line.Substring (8).Trim ()); } else if (eq (line,"subtitle")) { _subtitle=unquote(line.Substring (8).Trim ()); } else if (eq (line,"year")) { _year=unquote(line.Substring (4).Trim ()); } else if (eq (line,"cddbid")) { _cddbId=unquote(line.Substring (6).Trim ()); } } } if (_in_tracks) { if (aaid=="") { aaid=getArtId (); } //Console.WriteLine ("line="+line); if (eq(line,"track")) { if (e_offset>=0) { nr+=1; CueSheetEntry e=new CueSheetEntry(this,_music_file_name,aaid,nr,-1,e_title,e_perf,_title,e_offset); e.setComposer (e_composer); e.setPiece (e_piece); append (e); if (nr>1) { CueSheetEntry ePrev; ePrev=this.entry (nr-2); ePrev.setLength(e.offset ()-ePrev.offset()); } } e_perf=_performer; e_title=""; e_composer=_composer; e_offset=-1.0; } else if (eq(line,"title")) { e_title=unquote(line.Substring (5).Trim ()); } else if (eq(line,"performer")) { e_perf=unquote(line.Substring (9).Trim ()); } else if (eq(line,"rem")) { line=line.Substring (3).Trim (); if (eq (line,"composer")) { e_composer=unquote(line.Substring (8).Trim ()); } else if (eq(line,"piece")) { e_piece=unquote(line.Substring (5).Trim ()); } } else if (eq(line,"index")) { string s=line.Substring (5).Trim (); s=Regex.Replace (s,"^\\s*[0-9]+\\s*",""); string []parts=Regex.Split(s,"[:]"); int min=Convert.ToInt32(parts[0]); int secs=Convert.ToInt32(parts[1]); int hsecs=Convert.ToInt32(parts[2]); e_offset=min*60+secs+(hsecs/100.0); } } } } //Console.WriteLine ("Last entry adding"); if (e_offset>=0) { nr+=1; CueSheetEntry e=new CueSheetEntry(this,_music_file_name,aaid,nr,-1,e_title,e_perf,_title,e_offset); e.setComposer (e_composer); e.setPiece (e_piece); append (e); if (nr>1) { CueSheetEntry ePrev; ePrev=this.entry (nr-2); ePrev.setLength(e.offset ()-ePrev.offset()); } } //Console.WriteLine ("Last entry added"); { int i; for(i=0;i<nEntries();i++) { entry (i).setNrOfTracks(nr); } //Console.WriteLine ("Ready"); } base.Selection.MaxIndex=nEntries (); }
public void iLoad(StreamReader sr) { _composer = ""; _year = ""; _subtitle = ""; _cddbId = ""; Boolean _in_tracks = false; string e_perf = ""; string e_title = ""; double e_offset = -1.0; string e_piece = ""; string e_composer = ""; string aaid = ""; int nr = 0; //string filename=_cuefile; string directory = _directory; string line = ""; while ((line = sr.ReadLine()) != null) { line = line.Trim(); if (line != "") { //Console.WriteLine ("it="+_in_tracks+", "+line); if (!_in_tracks) { if (eq(line, "performer")) { _performer = unquote(line.Substring(9).Trim()); } else if (eq(line, "title")) { _title = unquote(line.Substring(5).Trim()); } else if (eq(line, "file")) { _music_file_name = line.Substring(4).Trim(); Match m = Regex.Match(_music_file_name, "([\"][^\"]+[\"])"); _music_file_name = m.ToString(); _music_file_name = unquote(_music_file_name).Trim(); _music_file_name = Tools.makefile(directory, _music_file_name); } else if (line.Substring(0, 5).ToLower() == "track") { _in_tracks = true; } else if (eq(line, "rem")) { //Hyena.Log.Information (line); line = line.Substring(3).Trim(); if (eq(line, "image")) { _image_file_name = line.Substring(5).Trim(); _image_file_name = unquote(_image_file_name).Trim(); _img_full_path = Tools.makefile(directory, _image_file_name); } else if (eq(line, "composer")) { _composer = unquote(line.Substring(8).Trim()); } else if (eq(line, "subtitle")) { _subtitle = unquote(line.Substring(8).Trim()); } else if (eq(line, "year")) { _year = unquote(line.Substring(4).Trim()); } else if (eq(line, "cddbid")) { _cddbId = unquote(line.Substring(6).Trim()); } } } if (_in_tracks) { if (aaid == "") { aaid = getArtId(); } //Console.WriteLine ("line="+line); if (eq(line, "track")) { if (e_offset >= 0) { nr += 1; CueSheetEntry e = new CueSheetEntry(this, _music_file_name, aaid, nr, -1, e_title, e_perf, _title, e_offset); e.setComposer(e_composer); e.setPiece(e_piece); append(e); if (nr > 1) { CueSheetEntry ePrev; ePrev = this.entry(nr - 2); ePrev.setLength(e.offset() - ePrev.offset()); } } e_perf = _performer; e_title = ""; e_composer = _composer; e_offset = -1.0; } else if (eq(line, "title")) { e_title = unquote(line.Substring(5).Trim()); } else if (eq(line, "performer")) { e_perf = unquote(line.Substring(9).Trim()); } else if (eq(line, "rem")) { line = line.Substring(3).Trim(); if (eq(line, "composer")) { e_composer = unquote(line.Substring(8).Trim()); } else if (eq(line, "piece")) { e_piece = unquote(line.Substring(5).Trim()); } } else if (eq(line, "index")) { string s = line.Substring(5).Trim(); s = Regex.Replace(s, "^\\s*[0-9]+\\s*", ""); string [] parts = Regex.Split(s, "[:]"); int min = Convert.ToInt32(parts[0]); int secs = Convert.ToInt32(parts[1]); int hsecs = Convert.ToInt32(parts[2]); e_offset = min * 60 + secs + (hsecs / 100.0); } } } } //Console.WriteLine ("Last entry adding"); if (e_offset >= 0) { nr += 1; CueSheetEntry e = new CueSheetEntry(this, _music_file_name, aaid, nr, -1, e_title, e_perf, _title, e_offset); e.setComposer(e_composer); e.setPiece(e_piece); append(e); if (nr > 1) { CueSheetEntry ePrev; ePrev = this.entry(nr - 2); ePrev.setLength(e.offset() - ePrev.offset()); } } //Console.WriteLine ("Last entry added"); { int i; for (i = 0; i < nEntries(); i++) { entry(i).setNrOfTracks(nr); } //Console.WriteLine ("Ready"); } base.Selection.MaxIndex = nEntries(); }