├── .gitignore ├── Acknowledgments.rtf ├── AppleScript ├── Add to iTunes Library.scpt ├── Delete Preferences.scpt ├── Delete Saved CD Information.scpt ├── Get iTunes Metadata.scpt └── Max.sdef ├── CompactDisc ├── CompactDisc.h ├── CompactDisc.m ├── CompactDiscDocument.h ├── CompactDiscDocument.m ├── CompactDiscDocumentToolbar.h ├── CompactDiscDocumentToolbar.m ├── Track.h └── Track.m ├── Controllers ├── AcknowledgmentsController.h ├── AcknowledgmentsController.m ├── ApplicationController.h ├── ApplicationController.m ├── CompactDiscController.h ├── CompactDiscController.m ├── ComponentVersionsController.h ├── ComponentVersionsController.mm ├── EncoderController.h ├── EncoderController.m ├── FormatsController.h ├── FormatsController.m ├── LogController.h ├── LogController.m ├── MediaController.h ├── MediaController.m ├── RipperController.h └── RipperController.m ├── CueSheet ├── CueSheetDocument.h ├── CueSheetDocument.m ├── CueSheetDocumentToolbar.h ├── CueSheetDocumentToolbar.m ├── CueSheetTrack.h └── CueSheetTrack.m ├── Decoders ├── CircularBuffer.h ├── CircularBuffer.m ├── CoreAudioDecoder.h ├── CoreAudioDecoder.m ├── Decoder.h ├── Decoder.m ├── DecoderMethods.h ├── FLACDecoder.h ├── FLACDecoder.m ├── LibsndfileDecoder.h ├── LibsndfileDecoder.m ├── MPEGDecoder.h ├── MPEGDecoder.m ├── MonkeysAudioDecoder.h ├── MonkeysAudioDecoder.mm ├── MusepackDecoder.h ├── MusepackDecoder.m ├── OggFLACDecoder.h ├── OggFLACDecoder.m ├── OggSpeexDecoder.h ├── OggSpeexDecoder.m ├── OggVorbisDecoder.h ├── OggVorbisDecoder.m ├── RegionDecoder.h ├── RegionDecoder.m ├── ShortenDecoder.h ├── ShortenDecoder.m ├── WavPackDecoder.h └── WavPackDecoder.m ├── Drive ├── Drive.h ├── Drive.m ├── SectorRange.h ├── SectorRange.m ├── SessionDescriptor.h ├── SessionDescriptor.m ├── TrackDescriptor.h └── TrackDescriptor.m ├── Encoders ├── CoreAudioEncoder.h ├── CoreAudioEncoder.m ├── Encoder.h ├── Encoder.m ├── EncoderMethods.h ├── FLACEncoder.h ├── FLACEncoder.m ├── LibsndfileEncoder.h ├── LibsndfileEncoder.m ├── MP3Encoder.h ├── MP3Encoder.m ├── MonkeysAudioEncoder.h ├── MonkeysAudioEncoder.mm ├── OggFLACEncoder.h ├── OggFLACEncoder.m ├── OggSpeexEncoder.h ├── OggSpeexEncoder.m ├── OggVorbisEncoder.h ├── OggVorbisEncoder.m ├── WavPackEncoder.h └── WavPackEncoder.m ├── Exceptions ├── FileFormatNotSupportedException.h ├── FileFormatNotSupportedException.m ├── StopException.h └── StopException.m ├── FileConversion ├── FileArrayController.h ├── FileArrayController.m ├── FileConversionController.h ├── FileConversionController.m ├── FileConversionToolbar.h ├── FileConversionToolbar.m ├── FilesTableView.h └── FilesTableView.m ├── Formatters ├── SecondsFormatter.h └── SecondsFormatter.m ├── Icons ├── CDInfo.icns ├── Cuesheet.icns └── Max.icns ├── Images ├── Add.png ├── Add_Pressed.png ├── AlbumArtToolbarImage.png ├── ClearLogToolbarImage.png ├── EjectDiscToolbarImage.png ├── EncodeToolbarImage.png ├── FLAC.png ├── FormatsToolbarImage.png ├── GeneralToolbarImage.png ├── LAME.png ├── MonkeysAudio.png ├── MusicBrainz.png ├── OutputToolbarImage.png ├── PostProcessingToolbarImage.png ├── Remove.png ├── Remove_Pressed.png ├── RipperToolbarImage.png ├── SaveLogToolbarImage.png ├── SelectNextTrackToolbarImage.png ├── SelectPreviousTrackToolbarImage.png ├── Speex.png ├── TaggingToolbarImage.png ├── TrackInfoToolbarImage.png ├── WavPack.png ├── iTunesToolbarImage.png └── libsndfile.png ├── Info.plist ├── LICENSE.txt ├── Max.entitlements ├── Max.xcodeproj └── project.pbxproj ├── Metadata ├── AudioMetadata.h └── AudioMetadata.mm ├── MusicBrainz ├── MusicBrainzHelper.h ├── MusicBrainzHelper.m ├── MusicBrainzMatchSheet.h └── MusicBrainzMatchSheet.m ├── Preferences ├── AlbumArtPreferencesController.h ├── AlbumArtPreferencesController.m ├── Defaults │ ├── AlbumArtDefaults.plist │ ├── ApplicationControllerDefaults.plist │ ├── ComparisonRipperDefaults.plist │ ├── ConverterTaskDefaults.plist │ ├── MediaControllerDefaults.plist │ ├── PCMGeneratingTaskDefaults.plist │ └── ParanoiaDefaults.plist ├── EncoderSettingsSheets │ ├── CoreAudioSettingsSheet.h │ ├── CoreAudioSettingsSheet.m │ ├── EncoderSettingsSheet.h │ ├── EncoderSettingsSheet.m │ ├── FLACSettingsSheet.h │ ├── FLACSettingsSheet.m │ ├── LibsndfileSettingsSheet.h │ ├── LibsndfileSettingsSheet.m │ ├── MP3SettingsSheet.h │ ├── MP3SettingsSheet.m │ ├── MonkeysAudioSettingsSheet.h │ ├── MonkeysAudioSettingsSheet.m │ ├── OggSpeexSettingsSheet.h │ ├── OggSpeexSettingsSheet.m │ ├── OggVorbisSettingsSheet.h │ ├── OggVorbisSettingsSheet.m │ ├── WavPackSettingsSheet.h │ └── WavPackSettingsSheet.m ├── FormatsPreferencesController.h ├── FormatsPreferencesController.m ├── GeneralPreferencesController.h ├── GeneralPreferencesController.m ├── OutputPreferencesController.h ├── OutputPreferencesController.m ├── PostProcessingPreferencesController.h ├── PostProcessingPreferencesController.m ├── PreferencesController.h ├── PreferencesController.m ├── RipperPreferencesController.h ├── RipperPreferencesController.m ├── TaggingPreferencesController.h ├── TaggingPreferencesController.m ├── iTunesPreferencesController.h └── iTunesPreferencesController.m ├── README.md ├── Rippers ├── BasicRipper.h ├── BasicRipper.m ├── BitArray.h ├── BitArray.m ├── ComparisonRipper.h ├── ComparisonRipper.m ├── ParanoiaRipper.h ├── ParanoiaRipper.m ├── Rip.h ├── Rip.m ├── Ripper.h ├── Ripper.m └── RipperMethods.h ├── Tasks ├── EncoderTasks │ ├── CoreAudioEncoderTask.h │ ├── CoreAudioEncoderTask.mm │ ├── EncoderTask.h │ ├── EncoderTask.m │ ├── EncoderTaskMethods.h │ ├── FLACEncoderTask.h │ ├── FLACEncoderTask.m │ ├── LibsndfileEncoderTask.h │ ├── LibsndfileEncoderTask.mm │ ├── MP3EncoderTask.h │ ├── MP3EncoderTask.mm │ ├── MonkeysAudioEncoderTask.h │ ├── MonkeysAudioEncoderTask.mm │ ├── OggFLACEncoderTask.h │ ├── OggFLACEncoderTask.mm │ ├── OggSpeexEncoderTask.h │ ├── OggSpeexEncoderTask.mm │ ├── OggVorbisEncoderTask.h │ ├── OggVorbisEncoderTask.mm │ ├── WavPackEncoderTask.h │ └── WavPackEncoderTask.m ├── RipperTasks │ ├── BasicRipperTask.h │ ├── BasicRipperTask.m │ ├── ComparisonRipperTask.h │ ├── ComparisonRipperTask.m │ ├── ParanoiaRipperTask.h │ ├── ParanoiaRipperTask.m │ ├── RipperTask.h │ ├── RipperTask.m │ └── RipperTaskMethods.h ├── Task.h ├── Task.m ├── TaskInfo.h ├── TaskInfo.m └── TaskMethods.h ├── Utilities ├── CoreAudioUtilities.h ├── CoreAudioUtilities.m ├── GaplessUtilities.h ├── GaplessUtilities.m ├── Genres.h ├── Genres.m ├── ImageAndTextCell.h ├── ImageAndTextCell.m ├── ServicesProvider.h ├── ServicesProvider.m ├── UtilityFunctions.h ├── UtilityFunctions.m └── sha256-stdenis.c ├── ValueTransformers ├── BOOLToStringValueTransformer.h ├── BOOLToStringValueTransformer.m ├── BooleanArrayValueTransformer.h ├── BooleanArrayValueTransformer.m ├── ImageDimensionsValueTransformer.h ├── ImageDimensionsValueTransformer.m ├── MultiplicationValueTransformer.h ├── MultiplicationValueTransformer.m ├── NegateBooleanArrayValueTransformer.h ├── NegateBooleanArrayValueTransformer.m ├── UppercaseStringValueTransformer.h └── UppercaseStringValueTransformer.m ├── de.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheetDocument.xib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.xib ├── RipperPreferences.xib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib ├── dsa_pub.pem ├── en.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheet.strings ├── CueSheetDocument.xib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── Max Help │ ├── Max Help.helpindex │ ├── cdparanoia.html │ ├── encoding.html │ ├── file-naming.html │ ├── flac.html │ ├── freedb.html │ ├── glossary.html │ ├── images │ │ └── max-icon.png │ ├── index.css │ ├── index.html │ ├── max-v-itunes.html │ ├── mp3.html │ ├── ogg-vorbis.html │ ├── ripping.html │ ├── speex.html │ └── tagging.html ├── Menus.strings ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.xib ├── RipperPreferences.xib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib ├── es.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheetDocument.xib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── Max Help │ ├── Max Help.helpindex │ ├── cdparanoia.html │ ├── encoding.html │ ├── file-naming.html │ ├── flac.html │ ├── freedb.html │ ├── glossary.html │ ├── images │ │ └── max-icon.png │ ├── index.css │ ├── index.html │ ├── max-v-itunes.html │ ├── mp3.html │ ├── ogg-vorbis.html │ ├── ripping.html │ ├── speex.html │ └── tagging.html ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.xib ├── RipperPreferences.xib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib ├── fr.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheetDocument.xib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.xib ├── RipperPreferences.xib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib ├── it.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheetDocument.xib ├── Encoder.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── Menus.strings ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── Ripper.xib ├── RipperPreferences.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── RipperPreferences.xib ├── TaggingPreferences.nib │ ├── classes.nib │ ├── info.nib │ └── keyedobjects.nib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib ├── main.m ├── nb.lproj ├── CompactDisc.strings ├── Credits.rtf ├── Exceptions.strings ├── FileConversion.strings ├── General.strings ├── Genres.strings ├── InfoPlist.strings ├── Log.strings ├── MusicBrainzPreferences.xib ├── Preferences.strings └── UndoRedo.strings └── nl.lproj ├── Acknowledgments.xib ├── AlbumArtPreferences.xib ├── CompactDisc.strings ├── CompactDiscDocument.xib ├── ComponentVersions.xib ├── CoreAudioSettingsSheet.xib ├── Credits.rtf ├── CueSheetDocument.xib ├── Encoder.xib ├── Exceptions.strings ├── FLACSettingsSheet.xib ├── FileConversion.strings ├── FileConversion.xib ├── Formats.xib ├── FormatsPreferences.xib ├── General.strings ├── GeneralPreferences.xib ├── Genres.strings ├── InfoPlist.strings ├── LibsndfileSettingsSheet.xib ├── Log.strings ├── Log.xib ├── MP3SettingsSheet.xib ├── MainMenu.xib ├── MonkeysAudioSettingsSheet.xib ├── MusicBrainzMatchSheet.xib ├── OggSpeexSettingsSheet.xib ├── OggVorbisSettingsSheet.xib ├── OutputPreferences.xib ├── PostProcessingPreferences.xib ├── Preferences.strings ├── Preferences.xib ├── Ripper.xib ├── RipperPreferences.xib ├── TaggingPreferences.xib ├── UndoRedo.strings ├── WavPackSettingsSheet.xib └── iTunesPreferences.xib /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | ## Build products 4 | build/ 5 | 6 | ## Project files 7 | *.xcodeproj/xcuserdata/ 8 | *.xcodeproj/project.xcworkspace 9 | 10 | ## Workspace files 11 | *.xcworkspace/xcuserdata/ 12 | 13 | Frameworks/ 14 | -------------------------------------------------------------------------------- /AppleScript/Add to iTunes Library.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/AppleScript/Add to iTunes Library.scpt -------------------------------------------------------------------------------- /AppleScript/Delete Preferences.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/AppleScript/Delete Preferences.scpt -------------------------------------------------------------------------------- /AppleScript/Delete Saved CD Information.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/AppleScript/Delete Saved CD Information.scpt -------------------------------------------------------------------------------- /AppleScript/Get iTunes Metadata.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/AppleScript/Get iTunes Metadata.scpt -------------------------------------------------------------------------------- /CompactDisc/CompactDiscDocumentToolbar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "CompactDiscDocument.h" 22 | 23 | @interface CompactDiscDocumentToolbar : NSToolbar 24 | { 25 | CompactDiscDocument *_document; 26 | } 27 | 28 | - (instancetype) initWithCompactDiscDocument:(CompactDiscDocument *)document; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Controllers/AcknowledgmentsController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface AcknowledgmentsController : NSWindowController 22 | { 23 | IBOutlet NSTextView *_text; 24 | } 25 | 26 | + (AcknowledgmentsController *) sharedController; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Controllers/ApplicationController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface NSApplication (ScriptingAdditions) 22 | - (instancetype) handleConvertScriptCommand:(NSScriptCommand *)command; 23 | @end 24 | 25 | @interface ApplicationController : NSObject 26 | { 27 | } 28 | 29 | + (ApplicationController *) sharedController; 30 | 31 | - (IBAction) showPreferences:(id)sender; 32 | - (IBAction) showAcknowledgments:(id)sender; 33 | - (IBAction) showComponentVersions:(id)sender; 34 | 35 | - (IBAction) toggleRipperWindow:(id)sender; 36 | - (IBAction) toggleEncoderWindow:(id)sender; 37 | - (IBAction) toggleLogWindow:(id)sender; 38 | - (IBAction) toggleFormatsWindow:(id)sender; 39 | 40 | - (IBAction) openHomeURL:(id)sender; 41 | 42 | - (IBAction) encodeFile:(id)sender; 43 | 44 | - (void) encodeFiles:(NSArray *)filenames; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Controllers/CompactDiscController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface CompactDiscController : NSWindowController 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Controllers/CompactDiscController.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "CompactDiscController.h" 20 | #import "CompactDiscDocument.h" 21 | 22 | @implementation CompactDiscController 23 | 24 | - (NSString *) windowTitleForDocumentDisplayName:(NSString *)displayName 25 | { 26 | NSString *title = [[self document] title]; 27 | 28 | if(nil == title) { 29 | return [NSString stringWithFormat:NSLocalizedStringFromTable(@"Compact Disc %@", @"CompactDisc", @""), [[self document] discID]]; 30 | } 31 | else { 32 | return title; 33 | } 34 | } 35 | 36 | - (void) observeValueForKeyPath:(NSString *) keyPath ofObject:(id) object change:(NSDictionary *) change context:(void *) context 37 | { 38 | if([keyPath isEqualToString:@"title"]) { 39 | [self synchronizeWindowTitleWithDocumentName]; 40 | } 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Controllers/ComponentVersionsController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface ComponentVersionsController : NSWindowController 22 | { 23 | NSString *_flacVersion; 24 | NSString *_lameVersion; 25 | NSString *_speexVersion; 26 | NSString *_libsndfileVersion; 27 | NSString *_macVersion; 28 | NSString *_wavPackVersion; 29 | } 30 | 31 | + (ComponentVersionsController *) sharedController; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Controllers/FormatsController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface FormatsController : NSWindowController 22 | { 23 | IBOutlet NSArrayController *_encodersController; 24 | } 25 | 26 | + (FormatsController *) sharedController; 27 | 28 | - (NSArray *) selectedFormats; 29 | 30 | - (IBAction) setupEncoders:(id)sender; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Controllers/LogController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface LogController : NSWindowController 22 | { 23 | NSMutableArray *_logEntries; 24 | IBOutlet NSArrayController *_logEntriesController; 25 | } 26 | 27 | + (LogController *) sharedController; 28 | + (void) logMessage:(NSString *)message; 29 | 30 | - (IBAction) clear:(id)sender; 31 | - (IBAction) save:(id)sender; 32 | 33 | - (void) logMessage:(NSString *)message; 34 | 35 | - (NSUInteger) countOfLogEntries; 36 | - (NSDictionary *) objectInLogEntriesAtIndex:(NSUInteger)index; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Controllers/MediaController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "CompactDiscDocument.h" 22 | 23 | #import 24 | 25 | @interface MediaController : NSObject 26 | { 27 | DASessionRef _session; 28 | } 29 | 30 | + (MediaController *) sharedController; 31 | 32 | - (void) ejectDiscForDocument:(CompactDiscDocument *)document; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /CueSheet/CueSheetDocumentToolbar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "CueSheetDocument.h" 22 | 23 | @interface CueSheetDocumentToolbar : NSToolbar 24 | { 25 | CueSheetDocument *_document; 26 | } 27 | 28 | - (instancetype) initWithCueSheetDocument:(CueSheetDocument *)document; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Decoders/CircularBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | // A simple implementation of a circular (AKA ring) buffer 22 | @interface CircularBuffer : NSObject 23 | { 24 | uint8_t *_buffer; 25 | NSUInteger _bufsize; 26 | 27 | uint8_t *_readPtr; 28 | uint8_t *_writePtr; 29 | } 30 | 31 | - (instancetype) initWithSize:(NSUInteger)size; 32 | 33 | - (void) reset; 34 | 35 | - (NSUInteger) size; 36 | - (void) resize:(NSUInteger)size; 37 | 38 | - (NSUInteger) bytesAvailable; 39 | - (NSUInteger) freeSpaceAvailable; 40 | 41 | - (NSUInteger) putData:(const void *)data byteCount:(NSUInteger)byteCount; 42 | - (NSUInteger) getData:(void *)buffer byteCount:(NSUInteger)byteCount; 43 | 44 | - (const void *) exposeBufferForReading; 45 | - (void) readBytes:(NSUInteger)byteCount; 46 | 47 | - (void *) exposeBufferForWriting; 48 | - (void) wroteBytes:(NSUInteger)byteCount; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Decoders/CoreAudioDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface CoreAudioDecoder : Decoder 25 | { 26 | ExtAudioFileRef _extAudioFile; 27 | AudioStreamBasicDescription _sourceFormat; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Decoders/DecoderMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #include 21 | 22 | @protocol DecoderMethods 23 | 24 | // The type of PCM data provided by this Decoder 25 | - (AudioStreamBasicDescription) pcmFormat; 26 | 27 | // A descriptive string of the PCM data format 28 | - (NSString *) pcmFormatDescription; 29 | 30 | // Attempt to read frameCount frames of audio, returning the actual number of frames read 31 | - (UInt32) readAudio:(AudioBufferList *)bufferList frameCount:(UInt32)frameCount; 32 | 33 | // The format of audio data provided by the source 34 | - (NSString *) sourceFormatDescription; 35 | 36 | // Input audio frame information 37 | - (SInt64) totalFrames; 38 | - (SInt64) currentFrame; 39 | 40 | - (BOOL) supportsSeeking; 41 | - (SInt64) seekToFrame:(SInt64)frame; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Decoders/FLACDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface FLACDecoder : Decoder 25 | { 26 | FLAC__StreamDecoder *_flac; 27 | FLAC__uint64 _totalSamples; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Decoders/LibsndfileDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface LibsndfileDecoder : Decoder 25 | { 26 | SNDFILE *_sf; 27 | int _format; 28 | sf_count_t _totalFrames; 29 | } 30 | 31 | - (int) format; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Decoders/MPEGDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2006 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface MPEGDecoder : Decoder 25 | { 26 | FILE *_file; 27 | unsigned char *_inputBuffer; 28 | 29 | AudioBufferList *_bufferList; 30 | 31 | uint32_t _mpegFramesDecoded; 32 | uint32_t _totalMPEGFrames; 33 | 34 | NSUInteger _samplesToSkipInNextFrame; 35 | 36 | SInt64 _myCurrentFrame; 37 | SInt64 _totalFrames; 38 | 39 | uint16_t _encoderDelay; 40 | uint16_t _encoderPadding; 41 | 42 | SInt64 _samplesDecoded; 43 | NSUInteger _samplesPerMPEGFrame; 44 | 45 | BOOL _foundXingHeader; 46 | BOOL _foundLAMEHeader; 47 | 48 | off_t _fileBytes; 49 | uint8_t _xingTOC [100]; 50 | 51 | struct mad_stream _mad_stream; 52 | struct mad_frame _mad_frame; 53 | struct mad_synth _mad_synth; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /Decoders/MonkeysAudioDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | @interface MonkeysAudioDecoder : Decoder 23 | { 24 | void *_decompressor; // Use a void * to avoid any C++ here 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Decoders/MusepackDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface MusepackDecoder : Decoder 25 | { 26 | mpc_reader _reader; 27 | mpc_demux *_demux; 28 | mpc_streaminfo _streaminfo; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Decoders/OggFLACDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface OggFLACDecoder : Decoder 25 | { 26 | FLAC__StreamDecoder *_flac; 27 | FLAC__uint64 _totalSamples; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Decoders/OggSpeexDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | @interface OggSpeexDecoder : Decoder 27 | { 28 | int _fd; 29 | 30 | ogg_sync_state _oy; 31 | ogg_page _og; 32 | ogg_stream_state _os; 33 | 34 | void *_st; 35 | SpeexBits _bits; 36 | SpeexStereoState _stereo; 37 | 38 | NSUInteger _packetCount; 39 | 40 | NSUInteger _framesPerPacket; 41 | NSUInteger _extraHeaderCount; 42 | } 43 | 44 | - (NSUInteger) packetCount; 45 | 46 | - (NSUInteger) framesPerPacket; 47 | - (NSUInteger) extraHeaderCount; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Decoders/OggVorbisDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface OggVorbisDecoder : Decoder 25 | { 26 | OggVorbis_File _vf; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Decoders/ShortenDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #define HAVE_STRERROR 23 | #include 24 | 25 | @interface ShortenDecoder : Decoder 26 | { 27 | shn_file *_shn; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Decoders/WavPackDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Decoder.h" 21 | 22 | #include 23 | 24 | @interface WavPackDecoder : Decoder 25 | { 26 | WavpackContext *_wpc; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Drive/SectorRange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface SectorRange : NSObject 22 | { 23 | NSUInteger _firstSector; 24 | NSUInteger _lastSector; 25 | } 26 | 27 | + (id) sectorRangeWithFirstSector:(NSUInteger)firstSector lastSector:(NSUInteger)lastSector; 28 | + (id) sectorRangeWithFirstSector:(NSUInteger)firstSector sectorCount:(NSUInteger)sectorCount; 29 | + (id) sectorRangeWithSector:(NSUInteger)sector; 30 | 31 | - (NSUInteger) firstSector; 32 | - (void) setFirstSector:(NSUInteger)sector; 33 | 34 | - (NSUInteger) lastSector; 35 | - (void) setLastSector:(NSUInteger)sector; 36 | 37 | - (NSUInteger) length; 38 | - (NSUInteger) byteSize; 39 | 40 | - (NSUInteger) indexForSector:(NSUInteger)sector; 41 | - (NSUInteger) sectorForIndex:(NSUInteger)index; 42 | 43 | - (BOOL) containsSector:(NSUInteger)sector; 44 | - (BOOL) containsSectorRange:(SectorRange *)range; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Drive/SessionDescriptor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface SessionDescriptor : NSObject 22 | { 23 | NSUInteger _number; 24 | NSUInteger _firstTrack; 25 | NSUInteger _lastTrack; 26 | NSUInteger _leadOut; 27 | } 28 | 29 | - (NSUInteger) number; 30 | - (void) setNumber:(NSUInteger)number; 31 | 32 | - (NSUInteger) firstTrack; 33 | - (void) setFirstTrack:(NSUInteger)firstTrack; 34 | 35 | - (NSUInteger) lastTrack; 36 | - (void) setLastTrack:(NSUInteger)lastTrack; 37 | 38 | - (NSUInteger) leadOut; 39 | - (void) setLeadOut:(NSUInteger)leadOut; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Drive/TrackDescriptor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | // A representation of the information for a single track contained in a CDTOC 22 | @interface TrackDescriptor : NSObject 23 | { 24 | unsigned _session; 25 | unsigned _number; 26 | unsigned _firstSector; 27 | unsigned _channels; 28 | BOOL _preEmphasis; 29 | BOOL _copyPermitted; 30 | BOOL _dataTrack; 31 | } 32 | 33 | - (unsigned) session; 34 | - (void) setSession:(unsigned)session; 35 | 36 | - (unsigned) number; 37 | - (void) setNumber:(unsigned)number; 38 | 39 | - (unsigned) firstSector; 40 | - (void) setFirstSector:(unsigned)firstSector; 41 | 42 | - (unsigned) channels; 43 | - (void) setChannels:(unsigned)channels; 44 | 45 | - (BOOL) preEmphasis; 46 | - (void) setPreEmphasis:(BOOL)preEmphasis; 47 | 48 | - (BOOL) copyPermitted; 49 | - (void) setCopyPermitted:(BOOL)copyPermitted; 50 | 51 | - (BOOL) dataTrack; 52 | - (void) setDataTrack:(BOOL)dataTrack; 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /Encoders/CoreAudioEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Encoder.h" 21 | 22 | @interface CoreAudioEncoder : Encoder 23 | { 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Encoders/Encoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderMethods.h" 22 | #import "EncoderTaskMethods.h" 23 | 24 | // An Encoder is responsible for taking audio input from a Decoder and turning it into a different format 25 | @interface Encoder : NSObject 26 | { 27 | id _delegate; 28 | NSString *_sourceFilename; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Encoders/EncoderMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderTaskMethods.h" 21 | 22 | @protocol EncoderMethods 23 | 24 | + (void) connectWithPorts:(NSArray *)portArray; 25 | 26 | - (oneway void) encodeToFile:(NSString *)filename; 27 | 28 | - (NSString *) settingsString; 29 | 30 | - (id ) delegate; 31 | - (void) setDelegate:(id )delegate; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Encoders/FLACEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "Encoder.h" 21 | 22 | #include 23 | 24 | @interface FLACEncoder : Encoder 25 | { 26 | FLAC__StreamEncoder *_flac; 27 | 28 | UInt32 _sourceBitsPerChannel; 29 | 30 | BOOL _exhaustiveModelSearch; 31 | BOOL _enableMidSide; 32 | BOOL _enableLooseMidSide; 33 | int _QLPCoeffPrecision; 34 | BOOL _enableQLPCoeffPrecisionSearch; 35 | int _minPartitionOrder; 36 | int _maxPartitionOrder; 37 | int _maxLPCOrder; 38 | NSString *_apodization; 39 | unsigned _padding; 40 | BOOL _verifyEncoding; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Encoders/LibsndfileEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Encoder.h" 22 | 23 | @interface LibsndfileEncoder : Encoder 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Encoders/MP3Encoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #include 22 | 23 | #import "Encoder.h" 24 | 25 | // Tag values for NSPopupButton 26 | enum { 27 | LAME_TARGET_BITRATE = 0, 28 | LAME_TARGET_QUALITY = 1, 29 | 30 | LAME_ENCODING_ENGINE_QUALITY_FAST = 0, 31 | LAME_ENCODING_ENGINE_QUALITY_STANDARD = 1, 32 | LAME_ENCODING_ENGINE_QUALITY_HIGH = 2, 33 | 34 | LAME_VARIABLE_BITRATE_MODE_STANDARD = 0, 35 | LAME_VARIABLE_BITRATE_MODE_FAST = 1, 36 | 37 | LAME_USER_PRESET_BEST = 1, 38 | LAME_USER_PRESET_TRANSPARENT = 2, 39 | LAME_USER_PRESET_PORTABLE = 3, 40 | LAME_USER_PRESET_CUSTOM = 0 , 41 | 42 | LAME_STEREO_MODE_DEFAULT = 0, 43 | LAME_STEREO_MODE_MONO = 1, 44 | LAME_STEREO_MODE_STEREO = 2, 45 | LAME_STEREO_MODE_JOINT_STEREO = 3, 46 | }; 47 | 48 | @interface MP3Encoder : Encoder 49 | { 50 | FILE *_out; 51 | lame_global_flags *_gfp; 52 | UInt32 _sourceBitsPerChannel; 53 | } 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Encoders/MonkeysAudioEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | #import "Encoder.h" 26 | 27 | enum { 28 | MAC_COMPRESSION_LEVEL_FAST = 1, 29 | MAC_COMPRESSION_LEVEL_NORMAL = 2, 30 | MAC_COMPRESSION_LEVEL_HIGH = 3, 31 | MAC_COMPRESSION_LEVEL_EXTRA_HIGH = 4, 32 | MAC_COMPRESSION_LEVEL_INSANE = 5 33 | }; 34 | 35 | @interface MonkeysAudioEncoder : Encoder 36 | { 37 | APE::IAPECompress *_compressor; 38 | int _compressionLevel; 39 | UInt32 _sourceBitsPerChannel; 40 | UInt32 _sourceBytesPerFrame; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Encoders/OggFLACEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #include 22 | 23 | #import "Encoder.h" 24 | 25 | @interface OggFLACEncoder : Encoder 26 | { 27 | FLAC__StreamEncoder *_flac; 28 | 29 | UInt32 _sourceBitsPerChannel; 30 | 31 | BOOL _exhaustiveModelSearch; 32 | BOOL _enableMidSide; 33 | BOOL _enableLooseMidSide; 34 | int _QLPCoeffPrecision; 35 | int _minPartitionOrder; 36 | int _maxPartitionOrder; 37 | int _maxLPCOrder; 38 | unsigned _padding; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Encoders/OggSpeexEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Encoder.h" 22 | 23 | // Tag values for NSPopupButton 24 | enum { 25 | SPEEX_MODE_NARROWBAND = 0, 26 | SPEEX_MODE_WIDEBAND = 1, 27 | SPEEX_MODE_ULTRAWIDEBAND = 2, 28 | 29 | SPEEX_TARGET_QUALITY = 0, 30 | SPEEX_TARGET_BITRATE = 1 31 | }; 32 | 33 | @interface OggSpeexEncoder : Encoder 34 | { 35 | // Settings flags 36 | int _mode; 37 | int _target; 38 | int _quality; 39 | int _bitrate; 40 | int _complexity; 41 | int _framesPerOggPacket; 42 | 43 | BOOL _resampleInput; 44 | BOOL _denoiseEnabled; 45 | BOOL _agcEnabled; 46 | BOOL _vbrEnabled; 47 | BOOL _abrEnabled; 48 | BOOL _dtxEnabled; 49 | BOOL _vadEnabled; 50 | 51 | BOOL _saveSettingsInComment; 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /Encoders/OggVorbisEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Encoder.h" 22 | 23 | // Tag values for NSPopupButton 24 | enum { 25 | VORBIS_MODE_QUALITY = 0, 26 | VORBIS_MODE_BITRATE = 1, 27 | }; 28 | 29 | @interface OggVorbisEncoder : Encoder 30 | { 31 | FILE *_out; 32 | 33 | int _mode; 34 | float _quality; 35 | long _bitrate; 36 | BOOL _cbr; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Encoders/WavPackEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Encoder.h" 22 | 23 | // Tag values for NSPopupButton 24 | enum { 25 | WAVPACK_STEREO_MODE_DEFAULT = 0, 26 | WAVPACK_STEREO_MODE_STEREO = 1, 27 | WAVPACK_STEREO_MODE_JOINT_STEREO = 2, 28 | 29 | WAVPACK_COMPRESSION_MODE_DEFAULT = 0, 30 | WAVPACK_COMPRESSION_MODE_HIGH = 1, 31 | WAVPACK_COMPRESSION_MODE_FAST = 2, 32 | WAVPACK_COMPRESSION_MODE_VERY_HIGH = 3, 33 | 34 | WAVPACK_HYBRID_MODE_BITS_PER_SAMPLE = 0, 35 | WAVPACK_HYBRID_MODE_BITRATE = 1, 36 | 37 | }; 38 | 39 | @interface WavPackEncoder : Encoder 40 | { 41 | int _flags; 42 | float _noiseShaping; 43 | float _bitrate; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Exceptions/FileFormatNotSupportedException.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface FileFormatNotSupportedException : NSException 22 | { 23 | } 24 | 25 | + (NSException *) exceptionWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo; 26 | 27 | - (instancetype) initWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Exceptions/FileFormatNotSupportedException.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty oFLACf 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "FileFormatNotSupportedException.h" 20 | 21 | @implementation FileFormatNotSupportedException 22 | 23 | + (NSException *) exceptionWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo 24 | { 25 | return [[[FileFormatNotSupportedException alloc] initWithReason:reason userInfo:userInfo] autorelease]; 26 | } 27 | 28 | - (id) initWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo 29 | { 30 | return [super initWithName:@"FileFormatNotSupportedException" reason:reason userInfo:userInfo]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Exceptions/StopException.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface StopException : NSException 22 | { 23 | } 24 | 25 | + (NSException *) exceptionWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo; 26 | 27 | - (instancetype) initWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Exceptions/StopException.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "StopException.h" 20 | 21 | @implementation StopException 22 | 23 | + (NSException *) exceptionWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo 24 | { 25 | return [[[StopException alloc] initWithReason:reason userInfo:userInfo] autorelease]; 26 | } 27 | 28 | - (id) initWithReason:(NSString *)reason userInfo:(NSDictionary *)userInfo 29 | { 30 | return [super initWithName:@"StopException" reason:reason userInfo:userInfo]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /FileConversion/FileArrayController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface FileArrayController : NSArrayController 22 | { 23 | IBOutlet NSTableView *_tableView; 24 | } 25 | 26 | - (NSDictionary *) findFile:(NSString *)filename; 27 | - (BOOL) containsFile:(NSString *)filename; 28 | 29 | - (void) selectFile:(NSString *)filename; 30 | 31 | - (BOOL) tableView:(NSTableView *)tv writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard; 32 | - (NSDragOperation) tableView:(NSTableView *)tv validateDrop:(id )info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)op; 33 | - (BOOL) tableView:(NSTableView *)tv acceptDrop:(id )info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)op; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /FileConversion/FileConversionToolbar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface FileConversionToolbar : NSToolbar 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /FileConversion/FilesTableView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "FileArrayController.h" 22 | 23 | @interface FilesTableView : NSTableView 24 | { 25 | IBOutlet FileArrayController *_filesController; 26 | } 27 | 28 | - (IBAction) openWithFinder:(id)sender; 29 | - (IBAction) revealInFinder:(id)sender; 30 | 31 | - (IBAction) playWithPlay:(id)sender; 32 | - (IBAction) editWithTag:(id)sender; 33 | 34 | - (IBAction) openWith:(id)sender; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Formatters/SecondsFormatter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface SecondsFormatter : NSFormatter 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Icons/CDInfo.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Icons/CDInfo.icns -------------------------------------------------------------------------------- /Icons/Cuesheet.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Icons/Cuesheet.icns -------------------------------------------------------------------------------- /Icons/Max.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Icons/Max.icns -------------------------------------------------------------------------------- /Images/Add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/Add.png -------------------------------------------------------------------------------- /Images/Add_Pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/Add_Pressed.png -------------------------------------------------------------------------------- /Images/AlbumArtToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/AlbumArtToolbarImage.png -------------------------------------------------------------------------------- /Images/ClearLogToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/ClearLogToolbarImage.png -------------------------------------------------------------------------------- /Images/EjectDiscToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/EjectDiscToolbarImage.png -------------------------------------------------------------------------------- /Images/EncodeToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/EncodeToolbarImage.png -------------------------------------------------------------------------------- /Images/FLAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/FLAC.png -------------------------------------------------------------------------------- /Images/FormatsToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/FormatsToolbarImage.png -------------------------------------------------------------------------------- /Images/GeneralToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/GeneralToolbarImage.png -------------------------------------------------------------------------------- /Images/LAME.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/LAME.png -------------------------------------------------------------------------------- /Images/MonkeysAudio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/MonkeysAudio.png -------------------------------------------------------------------------------- /Images/MusicBrainz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/MusicBrainz.png -------------------------------------------------------------------------------- /Images/OutputToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/OutputToolbarImage.png -------------------------------------------------------------------------------- /Images/PostProcessingToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/PostProcessingToolbarImage.png -------------------------------------------------------------------------------- /Images/Remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/Remove.png -------------------------------------------------------------------------------- /Images/Remove_Pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/Remove_Pressed.png -------------------------------------------------------------------------------- /Images/RipperToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/RipperToolbarImage.png -------------------------------------------------------------------------------- /Images/SaveLogToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/SaveLogToolbarImage.png -------------------------------------------------------------------------------- /Images/SelectNextTrackToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/SelectNextTrackToolbarImage.png -------------------------------------------------------------------------------- /Images/SelectPreviousTrackToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/SelectPreviousTrackToolbarImage.png -------------------------------------------------------------------------------- /Images/Speex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/Speex.png -------------------------------------------------------------------------------- /Images/TaggingToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/TaggingToolbarImage.png -------------------------------------------------------------------------------- /Images/TrackInfoToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/TrackInfoToolbarImage.png -------------------------------------------------------------------------------- /Images/WavPack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/WavPack.png -------------------------------------------------------------------------------- /Images/iTunesToolbarImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/iTunesToolbarImage.png -------------------------------------------------------------------------------- /Images/libsndfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/Images/libsndfile.png -------------------------------------------------------------------------------- /Max.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.automation.apple-events 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MusicBrainz/MusicBrainzHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | void PerformMusicBrainzQuery(NSString *discID, void (^completionHandler)(NSArray * _Nullable, NSError * _Nullable)); 24 | void PerformCoverArtArchiveQuery(NSString *releaseID, void (^completionHandler)(NSImage * _Nullable, NSError * _Nullable)); 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /MusicBrainz/MusicBrainzMatchSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface MusicBrainzMatchSheet : NSObject 22 | { 23 | IBOutlet NSWindow *_sheet; 24 | IBOutlet NSArrayController *_matchesController; 25 | 26 | NSArray *_matches; 27 | } 28 | 29 | - (NSWindow *) sheet; 30 | 31 | - (NSDictionary *) selectedRelease; 32 | 33 | - (IBAction) ok:(id)sender; 34 | - (IBAction) cancel:(id)sender; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Preferences/AlbumArtPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface AlbumArtPreferencesController : NSWindowController 22 | { 23 | IBOutlet NSComboBox *_albumArtFileNamingComboBox; 24 | IBOutlet NSPopUpButton *_albumArtFormatSpecifierPopUpButton; 25 | } 26 | 27 | - (IBAction) insertAlbumArtFileNamingFormatSpecifier:(id)sender; 28 | - (IBAction) saveAlbumArtFileNamingFormat:(id)sender; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Preferences/Defaults/AlbumArtDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | amazonDefaultLocale 6 | 1 7 | albumArtFileFormat 8 | 3 9 | 10 | 11 | -------------------------------------------------------------------------------- /Preferences/Defaults/ApplicationControllerDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | outputDirectory 6 | ~/Music 7 | convertInPlace 8 | 9 | useiTunesWorkarounds 10 | 11 | maximumEncoderThreads 12 | 2 13 | useDynamicWindows 14 | 15 | fileNamingFormat 16 | {albumArtist}/{albumTitle}/{trackNumber} {trackTitle} 17 | 18 | 19 | -------------------------------------------------------------------------------- /Preferences/Defaults/ComparisonRipperDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | comparisonRipperRequiredMatches 6 | 3 7 | comparisonRipperMaximumRetries 8 | 20 9 | comparisonRipperUseHashes 10 | 11 | comparisonRipperUseC2 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Preferences/Defaults/ConverterTaskDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Preferences/Defaults/MediaControllerDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | automaticallyQueryMusicBrainz 6 | 7 | automaticallySaveMusicBrainzInfo 8 | 9 | automaticallyEncodeTracks 10 | 11 | ejectAfterRipping 12 | 13 | closeWindowAfterEncoding 14 | 15 | onFirstInsertOnly 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Preferences/Defaults/PCMGeneratingTaskDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | useCustomTmpDirectory 6 | 7 | tmpDirectory 8 | /tmp 9 | selectedRipper 10 | 1 11 | enableRipperLogging 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Preferences/Defaults/ParanoiaDefaults.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | paranoiaEnable 6 | 7 | paranoiaLevel 8 | 0 9 | paranoiaNeverSkip 10 | 11 | paranoiaMaximumRetries 12 | 20 13 | 14 | 15 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/CoreAudioSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface CoreAudioSettingsSheet : EncoderSettingsSheet 23 | { 24 | IBOutlet NSPopUpButton *_bitratePopUpButton; 25 | 26 | IBOutlet NSArrayController *_subtypesController; 27 | NSMutableArray *_availableSubtypes; 28 | 29 | NSString *_formatName; 30 | } 31 | 32 | - (instancetype) initWithSettings:(NSDictionary *)settings; 33 | 34 | - (NSString *) formatName; 35 | - (void) setFormatName:(NSString *)formatName; 36 | 37 | - (IBAction) vbrButtonClicked:(id)sender; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/EncoderSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface EncoderSettingsSheet : NSObject 22 | { 23 | IBOutlet NSWindow *_sheet; 24 | IBOutlet NSObjectController *_settingsController; 25 | 26 | NSMutableDictionary *_settings; 27 | NSDictionary *_searchKey; 28 | } 29 | 30 | + (NSDictionary *) defaultSettings; 31 | 32 | - (instancetype) initWithNibName:(NSString *)nibName settings:(NSDictionary *)settings; 33 | 34 | - (NSDictionary *) searchKey; 35 | - (void) setSearchKey:(NSDictionary *)searchKey; 36 | 37 | - (NSDictionary *) settings; 38 | - (void) setSettings:(NSDictionary *)settings; 39 | 40 | - (NSWindow *) sheet; 41 | 42 | - (IBAction) ok:(id)sender; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/FLACSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | enum { 23 | FLAC_COMPRESSION_LEVEL_0 = 1, 24 | FLAC_COMPRESSION_LEVEL_1 = 2, 25 | FLAC_COMPRESSION_LEVEL_2 = 3, 26 | FLAC_COMPRESSION_LEVEL_3 = 4, 27 | FLAC_COMPRESSION_LEVEL_4 = 5, 28 | FLAC_COMPRESSION_LEVEL_5 = 6, 29 | FLAC_COMPRESSION_LEVEL_6 = 7, 30 | FLAC_COMPRESSION_LEVEL_7 = 8, 31 | FLAC_COMPRESSION_LEVEL_8 = 9, 32 | FLAC_COMPRESSION_LEVEL_CUSTOM = 0, 33 | }; 34 | 35 | @interface FLACSettingsSheet : EncoderSettingsSheet 36 | { 37 | } 38 | 39 | - (instancetype) initWithSettings:(NSDictionary *)settings; 40 | 41 | - (IBAction) userSelectedCompressionLevel:(id)sender; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/LibsndfileSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface LibsndfileSettingsSheet : EncoderSettingsSheet 23 | { 24 | IBOutlet NSArrayController *_subtypesController; 25 | NSMutableArray *_availableSubtypes; 26 | 27 | NSString *_formatName; 28 | } 29 | 30 | - (instancetype) initWithSettings:(NSDictionary *)settings; 31 | 32 | - (NSString *) formatName; 33 | - (void) setFormatName:(NSString *)formatName; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/MP3SettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface MP3SettingsSheet : EncoderSettingsSheet 23 | { 24 | IBOutlet NSTextField *_presetDescription; 25 | } 26 | 27 | - (instancetype) initWithSettings:(NSDictionary *)settings; 28 | 29 | - (IBAction) userSelectedPreset:(id)sender; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/MonkeysAudioSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface MonkeysAudioSettingsSheet : EncoderSettingsSheet 23 | { 24 | } 25 | 26 | - (instancetype) initWithSettings:(NSDictionary *)settings; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/MonkeysAudioSettingsSheet.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "MonkeysAudioSettingsSheet.h" 20 | 21 | @implementation MonkeysAudioSettingsSheet 22 | 23 | + (NSDictionary *) defaultSettings 24 | { 25 | NSArray *objects = nil; 26 | NSArray *keys = nil; 27 | 28 | objects = [NSArray arrayWithObjects: 29 | [NSNumber numberWithInt:2], 30 | nil]; 31 | 32 | keys = [NSArray arrayWithObjects: 33 | @"compressionLevel", 34 | nil]; 35 | 36 | 37 | return [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 38 | } 39 | 40 | - (id) initWithSettings:(NSDictionary *)settings; 41 | { 42 | if((self = [super initWithNibName:@"MonkeysAudioSettingsSheet" settings:settings])) { 43 | return self; 44 | } 45 | return nil; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/OggSpeexSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface OggSpeexSettingsSheet : EncoderSettingsSheet 23 | { 24 | } 25 | 26 | - (instancetype) initWithSettings:(NSDictionary *)settings; 27 | 28 | - (IBAction) enableVBRButtonAction:(id)sender; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/OggVorbisSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface OggVorbisSettingsSheet : EncoderSettingsSheet 23 | { 24 | } 25 | 26 | - (instancetype) initWithSettings:(NSDictionary *)settings; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/OggVorbisSettingsSheet.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "OggVorbisSettingsSheet.h" 20 | #import "OggVorbisEncoder.h" 21 | 22 | @implementation OggVorbisSettingsSheet 23 | 24 | + (NSDictionary *) defaultSettings 25 | { 26 | NSArray *objects = nil; 27 | NSArray *keys = nil; 28 | 29 | objects = [NSArray arrayWithObjects: 30 | [NSNumber numberWithInt:VORBIS_MODE_QUALITY], 31 | [NSNumber numberWithDouble:0.3], 32 | [NSNumber numberWithInt:6], 33 | [NSNumber numberWithBool:NO], 34 | nil]; 35 | 36 | keys = [NSArray arrayWithObjects: 37 | @"mode", 38 | @"quality", 39 | @"bitrate", 40 | @"useConstantBitrate", 41 | nil]; 42 | 43 | 44 | return [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 45 | } 46 | 47 | - (id) initWithSettings:(NSDictionary *)settings; 48 | { 49 | if((self = [super initWithNibName:@"OggVorbisSettingsSheet" settings:settings])) { 50 | return self; 51 | } 52 | return nil; 53 | } 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Preferences/EncoderSettingsSheets/WavPackSettingsSheet.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "EncoderSettingsSheet.h" 21 | 22 | @interface WavPackSettingsSheet : EncoderSettingsSheet 23 | { 24 | } 25 | 26 | - (instancetype) initWithSettings:(NSDictionary *)settings; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Preferences/FormatsPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface FormatsPreferencesController : NSWindowController 22 | { 23 | NSMutableArray *_availableFormats; 24 | 25 | IBOutlet NSArrayController *_configuredFormatsController; 26 | IBOutlet NSArrayController *_availableFormatsController; 27 | } 28 | 29 | - (IBAction) addOutputFormat:(id)sender; 30 | - (IBAction) removeOutputFormat:(id)sender; 31 | - (IBAction) editOutputFormat:(id)sender; 32 | 33 | - (NSUInteger) countOfAvailableFormats; 34 | - (NSDictionary *) objectInAvailableFormatsAtIndex:(unsigned)index; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Preferences/GeneralPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface GeneralPreferencesController : NSWindowController 22 | { 23 | } 24 | 25 | - (IBAction) restoreDefaults:(id)sender; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Preferences/GeneralPreferencesController.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "GeneralPreferencesController.h" 20 | 21 | @implementation GeneralPreferencesController 22 | 23 | - (id) init 24 | { 25 | if((self = [super initWithWindowNibName:@"GeneralPreferences"])) { 26 | return self; 27 | } 28 | return nil; 29 | } 30 | 31 | - (IBAction) restoreDefaults:(id)sender 32 | { 33 | [[NSUserDefaultsController sharedUserDefaultsController] revertToInitialValues:nil]; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Preferences/OutputPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface OutputPreferencesController : NSWindowController 22 | { 23 | IBOutlet NSPopUpButton *_outputDirectoryPopUpButton; 24 | IBOutlet NSPopUpButton *_temporaryDirectoryPopUpButton; 25 | 26 | IBOutlet NSComboBox *_fileNamingComboBox; 27 | IBOutlet NSPopUpButton *_formatSpecifierPopUpButton; 28 | } 29 | 30 | - (IBAction) selectOutputDirectory:(id)sender; 31 | - (IBAction) selectTemporaryDirectory:(id)sender; 32 | 33 | - (IBAction) insertFileNamingFormatSpecifier:(id)sender; 34 | - (IBAction) saveFileNamingFormat:(id)sender; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Preferences/PostProcessingPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface PostProcessingPreferencesController : NSWindowController 22 | { 23 | IBOutlet NSArrayController *_postProcessingActionsController; 24 | } 25 | 26 | - (IBAction) addPostProcessingApplication:(id)sender; 27 | - (IBAction) removePostProcessingApplication:(id)sender; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Preferences/PreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | extern NSString * GeneralPreferencesToolbarItemIdentifier; 22 | extern NSString * FormatsPreferencesToolbarItemIdentifier; 23 | extern NSString * OutputPreferencesToolbarItemIdentifier; 24 | extern NSString * RipperPreferencesToolbarItemIdentifier; 25 | extern NSString * TaggingPreferencesToolbarItemIdentifier; 26 | extern NSString * AlbumArtPreferencesToolbarItemIdentifier; 27 | extern NSString * iTunesPreferencesToolbarItemIdentifier; 28 | extern NSString * PostProcessingPreferencesToolbarItemIdentifier; 29 | 30 | @interface PreferencesController : NSWindowController 31 | { 32 | } 33 | 34 | + (PreferencesController *) sharedPreferences; 35 | 36 | - (void) selectPreferencePane:(NSString *)itemIdentifier; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Preferences/RipperPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface RipperPreferencesController : NSWindowController 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Preferences/RipperPreferencesController.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "RipperPreferencesController.h" 20 | 21 | @implementation RipperPreferencesController 22 | 23 | - (id) init 24 | { 25 | if((self = [super initWithWindowNibName:@"RipperPreferences"])) { 26 | return self; 27 | } 28 | return nil; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Preferences/TaggingPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface TaggingPreferencesController : NSWindowController 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Preferences/TaggingPreferencesController.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "TaggingPreferencesController.h" 20 | 21 | @implementation TaggingPreferencesController 22 | 23 | - (id) init 24 | { 25 | if((self = [super initWithWindowNibName:@"TaggingPreferences"])) { 26 | return self; 27 | } 28 | return nil; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Preferences/iTunesPreferencesController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface iTunesPreferencesController : NSWindowController 22 | { 23 | IBOutlet NSComboBox *_iTunesPlaylistComboBox; 24 | IBOutlet NSPopUpButton *_iTunesPlaylistSpecifierPopUpButton; 25 | } 26 | 27 | - (IBAction) insertiTunesPlaylistFormatSpecifier:(id)sender; 28 | - (IBAction) saveiTunesPlaylist:(id)sender; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Rippers/BasicRipper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Ripper.h" 22 | #import "Drive.h" 23 | 24 | @interface BasicRipper : Ripper 25 | { 26 | Drive *_drive; 27 | 28 | unsigned _grandTotalSectors; 29 | unsigned _sectorsRead; 30 | NSDate *_startTime; 31 | } 32 | 33 | - (instancetype) initWithSectors:(NSArray *)sectors deviceName:(NSString *)deviceName; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Rippers/BitArray.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface BitArray : NSObject 22 | { 23 | NSUInteger _bitCount; 24 | NSUInteger _length; 25 | uint32_t *_bits; 26 | } 27 | 28 | // Access the number of bits this object holds 29 | - (NSUInteger) bitCount; 30 | - (void) setBitCount:(NSUInteger)bitCount; 31 | 32 | // Access to the individual bits 33 | - (BOOL) valueAtIndex:(NSUInteger)index; 34 | - (void) setValue:(BOOL)value forIndex:(NSUInteger)index; 35 | 36 | // Convenience methods 37 | - (BOOL) allZeroes; 38 | - (NSUInteger) countOfZeroes; 39 | - (void) setAllZeroes; 40 | 41 | - (BOOL) allOnes; 42 | - (NSUInteger) countOfOnes; 43 | - (void) setAllOnes; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Rippers/ParanoiaRipper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #include 22 | #include 23 | 24 | #import "Ripper.h" 25 | 26 | @interface ParanoiaRipper : Ripper 27 | { 28 | cdrom_drive *_drive; 29 | cdrom_paranoia *_paranoia; 30 | 31 | int _maximumRetries; 32 | 33 | NSNumber *_grandTotalSectors; 34 | NSNumber *_sectorsRead; 35 | NSNumber *_sectorsWritten; 36 | NSDate *_startTime; 37 | } 38 | 39 | - (instancetype) initWithSectors:(NSArray *)sectors deviceName:(NSString *)deviceName; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Rippers/Ripper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "RipperMethods.h" 22 | #import "RipperTaskMethods.h" 23 | 24 | @interface Ripper : NSObject 25 | { 26 | id _delegate; 27 | 28 | NSArray *_sectors; 29 | NSString *_deviceName; 30 | BOOL _logActivity; 31 | } 32 | 33 | - (instancetype) initWithSectors:(NSArray *)sectors deviceName:(NSString *)deviceName; 34 | 35 | - (NSString *) deviceName; 36 | 37 | - (BOOL) logActivity; 38 | - (void) setLogActivity:(BOOL)logActivity; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Rippers/RipperMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "RipperTaskMethods.h" 21 | 22 | @protocol RipperMethods 23 | 24 | + (void) connectWithPorts:(NSArray *)portArray; 25 | 26 | - (oneway void) ripToFile:(NSString *)filename; 27 | 28 | - (id ) delegate; 29 | - (void) setDelegate:(id )delegate; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/CoreAudioEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #include 21 | 22 | #import "EncoderTask.h" 23 | 24 | @interface CoreAudioEncoderTask : EncoderTask 25 | { 26 | } 27 | 28 | - (AudioFileTypeID) fileType; 29 | - (UInt32) formatID; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/EncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Task.h" 22 | #import "EncoderTaskMethods.h" 23 | #import "EncoderMethods.h" 24 | 25 | @interface EncoderTask : Task 26 | { 27 | NSConnection *_connection; 28 | Class _encoderClass; 29 | id _encoder; 30 | NSDictionary *_encoderSettings; 31 | NSString *_encoderSettingsString; 32 | } 33 | 34 | - (NSString *) outputFormatName; 35 | - (NSString *) fileExtension; 36 | 37 | - (void) encoderReady:(id)anObject; 38 | 39 | - (NSString *) encoderSettingsString; 40 | @end 41 | 42 | @interface EncoderTask (CueSheetAdditions) 43 | - (BOOL) formatIsValidForCueSheet; 44 | - (NSString *) cueSheetFormatName; 45 | - (void) generateCueSheet; 46 | @end 47 | 48 | @interface EncoderTask (iTunesAdditions) 49 | - (BOOL) formatIsValidForiTunes; 50 | @end 51 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/EncoderTaskMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "TaskMethods.h" 21 | 22 | @protocol EncoderTaskMethods 23 | 24 | - (NSDictionary *) encoderSettings; 25 | - (void) setEncoderSettings:(NSDictionary *)encoderSettings; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/FLACEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface FLACEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/LibsndfileEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface LibsndfileEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | - (int) format; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/MP3EncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface MP3EncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/MonkeysAudioEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface MonkeysAudioEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/OggFLACEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface OggFLACEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/OggSpeexEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface OggSpeexEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/OggVorbisEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface OggVorbisEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/EncoderTasks/WavPackEncoderTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "EncoderTask.h" 22 | 23 | @interface WavPackEncoderTask : EncoderTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/BasicRipperTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "RipperTask.h" 22 | 23 | @interface BasicRipperTask : RipperTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/BasicRipperTask.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "BasicRipperTask.h" 20 | #import "BasicRipper.h" 21 | 22 | @implementation BasicRipperTask 23 | 24 | - (id) initWithTracks:(NSArray *)tracks 25 | { 26 | if((self = [super initWithTracks:tracks])) { 27 | 28 | _ripperClass = [BasicRipper class]; 29 | 30 | return self; 31 | } 32 | return nil; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/ComparisonRipperTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "RipperTask.h" 22 | 23 | @interface ComparisonRipperTask : RipperTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/ComparisonRipperTask.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "ComparisonRipperTask.h" 20 | #import "ComparisonRipper.h" 21 | 22 | @implementation ComparisonRipperTask 23 | 24 | - (id) initWithTracks:(NSArray *)tracks 25 | { 26 | if((self = [super initWithTracks:tracks])) { 27 | 28 | _ripperClass = [ComparisonRipper class]; 29 | 30 | return self; 31 | } 32 | return nil; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/ParanoiaRipperTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "RipperTask.h" 22 | 23 | @interface ParanoiaRipperTask : RipperTask 24 | { 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/ParanoiaRipperTask.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "ParanoiaRipperTask.h" 20 | #import "ParanoiaRipper.h" 21 | 22 | @implementation ParanoiaRipperTask 23 | 24 | - (id) initWithTracks:(NSArray *)tracks 25 | { 26 | if((self = [super initWithTracks:tracks])) { 27 | 28 | _ripperClass = [ParanoiaRipper class]; 29 | 30 | return self; 31 | } 32 | return nil; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/RipperTask.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "Task.h" 22 | #import "RipperTaskMethods.h" 23 | #import "Track.h" 24 | #import "RipperMethods.h" 25 | 26 | @interface RipperTask : Task 27 | { 28 | NSConnection *_connection; 29 | Class _ripperClass; 30 | NSArray *_tracks; 31 | NSMutableArray *_sectors; 32 | NSString *_deviceName; 33 | } 34 | 35 | - (instancetype) initWithTracks:(NSArray *)tracks; 36 | 37 | - (NSArray *) sectors; 38 | - (NSString *) deviceName; 39 | 40 | - (NSUInteger) countOfTracks; 41 | - (Track *) objectInTracksAtIndex:(unsigned)index; 42 | 43 | - (void) ripperReady:(id)anObject; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Tasks/RipperTasks/RipperTaskMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | #import "TaskMethods.h" 21 | 22 | @protocol RipperTaskMethods 23 | 24 | - (NSString *) phase; 25 | - (void) setPhase:(NSString *)phase; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Tasks/Task.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #import "TaskMethods.h" 22 | 23 | @interface Task : NSObject 24 | { 25 | TaskInfo *_taskInfo; 26 | 27 | NSDate *_startTime; 28 | NSDate *_endTime; 29 | 30 | BOOL _started; 31 | BOOL _completed; 32 | BOOL _stopped; 33 | 34 | float _percentComplete; 35 | 36 | NSString *_phase; 37 | 38 | BOOL _shouldStop; 39 | 40 | NSUInteger _secondsRemaining; 41 | 42 | NSException *_exception; 43 | 44 | NSString *_outputFilename; 45 | BOOL _shouldDeleteOutputFile; 46 | } 47 | 48 | - (void) run; 49 | - (void) stop; 50 | 51 | - (NSString *) outputFilename; 52 | - (void) setOutputFilename:(NSString *)outputFilename; 53 | 54 | - (BOOL) shouldDeleteOutputFile; 55 | - (void) setShouldDeleteOutputFile:(BOOL)shouldDeleteOutputFile; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /Utilities/CoreAudioUtilities.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #include 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | // Return an array of information on valid formats for output 28 | NSArray * GetCoreAudioWritableTypes(void); 29 | 30 | // Return an array of information on valid formats for input 31 | NSArray * GetCoreAudioReadableTypes(void); 32 | 33 | // Return an array of valid audio file extensions recognized by Core Audio 34 | NSArray * GetCoreAudioExtensions(void); 35 | 36 | // Get a descriptive string for the given filetype and format 37 | NSString * GetCoreAudioOutputFormatName(AudioFileTypeID fileType, 38 | UInt32 formatID, 39 | UInt32 formatFlags); 40 | 41 | #ifdef __cplusplus 42 | } 43 | #endif 44 | -------------------------------------------------------------------------------- /Utilities/GaplessUtilities.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2009 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | // Add the appropriate iTunSMPB atom for AAC gapless playback in iTunes 26 | void addMPEG4AACGaplessInformationAtom(NSString *filename, 27 | SInt64 totalFrames); 28 | 29 | // Add the appropriate Encoding Params atom for AAC accurate bitrate in iTunes 30 | void addMPEG4AACBitrateInformationAtom(NSString *filename, 31 | UInt32 bitrate, 32 | int bitrateMode); 33 | 34 | #ifdef __cplusplus 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /Utilities/Genres.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface Genres : NSObject 22 | { 23 | NSArray *_genres; 24 | NSArray *_unsortedGenres; 25 | } 26 | 27 | + (NSArray *) sharedGenres; 28 | + (NSArray *) unsortedGenres; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Utilities/ServicesProvider.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface ServicesProvider : NSObject 22 | { 23 | } 24 | 25 | - (void) encodeFile:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /ValueTransformers/BOOLToStringValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface BOOLToStringValueTransformer : NSValueTransformer 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ValueTransformers/BooleanArrayValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface BooleanArrayValueTransformer : NSValueTransformer 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ValueTransformers/BooleanArrayValueTransformer.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "BooleanArrayValueTransformer.h" 20 | 21 | @implementation BooleanArrayValueTransformer 22 | 23 | + (Class) transformedValueClass { return [NSNumber class]; } 24 | + (BOOL) allowsReverseTransformation { return NO; } 25 | 26 | - (id) transformedValue:(id) value; 27 | { 28 | BOOL result = NO; 29 | 30 | if(nil == value) { 31 | return nil; 32 | } 33 | 34 | if([value isKindOfClass:[NSArray class]]) { 35 | unsigned i; 36 | for(i = 0; i < [value count]; ++i) { 37 | if(NO == [[value objectAtIndex:i] isEqual:[NSNull null]] && [[value objectAtIndex:i] boolValue]) { 38 | result = YES; 39 | break; 40 | } 41 | } 42 | } 43 | else { 44 | @throw [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"Value was not NSArray." userInfo:nil]; 45 | } 46 | 47 | return [NSNumber numberWithBool: result]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /ValueTransformers/ImageDimensionsValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface ImageDimensionsValueTransformer : NSValueTransformer 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ValueTransformers/ImageDimensionsValueTransformer.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "ImageDimensionsValueTransformer.h" 20 | 21 | @implementation ImageDimensionsValueTransformer 22 | 23 | + (Class) transformedValueClass { return [NSString class]; } 24 | + (BOOL) allowsReverseTransformation { return NO; } 25 | 26 | - (id) transformedValue:(id) value; 27 | { 28 | if(nil == value) { 29 | return nil; 30 | } 31 | 32 | if(![value isKindOfClass:[NSImage class]]) { 33 | @throw [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"Value was not NSImage." userInfo:nil]; 34 | } 35 | 36 | return [NSString stringWithFormat:@"%lu × %lu", (unsigned long)[value size].width, (unsigned long)[value size].height]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /ValueTransformers/MultiplicationValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2020 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface MultiplicationValueTransformer : NSValueTransformer 22 | { 23 | int _multiplier; 24 | } 25 | 26 | - (instancetype) initWithMultiplier:(int)multiplier; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /ValueTransformers/NegateBooleanArrayValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface NegateBooleanArrayValueTransformer : NSValueTransformer 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ValueTransformers/NegateBooleanArrayValueTransformer.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "NegateBooleanArrayValueTransformer.h" 20 | 21 | @implementation NegateBooleanArrayValueTransformer 22 | 23 | + (Class) transformedValueClass { return [NSNumber class]; } 24 | + (BOOL) allowsReverseTransformation { return NO; } 25 | 26 | - (id) transformedValue:(id) value; 27 | { 28 | BOOL result = YES; 29 | 30 | if(nil == value) { 31 | return nil; 32 | } 33 | 34 | if([value isKindOfClass:[NSArray class]]) { 35 | unsigned i; 36 | for(i = 0; i < [value count]; ++i) { 37 | if(NO == [[value objectAtIndex:i] isEqual:[NSNull null]] && [[value objectAtIndex:i] boolValue]) { 38 | result = NO; 39 | break; 40 | } 41 | } 42 | } 43 | else { 44 | @throw [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"Value was not NSArray." userInfo:nil]; 45 | } 46 | 47 | return [NSNumber numberWithBool: result]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /ValueTransformers/UppercaseStringValueTransformer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | @interface UppercaseStringValueTransformer : NSValueTransformer 22 | { 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ValueTransformers/UppercaseStringValueTransformer.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import "UppercaseStringValueTransformer.h" 20 | 21 | @implementation UppercaseStringValueTransformer 22 | 23 | + (Class) transformedValueClass { return [NSString class]; } 24 | + (BOOL) allowsReverseTransformation { return YES; } 25 | - (id) reverseTransformedValue:(id)value { return value; } 26 | 27 | - (id) transformedValue:(id)value; 28 | { 29 | if(nil == value) { 30 | return nil; 31 | } 32 | 33 | if(NO == [value isKindOfClass:[NSString class]]) { 34 | @throw [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"Value was not NSString." userInfo:nil]; 35 | } 36 | 37 | return [value uppercaseString]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /de.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /de.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \vieww9000\viewh8400\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 17 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 18 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 19 | \cf0 \ 20 | Ver\'f6ffentlicht unter der {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 21 | \ 22 | Schicke Feedback an {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /de.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/Exceptions.strings -------------------------------------------------------------------------------- /de.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/FileConversion.strings -------------------------------------------------------------------------------- /de.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/General.strings -------------------------------------------------------------------------------- /de.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/Genres.strings -------------------------------------------------------------------------------- /de.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /de.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/Log.strings -------------------------------------------------------------------------------- /de.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/Preferences.strings -------------------------------------------------------------------------------- /de.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/de.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQDMm+MaHkRWGT0qsql/2d0Wy+WIEagk 3 | WP71URj5JLS/d8+RYCiqe50RzeySB49MfA6I3AQM3F1+kRW3vIt9f9XSqJ+7WC1s 4 | s93FVFi9E1HntQgEybOfcMx+fdyriOBLdsmEE+BrCj5CbwrhcDYbAXWHlZsKb3xJ 5 | g7iZrM9nZ27SfR/ZK+szqo0erQH6a8K4HKc7XYfyKKJZgsrp0c5RwGn3VSipQNPI 6 | dKcDXYuIkd+XMVOQ8v7W7E2rWqs/RsX5jr5UDjspFW0UOlXg6YT9jmg1RQFviXNn 7 | lCzBRCsKBdeMrolriNRphb2y7QQ1ff/9ZCKXOP7D4tZOO4PnttYSjEJ/AhUA57lw 8 | W2F4Ji1+oR6bZAhmGqSCtgsCggEAKzy7BqO0TUOuNPmaE5zrrIR0D96WAHNeaGT8 9 | SmFoxp/wyJO6DMEbP6gbAP49GHe+Kh6NaXo9CulnG4aLg0jIjvO2Y1xvrZa+HfxI 10 | gy/2t1j4TJhz6l31r89VA2eWxhaUs/73KZP12J1nrROOLz8ljR3LwtDKiwKgn9Vp 11 | swTUyboYiF32KdG0/9Dx+rQiLHLJSX14DSpnNN+Y3p7poHlSQh1DoF0esKok7NQM 12 | I1evrj+jrO8g9SzEcwrhM+UV5UxCZBfwSFr88DMkAfETIQb78IABZr4adhxO3IMi 13 | gr7uE/RSdO6Oztbap+XTZAc8EvIq9if5gm9M05xZrvgoTWW2MwOCAQYAAoIBAQCC 14 | OODV5gs2mHBEcifuaoWtzKhKq1tidPANneafs1s2GT/fc7vdJiacekt1GMXQjS04 15 | smtu5C0ypb8V+GGOACKl34Qi99H3u8qrlBERR00RheGYCfg6ytjst7/ZoCT6QJ/2 16 | ImZVHh0ebE2FNBOlYlyB8NeP5PAbpKOL1xoJfmKEr9QJ07uLI0Y+xt3zKNRrbzl5 17 | E9jZyzZ+rxXMA2RgFlYERzKodhZcatoWH733eOSF0n2QZE8AwmSzMGrOMne16H1J 18 | tOGZ+w2pAeZtsPFhfA2FKBOnWaEzvlunkx75gYf39lJv9xeYPdD8HrHFHHEgMoHZ 19 | oBqUAJ3K+Wh/ixc3N6Y1 20 | -----END PUBLIC KEY----- 21 | -------------------------------------------------------------------------------- /en.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \vieww9000\viewh8400\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt https://sbooth.org/Max/}}\ 17 | \ 18 | Distributed under the terms of the {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 19 | \ 20 | Send feedback to {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /en.lproj/CueSheet.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/CueSheet.strings -------------------------------------------------------------------------------- /en.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Exceptions.strings -------------------------------------------------------------------------------- /en.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/FileConversion.strings -------------------------------------------------------------------------------- /en.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/General.strings -------------------------------------------------------------------------------- /en.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Genres.strings -------------------------------------------------------------------------------- /en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /en.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Log.strings -------------------------------------------------------------------------------- /en.lproj/Max Help/Max Help.helpindex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Max Help/Max Help.helpindex -------------------------------------------------------------------------------- /en.lproj/Max Help/images/max-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Max Help/images/max-icon.png -------------------------------------------------------------------------------- /en.lproj/Max Help/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "lucida grande"; 3 | font-size: 14px; 4 | line-height: 1.5em; 5 | } 6 | 7 | div#wrap { width: 75%; margin: auto; } 8 | 9 | div.icon { background-image: url(images/max-icon.png); width: 48px; height:48px; float: left; margin-right: 20px; } 10 | 11 | h1 { 12 | margin: 0px; 13 | line-height: 1em; 14 | } 15 | 16 | h2 { line-height: 1em; font-size: 20px; margin: 0px; border-bottom: 1px solid black } 17 | 18 | a:link, a:active, a:visited { 19 | color: #000; 20 | text-decoration: underline; 21 | } 22 | a:hover { 23 | color: #555; 24 | text-decoration: none; 25 | } 26 | 27 | ul { 28 | padding: 0px; 29 | 30 | } 31 | 32 | div#title ul {margin: 0px; padding: 0px; font-weight: bold;} 33 | div#title li { display: inline; } 34 | 35 | code { font-family: courier; } -------------------------------------------------------------------------------- /en.lproj/Max Help/max-v-itunes.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 |
15 | 16 |
17 |
18 | 19 |

