private void albumView_SelectionChanged(object sender, EventArgs e) { if (albumView.SelectedRows.Count > 0) { picAmazonImage.Image = null; AmazonItemInfo aii = amazonItemInfoList[albumView.SelectedRows[0].Index]; picAmazonImage.InitialImage = Image.FromFile(LinearGlobal.StyleDirectory + "\\loading.gif"); picAmazonImage.ImageLocation = aii.ImageUrl; trackView.DataSource = aii.Tracks; } }
private void trackView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (albumView.SelectedRows.Count > 0) { int albumIndex = albumView.SelectedRows[0].Index; int trackIndex = trackView.SelectedRows[0].Index; AmazonItemInfo aii = amazonItemInfoList[albumIndex]; txtTitle.Text = aii.Tracks[trackIndex].TrackName; txtArtist.Text = aii.Artist; txtAlbum.Text = aii.Title; txtTrackNo.Text = aii.Tracks[trackIndex].TrackNumber.ToString(); //txtGenre.Text = gi.Genre; txtYear.Text = aii.ReleaseDate.Split('-')[0].Trim(); } }
/// <summary> /// アルバム一括タグ更新 /// </summary> private void allAlbumTrackUpdate(bool isTrackNoSort) { if (!isValid()) { return; } // IDを取得する long id = FileInfoList[0].Id; // 更新対象を取得する List <DbParameter> paramList = new List <DbParameter>(); paramList.Add(new SQLiteParameter("Id", id)); string sql = SQLResource.SQL048; if (isTrackNoSort) { sql += "ORDER BY ALBUM, ABS(TRACK), ID"; } else { sql += "ORDER BY ID"; } object[][] resultList = SQLiteManager.Instance.executeQueryNormal(sql, paramList); // amazonAlbumListをループ int i = 0; int albumIndex = albumView.SelectedRows[0].Index; AmazonItemInfo aii = amazonItemInfoList[albumIndex]; foreach (var amazonItemTrackInfo in aii.Tracks) { if (resultList.Length >= i + 1) { GridItemInfo gi = new GridItemInfo(); gi.Id = long.Parse(resultList[i][0].ToString()); if (String.IsNullOrEmpty(resultList[i][2].ToString())) { gi.FilePath = resultList[i][1].ToString(); } else { gi.FilePath = Path.Combine(LinearGlobal.TempDirectory, resultList[i][2].ToString()); gi.Tag = resultList[i][1].ToString(); gi.Option = resultList[i][2].ToString(); } gi.Genre = resultList[i][4].ToString(); // 更新する対象 gi.Title = amazonItemTrackInfo.TrackName; gi.Artist = aii.Artist; gi.Album = aii.Title; gi.Track = amazonItemTrackInfo.TrackNumber; if (aii.ReleaseDate.Length >= 4) { gi.Year = aii.ReleaseDate.Substring(0, 4); } gi.Picture = picAmazonImage.Image; gi.Selection = (int)EnumMode.SINGLE; LinearGlobal.StockTagEditList.Add(gi); } i++; } /* * // id, filepath, option, track * foreach (var record in resultList) * { * GridItemInfo gi = new GridItemInfo(); * gi.Id = long.Parse(record[0].ToString()); * if (String.IsNullOrEmpty(record[2].ToString())) * { * gi.FilePath = record[1].ToString(); * } else * { * gi.FilePath = Path.Combine(LinearGlobal.TempDirectory, record[2].ToString()); * gi.Tag = record[1].ToString(); * gi.Option = record[2].ToString(); * } * * gi.Track = int.Parse(record[3].ToString()); * gi.Genre = record[4].ToString(); * * if (gi.Track-1 >= 0) * { * //int albumIndex = albumView.SelectedRows[0].Index; * int trackIndex = gi.Track - 1; * //AmazonItemInfo aii = amazonItemInfoList[albumIndex]; * * // 更新する対象 * gi.Title = aii.Tracks[trackIndex].TrackName; * gi.Artist = aii.Artist; * gi.Album = aii.Title; * gi.Track = aii.Tracks[trackIndex].TrackNumber; * gi.Year = aii.ReleaseDate.Split('-')[0].Trim(); * gi.Picture = picAmazonImage.Image; * * gi.Selection = (int) EnumMode.SINGLE; * * LinearGlobal.StockTagEditList.Add(gi); * * } * }*/ Action saveTagAction = () => { var saveTagResult = LinearAudioPlayer.PlayController.saveTag(); if (saveTagResult.Count > 0) { Action uiAction = () => { LinearAudioPlayer.PlayController.saveTagEnd(saveTagResult); }; LinearGlobal.MainForm.ListForm.BeginInvoke(uiAction); } }; LinearAudioPlayer.WorkerThread.EnqueueTask(saveTagAction); // TODO:いる? if (LinearGlobal.StockTagEditList.Count > 0) { Action getPcitureAction = () => { LinearAudioPlayer.PlayController.getPicture(gi); Action uiAction = () => { if (this.IsHandleCreated) { ArtworkLoad(gi); } }; this.BeginInvoke(uiAction); }; LinearAudioPlayer.WorkerThread.EnqueueTask(getPcitureAction); this.Hide(); } }