public Tuple<string, string, WriteableResult, bool> ScanSingleMediaFile( string fileName, bool queryArtwork = true) { try { var getFileAudioFingerPrint = AcoustID.fingerPrintScanner.FingerPrint( fileName ); var queryMetaDataFromFingerPrint = AcoustID.QueryAPI( AcoustID.DEFAULT_METADATA_QUERY, getFileAudioFingerPrint ); JSON_Result jsonSerializedObject = JsonConvert.DeserializeObject<JSON_Result>( queryMetaDataFromFingerPrint ); WriteableResult writeableResult = new WriteableResult( jsonSerializedObject, fileName, queryArtwork, 4 ); int indexOfFinalDirectory = fileName.LastIndexOf( "\\" ) + 1; string partialFileName = fileName.Substring( indexOfFinalDirectory ); Tuple<string, string, WriteableResult, bool> ScanItem = new Tuple<string, string, WriteableResult, bool>( fileName, partialFileName, writeableResult, false ); return ScanItem; } catch ( Exception ex ) { ExceptionList.Add( new Tuple<string, string>( fileName, ex.Message + System.Environment.NewLine + ex.StackTrace ) ); return null; } }
// Creates a TabControl for all Writeable Results from the scanned item // If downloadArtwork is true, then this function will query http://coverartarchive.org for the // file's artwork based on it's MusicBrainz ReleaseID TabControl CreateWriteableResultTabControl( WriteableResult scannedFile, MediaFile mf, bool downloadArtwork ) { TabControl tc = new TabControl( ); try { tc.Name = "tcWriteableResultOptions"; // for format testing tc.Background = System.Windows.Media.Brushes.CadetBlue; // AcoustID scanner logic, hardcoded constructor arguments var tabItems = CreateResultOptionTabItems( scannedFile.WriteableResultOptions, mf, downloadArtwork ); // If there are writeable results, then each result tabitem will be added to the TabControl if ( tabItems.Count > 0 ) { foreach ( TabItem tabItem in tabItems ) { tc.Items.Add( tabItem ); } } else { try { var zeroResultTabItem = CreateZeroResultOptionTabItem( mf ); tc.Items.Add( zeroResultTabItem ); SetTabControlStyleToHideTabItemHeaders( tc ); tc.SelectedItem = tc.Items [ 0 ]; } catch { MessageBox.Show("hhhh"); } } } catch(Exception ex) { MessageBox.Show( ex.Message + System.Environment.NewLine + ex.StackTrace ); } return tc; }
// TabItem CreateFileTabItem( WriteableResult scannedFile, MediaFile mf, bool downloadArtwork ) { TabItem tabItem = new TabItem( ); tabItem.Name = SetTabItemName( mf.PartialFileName, tabItem ); tabItem.Header = tabItem.Name; // Creates the primary Grid for the the tcFileInformation TabControl // Each column will contain a sub Grid // This Grid will named by the associated MediaFile's PartialFileName // for mapping and selection purposes Grid primaryGrid = new Grid( ); primaryGrid.Name = SetSubGridName( mf.PartialFileName, primaryGrid ); primaryGrid.ColumnDefinitions.Add( new ColumnDefinition( ) ); primaryGrid.ColumnDefinitions.Add( new ColumnDefinition( ) ); Grid queryGrid = new Grid( ); queryGrid.Name = "queryGrid"; Grid.SetColumn( queryGrid, 0 ); // queryGrid structure ----> queryGrid.RowDefinitions.Add( new RowDefinition( ) ); queryGrid.RowDefinitions.Add( new RowDefinition( ) ); // queryGrid structure ----! Grid gridWriteableResults = new Grid( ); gridWriteableResults.RowDefinitions.Add( new RowDefinition( ) ); gridWriteableResults.RowDefinitions.Add( new RowDefinition( ) ); queryGrid.RowDefinitions [ 0 ].Height = new System.Windows.GridLength( 150 ); TabControl tcResults = CreateWriteableResultTabControl( scannedFile, mf, downloadArtwork ); Grid.SetRow( tcResults, 1 ); queryGrid.Children.Add( tcResults ); // mediafile specific grid, the second paramter is a form specific global to name the MediaFile specific grids Grid mfGrid = CreateMediaFileTabItem( mf, ++NumberOfMediaFiles ); Grid.SetColumn( mfGrid, 1 ); primaryGrid.Children.Add( mfGrid ); // Add the constructed subgrids to the primaryGrid and then set the TabItem content to primaryGrid primaryGrid.Children.Add( queryGrid ); tabItem.Content = primaryGrid; return tabItem; }