Max Help: FLAC

20 | 21 | 22 |
23 | 24 |
25 | 26 |
27 |

Features

28 |
    29 |
  • MP3 encoder
  • 30 |
  • FLAC encoding
  • 31 |
32 |
33 | 34 |
35 |

Max

36 |
    37 |
  • LAME
  • 38 |
  • 39 |
40 |
41 | 42 |
43 |

iTunes

44 |
    45 |
  • LAME
  • 46 |
  • 47 |
48 |
49 |
50 | 51 |
-------------------------------------------------------------------------------- /en.lproj/Max Help/ripping.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 | 15 |

Max Help: Ripping

16 | 17 | 18 |
19 | 20 |
21 |

Ripping a CD is as easy as inserting a CD, selecting the tracks you want, then clicking the Encode button in the toolbar. The default settings will rip your CD using error correction then output ~190 kbps variable bit rate (VBR) MP3 files to your ~/Music folder.

22 |

If you are connected to the internet, then you can also click the FreeDB button before you encode to access the FreeDB service which will provide Max with the proper information to tag your encoded music files.

23 |
24 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /en.lproj/Max Help/tagging.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 | 15 |

Max Help: Tagging

16 | 17 | 18 |
19 | 20 |
21 |

You can add the artist, album, track names, and other tags to your CD so that when Max has encoded your files, it can automatically tag them.

22 | 23 |

FreeDB eases this process by querying an online database to automatically fill in the tags for you. To do this, make sure you have an internet connection, then click Query FreeDB in the toolbar. If multiple matches are returned, choose the one that best matches your CD.

24 | 25 |

You can also tag information for individual songs. Just check the Multiple Artists checkbox in your CD's window, select a song in the tracklisting, then click the Tracks button in the toolbar.

26 |
27 | 28 |
29 | 30 | -------------------------------------------------------------------------------- /en.lproj/Menus.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Menus.strings -------------------------------------------------------------------------------- /en.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/Preferences.strings -------------------------------------------------------------------------------- /en.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/en.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /es.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /es.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \vieww9000\viewh8400\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 17 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 18 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 19 | \cf0 \ 20 | Distributed under the terms of the {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 21 | \ 22 | Send feedback to {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /es.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Exceptions.strings -------------------------------------------------------------------------------- /es.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/FileConversion.strings -------------------------------------------------------------------------------- /es.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/General.strings -------------------------------------------------------------------------------- /es.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Genres.strings -------------------------------------------------------------------------------- /es.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /es.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Log.strings -------------------------------------------------------------------------------- /es.lproj/Max Help/Max Help.helpindex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Max Help/Max Help.helpindex -------------------------------------------------------------------------------- /es.lproj/Max Help/images/max-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Max Help/images/max-icon.png -------------------------------------------------------------------------------- /es.lproj/Max Help/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "lucida grande"; 3 | font-size: 14px; 4 | line-height: 1.5em; 5 | } 6 | 7 | div#wrap { width: 75%; margin: auto; } 8 | 9 | div.icon { background-image: url(images/max-icon.png); width: 48px; height:48px; float: left; margin-right: 20px; } 10 | 11 | h1 { 12 | margin: 0px; 13 | line-height: 1em; 14 | } 15 | 16 | h2 { line-height: 1em; font-size: 20px; margin: 0px; border-bottom: 1px solid black } 17 | 18 | a:link, a:active, a:visited { 19 | color: #000; 20 | text-decoration: underline; 21 | } 22 | a:hover { 23 | color: #555; 24 | text-decoration: none; 25 | } 26 | 27 | ul { 28 | padding: 0px; 29 | 30 | } 31 | 32 | div#title ul {margin: 0px; padding: 0px; font-weight: bold;} 33 | div#title li { display: inline; } 34 | 35 | code { font-family: courier; } -------------------------------------------------------------------------------- /es.lproj/Max Help/max-v-itunes.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 |
15 | 16 |
17 |
18 | 19 |

Max Help: FLAC

20 | 21 | 22 |
23 | 24 |
25 | 26 |
27 |

Features

28 |
    29 |
  • MP3 encoder
  • 30 |
  • FLAC encoding
  • 31 |
32 |
33 | 34 |
35 |

Max

36 |
    37 |
  • LAME
  • 38 |
  • 39 |
40 |
41 | 42 |
43 |

iTunes

44 |
    45 |
  • LAME
  • 46 |
  • 47 |
48 |
49 |
50 | 51 |
-------------------------------------------------------------------------------- /es.lproj/Max Help/ripping.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 | 15 |

Max Help: Ripping

16 | 17 | 18 |
19 | 20 |
21 |

Ripping a CD is as easy as inserting a CD, selecting the tracks you want, then clicking the Encode button in the toolbar. The default settings will rip your CD using error correction then output ~190 kbps variable bit rate (VBR) MP3 files to your ~/Music folder.

22 |

If you are connected to the internet, then you can also click the FreeDB button before you encode to access the FreeDB service which will provide Max with the proper information to tag your encoded music files.

23 |
24 | 25 |
26 | 27 | -------------------------------------------------------------------------------- /es.lproj/Max Help/tagging.html: -------------------------------------------------------------------------------- 1 | Max Help 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 |
14 | 15 |

Max Help: Tagging

16 | 17 | 18 |
19 | 20 |
21 |

You can add the artist, album, track names, and other tags to your CD so that when Max has encoded your files, it can automatically tag them.

22 | 23 |

FreeDB eases this process by querying an online database to automatically fill in the tags for you. To do this, make sure you have an internet connection, then click Query FreeDB in the toolbar. If multiple matches are returned, choose the one that best matches your CD.

24 | 25 |

You can also tag information for individual songs. Just check the Multiple Artists checkbox in your CD's window, select a song in the tracklisting, then click the Tracks button in the toolbar.

26 |
27 | 28 |
29 | 30 | -------------------------------------------------------------------------------- /es.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/Preferences.strings -------------------------------------------------------------------------------- /es.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/es.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /fr.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /fr.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 17 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 18 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 19 | \cf0 \ 20 | Distribu\'e9 selon les termes de la licence {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 21 | \ 22 | Envoyer commentaires et remarques \'e0 {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /fr.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/Exceptions.strings -------------------------------------------------------------------------------- /fr.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/FileConversion.strings -------------------------------------------------------------------------------- /fr.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/General.strings -------------------------------------------------------------------------------- /fr.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/Genres.strings -------------------------------------------------------------------------------- /fr.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /fr.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/Log.strings -------------------------------------------------------------------------------- /fr.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/Preferences.strings -------------------------------------------------------------------------------- /fr.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/fr.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /it.lproj/AlbumArtPreferences.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | ACTIONS 9 | 10 | insertAlbumArtFileNamingFormatSpecifier 11 | id 12 | saveAlbumArtFileNamingFormat 13 | id 14 | 15 | CLASS 16 | AlbumArtPreferencesController 17 | LANGUAGE 18 | ObjC 19 | OUTLETS 20 | 21 | _albumArtFileNamingComboBox 22 | NSComboBox 23 | _albumArtFormatSpecifierPopUpButton 24 | NSPopUpButton 25 | 26 | SUPERCLASS 27 | NSWindowController 28 | 29 | 30 | CLASS 31 | FirstResponder 32 | LANGUAGE 33 | ObjC 34 | SUPERCLASS 35 | NSObject 36 | 37 | 38 | IBVersion 39 | 1 40 | 41 | 42 | -------------------------------------------------------------------------------- /it.lproj/AlbumArtPreferences.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 103 12 | 13 | IBSystem Version 14 | 9F33 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /it.lproj/AlbumArtPreferences.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/AlbumArtPreferences.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /it.lproj/CompactDiscDocument.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 296 12 | 26 13 | 14 | IBSystem Version 15 | 9F33 16 | targetFramework 17 | IBCocoaFramework 18 | 19 | 20 | -------------------------------------------------------------------------------- /it.lproj/CompactDiscDocument.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/CompactDiscDocument.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \vieww9000\viewh8400\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 17 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 18 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 19 | \cf0 \ 20 | Distribuito con licenza {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 21 | \ 22 | Inviare commenti a {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /it.lproj/Encoder.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | ACTIONS 9 | 10 | stopAllTasks 11 | id 12 | stopSelectedTasks 13 | id 14 | 15 | CLASS 16 | EncoderController 17 | LANGUAGE 18 | ObjC 19 | OUTLETS 20 | 21 | _taskTable 22 | NSTableView 23 | _tasksController 24 | NSArrayController 25 | 26 | SUPERCLASS 27 | NSWindowController 28 | 29 | 30 | CLASS 31 | FirstResponder 32 | LANGUAGE 33 | ObjC 34 | SUPERCLASS 35 | NSObject 36 | 37 | 38 | IBVersion 39 | 1 40 | 41 | 42 | -------------------------------------------------------------------------------- /it.lproj/Encoder.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 6 12 | 13 | IBSystem Version 14 | 9F33 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /it.lproj/Encoder.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Encoder.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Exceptions.strings -------------------------------------------------------------------------------- /it.lproj/FileConversion.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBLastKnownRelativeProjectPath 8 | ../../Max.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 103 14 | 15 | IBSystem Version 16 | 9F33 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /it.lproj/FileConversion.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/FileConversion.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/FileConversion.strings -------------------------------------------------------------------------------- /it.lproj/FormatsPreferences.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | NSApplication 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSResponder 14 | 15 | 16 | ACTIONS 17 | 18 | addOutputFormat 19 | id 20 | editOutputFormat 21 | id 22 | removeOutputFormat 23 | id 24 | 25 | CLASS 26 | FormatsPreferencesController 27 | LANGUAGE 28 | ObjC 29 | OUTLETS 30 | 31 | _availableFormatsController 32 | NSArrayController 33 | _configuredFormatsController 34 | NSArrayController 35 | 36 | SUPERCLASS 37 | NSWindowController 38 | 39 | 40 | ACTIONS 41 | 42 | 43 | id 44 | 45 | CLASS 46 | FirstResponder 47 | LANGUAGE 48 | ObjC 49 | SUPERCLASS 50 | NSObject 51 | 52 | 53 | IBVersion 54 | 1 55 | 56 | 57 | -------------------------------------------------------------------------------- /it.lproj/FormatsPreferences.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBLastKnownRelativeProjectPath 8 | ../../Max.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9F33 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /it.lproj/FormatsPreferences.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/FormatsPreferences.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/General.strings -------------------------------------------------------------------------------- /it.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Genres.strings -------------------------------------------------------------------------------- /it.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /it.lproj/Log.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | ACTIONS 9 | 10 | clear 11 | id 12 | save 13 | id 14 | 15 | CLASS 16 | LogController 17 | LANGUAGE 18 | ObjC 19 | OUTLETS 20 | 21 | _logEntriesController 22 | NSArrayController 23 | 24 | SUPERCLASS 25 | NSWindowController 26 | 27 | 28 | CLASS 29 | FirstResponder 30 | LANGUAGE 31 | ObjC 32 | SUPERCLASS 33 | NSObject 34 | 35 | 36 | IBVersion 37 | 1 38 | 39 | 40 | -------------------------------------------------------------------------------- /it.lproj/Log.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 5 12 | 13 | IBSystem Version 14 | 9F33 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /it.lproj/Log.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Log.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Log.strings -------------------------------------------------------------------------------- /it.lproj/Menus.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Menus.strings -------------------------------------------------------------------------------- /it.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Preferences.strings -------------------------------------------------------------------------------- /it.lproj/Ripper.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | ACTIONS 9 | 10 | stopAllTasks 11 | id 12 | stopSelectedTasks 13 | id 14 | 15 | CLASS 16 | RipperController 17 | LANGUAGE 18 | ObjC 19 | OUTLETS 20 | 21 | _taskTable 22 | NSTableView 23 | _tasksController 24 | NSArrayController 25 | 26 | SUPERCLASS 27 | NSWindowController 28 | 29 | 30 | CLASS 31 | FirstResponder 32 | LANGUAGE 33 | ObjC 34 | SUPERCLASS 35 | NSObject 36 | 37 | 38 | IBVersion 39 | 1 40 | 41 | 42 | -------------------------------------------------------------------------------- /it.lproj/Ripper.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 6 12 | 13 | IBSystem Version 14 | 9F33 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /it.lproj/Ripper.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/Ripper.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/RipperPreferences.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | RipperPreferencesController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | 19 | id 20 | 21 | CLASS 22 | FirstResponder 23 | LANGUAGE 24 | ObjC 25 | SUPERCLASS 26 | NSObject 27 | 28 | 29 | IBVersion 30 | 1 31 | 32 | 33 | -------------------------------------------------------------------------------- /it.lproj/RipperPreferences.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 611 12 | 13 | IBSystem Version 14 | 9F33 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /it.lproj/RipperPreferences.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/RipperPreferences.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/TaggingPreferences.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | NSApplication 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSResponder 14 | 15 | 16 | ACTIONS 17 | 18 | revertToInitialValues 19 | id 20 | 21 | CLASS 22 | PreferencesController 23 | LANGUAGE 24 | ObjC 25 | SUPERCLASS 26 | NSWindowController 27 | 28 | 29 | CLASS 30 | FirstResponder 31 | LANGUAGE 32 | ObjC 33 | SUPERCLASS 34 | NSObject 35 | 36 | 37 | IBVersion 38 | 1 39 | 40 | 41 | -------------------------------------------------------------------------------- /it.lproj/TaggingPreferences.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 672 7 | IBLastKnownRelativeProjectPath 8 | ../../Max.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9F33 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /it.lproj/TaggingPreferences.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/TaggingPreferences.nib/keyedobjects.nib -------------------------------------------------------------------------------- /it.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/it.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2005 - 2007 Stephen F. Booth 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #import 20 | 21 | int main(int argc, char *argv[]) 22 | { 23 | return NSApplicationMain(argc, (const char * *) argv); 24 | } 25 | -------------------------------------------------------------------------------- /nb.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \vieww9000\viewh8400\viewkind0 6 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs28 \cf0 M 9 | \f1\b0 acintosh 10 | \f0\b A 11 | \f1\b0 udio for OS 12 | \f0\b X 13 | \fs24 \ 14 | 15 | \f1\b0\fs22 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 17 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 18 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\qc\partightenfactor0 19 | \cf0 \ 20 | Distribuert under kravene i {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}}.\ 21 | \ 22 | Send tilbakemelding ttil {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}}} -------------------------------------------------------------------------------- /nb.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/Exceptions.strings -------------------------------------------------------------------------------- /nb.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/FileConversion.strings -------------------------------------------------------------------------------- /nb.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/General.strings -------------------------------------------------------------------------------- /nb.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /nb.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/Log.strings -------------------------------------------------------------------------------- /nb.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nb.lproj/UndoRedo.strings -------------------------------------------------------------------------------- /nl.lproj/CompactDisc.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/CompactDisc.strings -------------------------------------------------------------------------------- /nl.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2511 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | {\info 6 | {\author Eric Le Baron}}\viewkind0 7 | \deftab720 8 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardeftab720\ri0\qc\partightenfactor0 9 | 10 | \f0\b\fs28 \cf0 M 11 | \f1\b0 acintosh 12 | \f0\b A 13 | \f1\b0 udio for OS 14 | \f0\b X 15 | \fs24 \ 16 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardeftab720\ri0\qc\partightenfactor0 17 | 18 | \f1\b0\fs22 \cf0 \ 19 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardeftab720\ri0\qc\partightenfactor0 20 | {\field{\*\fldinst{HYPERLINK "https://sbooth.org/Max/"}}{\fldrslt \cf0 https://sbooth.org/Max/}}\ 21 | \ 22 | Verspreid onder de {\field{\*\fldinst{HYPERLINK "http://www.gnu.org/licenses/licenses.html#GPL"}}{\fldrslt GPL}} voorwaarden.\ 23 | \ 24 | Verstuur reacties naar {\field{\*\fldinst{HYPERLINK "mailto:me@sbooth.org"}}{\fldrslt me@sbooth.org}} 25 | \fs24 \ 26 | } -------------------------------------------------------------------------------- /nl.lproj/Exceptions.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/Exceptions.strings -------------------------------------------------------------------------------- /nl.lproj/FileConversion.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/FileConversion.strings -------------------------------------------------------------------------------- /nl.lproj/General.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/General.strings -------------------------------------------------------------------------------- /nl.lproj/Genres.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/Genres.strings -------------------------------------------------------------------------------- /nl.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /nl.lproj/Log.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/Log.strings -------------------------------------------------------------------------------- /nl.lproj/Preferences.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/Preferences.strings -------------------------------------------------------------------------------- /nl.lproj/UndoRedo.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbooth/Max/cbb668e3e04644a7d5b0cc20b95ea86257442d2f/nl.lproj/UndoRedo.strings --------------------------------------------------------------------------------