├── AUTHORS ├── CHANGELOG.md ├── LICENSE ├── README.md ├── binaries ├── .gitignore └── example.mpBinaries │ └── Contents │ ├── Info.plist │ └── Resources │ └── dsa_pub.pem ├── configuration ├── Info.plist ├── Preferences.plist ├── iso-639-3.plist └── iso-639-3.tab ├── extras ├── File Type Icons │ ├── audio │ │ ├── aac.svg │ │ ├── aiff.svg │ │ ├── ape.svg │ │ ├── audio.svg │ │ ├── audio16.svg │ │ ├── flac.svg │ │ ├── m4a.svg │ │ ├── mka.svg │ │ ├── mp3.svg │ │ ├── png │ │ │ ├── aac.png │ │ │ ├── aiff.png │ │ │ ├── ape.png │ │ │ ├── audio.png │ │ │ ├── audio16.png │ │ │ ├── flac.png │ │ │ ├── m4a.png │ │ │ ├── mka.png │ │ │ ├── mp3.png │ │ │ ├── wav.png │ │ │ └── wma.png │ │ ├── wav.svg │ │ └── wma.svg │ ├── binary │ │ ├── bin.png │ │ ├── bin.svg │ │ ├── bin2.png │ │ └── bin2.svg │ ├── movies │ │ ├── 3pg.psd │ │ ├── asf.psd │ │ ├── avi.psd │ │ ├── cue.psd │ │ ├── divx.psd │ │ ├── dv.psd │ │ ├── flv.psd │ │ ├── m4v.psd │ │ ├── mkv.psd │ │ ├── mov.psd │ │ ├── movie.psd │ │ ├── movie16.psd │ │ ├── mp4.psd │ │ ├── mpeg.psd │ │ ├── ogg.psd │ │ ├── rm.psd │ │ ├── vob.psd │ │ └── wmv.psd │ ├── readme │ └── subs │ │ ├── png │ │ ├── srt.png │ │ ├── ssa.png │ │ ├── subtitles.png │ │ └── subtitles16.png │ │ ├── srt.svg │ │ ├── ssa.svg │ │ ├── subs.svg │ │ └── subs16.svg ├── mplayericon-marc2o │ ├── PNG │ │ ├── MPlayer_16.png │ │ ├── MPlayer_32.png │ │ └── MPlayer_512.png │ ├── Read Me.rtf │ ├── Source │ │ ├── MPlayer OSX Extended.ai │ │ └── MPlayer_512.psd │ └── icon.icns └── scripts │ ├── .gitignore │ ├── README │ ├── ffmpeg │ └── build │ ├── mplayer │ └── build │ ├── mposx_buildconfig.example │ ├── mposx_install │ ├── mposx_preparebuild │ ├── mposx_release │ └── mposx_sign ├── frameworks └── .gitignore ├── graphics ├── fullscreen │ ├── fc_aslider_bar.png │ ├── fc_aslider_icon.png │ ├── fc_aslider_icon_on.png │ ├── fc_aslider_knob.png │ ├── fc_aslider_knob_on.png │ ├── fc_audio.png │ ├── fc_audio_on.png │ ├── fc_background.png │ ├── fc_fast_forward.png │ ├── fc_fast_forward_on.png │ ├── fc_fast_rewind.png │ ├── fc_fast_rewind_on.png │ ├── fc_fullscreen.png │ ├── fc_fullscreen_on.png │ ├── fc_pause.png │ ├── fc_pause_on.png │ ├── fc_play.png │ ├── fc_play_on.png │ ├── fc_scrub_anim.png │ ├── fc_scrub_badge.png │ ├── fc_scrub_bg.png │ ├── fc_scrub_ends.png │ ├── fc_scrub_run.png │ ├── fc_skip_left.png │ ├── fc_skip_left_on.png │ ├── fc_skip_right.png │ ├── fc_skip_right_on.png │ ├── fc_subtitles.png │ └── fc_subtitles_on.png ├── icons │ ├── 3gp.icns │ ├── aac.icns │ ├── aiff.icns │ ├── ape.icns │ ├── asf.icns │ ├── audio.icns │ ├── avi.icns │ ├── binaries-old.icns │ ├── binaries.icns │ ├── cue.icns │ ├── divx.icns │ ├── dv.icns │ ├── flac.icns │ ├── flv.icns │ ├── icon.icns │ ├── m4a.icns │ ├── m4v.icns │ ├── mka.icns │ ├── mkv.icns │ ├── mov.icns │ ├── movie.icns │ ├── mp3.icns │ ├── mp4.icns │ ├── mpeg.icns │ ├── ogg.icns │ ├── rm.icns │ ├── srt.icns │ ├── ssa.icns │ ├── subtitles.icns │ ├── vob.icns │ ├── wav.icns │ ├── wma.icns │ └── wmv.icns ├── inset.png ├── player │ ├── backward_off.pdf │ ├── backward_on.pdf │ ├── bar_ends.pdf │ ├── bar_inter.pdf │ ├── bar_pointer.pdf │ ├── bar_run.pdf │ ├── forward_off.pdf │ ├── forward_on.pdf │ ├── fullscreen_off.pdf │ ├── fullscreen_on.pdf │ ├── pause_off.pdf │ ├── pause_on.pdf │ ├── play_off.pdf │ ├── play_on.pdf │ ├── playlist_off.pdf │ ├── playlist_on.pdf │ ├── settings_off.pdf │ ├── settings_on.pdf │ ├── skip_back.pdf │ ├── skip_forard.pdf │ ├── volume_0.pdf │ ├── volume_1.pdf │ ├── volume_2.pdf │ ├── volume_3.pdf │ ├── volume_knob_off.pdf │ └── volume_knob_on.pdf ├── playlist │ ├── gotob_button_off.png │ ├── gotob_button_on.png │ ├── gotoe_button_off.png │ ├── gotoe_button_on.png │ ├── info.png │ ├── pl_pause_button_off.png │ ├── pl_pause_button_on.png │ ├── pl_play_button_off.png │ ├── pl_play_button_on.png │ ├── pl_scrub_bar_anim.png │ ├── pl_scrub_bar_badge.png │ ├── pl_scrub_bar_ends.png │ ├── pl_scrub_bar_run.png │ ├── pl_volume0.png │ ├── pl_volume1.png │ ├── pl_volume2.png │ ├── pl_volume3.png │ ├── play_mode_0.png │ ├── play_mode_1.png │ ├── play_mode_2.png │ ├── playing_dvd.png │ ├── playing_state.png │ ├── playing_stream.png │ ├── stop_button_off.png │ └── stop_button_on.png └── preferences │ ├── dialog-warning.png │ ├── pref_advanced.png │ ├── pref_binaries.png │ ├── pref_display.png │ ├── pref_general.png │ ├── pref_image.png │ ├── pref_sound.png │ └── pref_text.png ├── mposxext.xcodeproj ├── .gitignore └── project.pbxproj ├── patches ├── ao_coreaudio_set_channel_layout.patch ├── font_face.patch └── vo_corevideo_proto2.patch ├── resources ├── dsa_pub.pem └── en.lproj │ ├── Equalizers.xib │ ├── Inspector.xib │ ├── MPlayer OSX Help │ ├── about.html │ ├── creditslicense.html │ ├── css │ │ └── stylesheet.css │ ├── defaults.html │ ├── gfx │ │ ├── icon.png │ │ ├── mplayer.png │ │ ├── pref.png │ │ ├── terminal.png │ │ └── ui.png │ ├── help.html │ ├── index.html │ ├── keyboard.html │ ├── keyboard.txt │ ├── learn.html │ └── tipstricks.html │ ├── MainMenu.xib │ ├── MoveApplication.strings │ ├── Player.xib │ ├── Playlist.xib │ └── Preferences.xib └── source ├── MPlayer OSX_Prefix.pch ├── contrib ├── AppleRemote │ ├── AppleRemote.h │ └── AppleRemote.m ├── BWToolkit │ ├── BWGradientBox.h │ ├── BWGradientBox.m │ ├── License.rtf │ ├── NSColor+BWAdditions.h │ └── NSColor+BWAdditions.m ├── MoveApplication │ ├── NSString+SymlinksAndAliases.h │ ├── NSString+SymlinksAndAliases.m │ ├── PFMoveApplication.h │ └── PFMoveApplication.m ├── RegexKitLite │ ├── License.rtf │ ├── RegexKitLite.h │ └── RegexKitLite.m └── headers │ ├── freetype │ ├── config │ │ ├── ftconfig.h │ │ ├── ftheader.h │ │ ├── ftmodule.h │ │ ├── ftoption.h │ │ └── ftstdlib.h │ ├── freetype.h │ ├── ftadvanc.h │ ├── ftautoh.h │ ├── ftbbox.h │ ├── ftbdf.h │ ├── ftbitmap.h │ ├── ftbzip2.h │ ├── ftcache.h │ ├── ftcffdrv.h │ ├── ftchapters.h │ ├── ftcid.h │ ├── fterrdef.h │ ├── fterrors.h │ ├── ftfntfmt.h │ ├── ftgasp.h │ ├── ftglyph.h │ ├── ftgxval.h │ ├── ftgzip.h │ ├── ftimage.h │ ├── ftincrem.h │ ├── ftlcdfil.h │ ├── ftlist.h │ ├── ftlzw.h │ ├── ftmac.h │ ├── ftmm.h │ ├── ftmodapi.h │ ├── ftmoderr.h │ ├── ftotval.h │ ├── ftoutln.h │ ├── ftpcfdrv.h │ ├── ftpfr.h │ ├── ftrender.h │ ├── ftsizes.h │ ├── ftsnames.h │ ├── ftstroke.h │ ├── ftsynth.h │ ├── ftsystem.h │ ├── fttrigon.h │ ├── ftttdrv.h │ ├── fttypes.h │ ├── ftwinfnt.h │ ├── t1tables.h │ ├── ttnameid.h │ ├── tttables.h │ ├── tttags.h │ └── ttunpat.h │ └── ft2build.h ├── controllers ├── AppController.h ├── AppController.m ├── EqualizerController.h ├── EqualizerController.m ├── InspectorController.h ├── InspectorController.m ├── MenuController.h ├── MenuController.m ├── MovieMethods.h ├── MovieMethods.m ├── PlayListController.h ├── PlayListController.m ├── PlayerController.h ├── PlayerController.m ├── PreferencesController2.h └── PreferencesController2.m ├── core ├── BinaryBundle.h ├── BinaryBundle.m ├── LanguageCodes.h ├── LanguageCodes.m ├── MPlayerInterface.h ├── MPlayerInterface.m ├── MovieInfo.h ├── MovieInfo.m ├── Preferences.h └── Preferences.m ├── interface ├── InspectorGradientBox.m ├── KeyRedirectButton.h ├── KeyRedirectButton.m ├── LanguageTokenFieldDelegate.h ├── LanguageTokenFieldDelegate.m ├── MPlayerVideoRenderer.h ├── MPlayerVideoRenderer.m ├── ToggleEditLabel.h ├── ToggleEditLabel.m ├── fullscreen │ ├── FullscreenControls.h │ ├── FullscreenControls.m │ ├── FullscreenControlsScrubbingBar.h │ ├── FullscreenControlsScrubbingBar.m │ ├── FullscreenControlsView.h │ ├── FullscreenControlsView.m │ ├── FullscreenControlsVolumeSlider.h │ └── FullscreenControlsVolumeSlider.m ├── player │ ├── PlayerFullscreenWindow.h │ ├── PlayerFullscreenWindow.m │ ├── PlayerGradientBox.m │ ├── PlayerWindow.h │ ├── PlayerWindow.m │ ├── ScrubbingBar.h │ ├── ScrubbingBar.m │ ├── TimestampTextField.h │ ├── TimestampTextField.m │ ├── VideoOpenGLView.h │ ├── VideoOpenGLView.m │ ├── VolumeSlider.h │ └── VolumeSlider.m └── playlist │ ├── PlaylistScrubbingBar.h │ ├── PlaylistScrubbingBar.m │ ├── PlaylistTableView.h │ ├── PlaylistTableView.m │ ├── PlaylistTimestampTextField.h │ └── PlaylistTimestampTextField.m ├── main.m └── util ├── CocoaAdditions.h ├── CocoaAdditions.m ├── Debug.h ├── Debug.m ├── LocalUserDefaults.h └── LocalUserDefaults.m /AUTHORS: -------------------------------------------------------------------------------- 1 | ***************************************** 2 | AUTHORS 3 | ***************************************** 4 | 5 | NOTE: NEVER send bug reports, help and feature requests directly to the 6 | authors, but you're free to write mails about donating! 7 | 8 | _____________________________________ 9 | MPlayer OSX original development team 10 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 | add project history here: 12 | 13 | MPlayer OSX original development team 14 | 15 | Jan Devera 16 | * All-Hands Person 17 | 18 | Jan Volf 19 | * Developer 20 | 21 | Klokan Petr Přidal (klokan-pp) 22 | * Advisor/Mentor/Consultant 23 | 24 | MaLer 25 | * Developer 26 | 27 | ______________________________________ 28 | MPlayer OSX at http://www.mplayerhq.hu 29 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | 31 | Nicolas Plourde 32 | * Project Maintainer 33 | * Main Developer 34 | 35 | Micah Gideon Modell 36 | * Developer 37 | 38 | Adrian Stutz 39 | * Developer (preferences redesign) 40 | 41 | Bilal Syed Hussain 42 | * Icons for movie, audio and filetypes and help. 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Retirement Notice 2 | ----------------- 3 | 4 | **MPlayer OSX Extended has been retired and won't receive any future updates.** 5 | 6 | After development of MPlayer OSX Extended has been slow for many years and development of the underlying MPlayer project has moved on to mpv, I have decided that it doesn't make sense to invest more time into this project. 7 | 8 | Consider using one of the following alternatives for video playback on macOS: 9 | * [IINA](https://iina.io/): Great UI for mpv 10 | * [mpv](https://mpv.io/): Has its own UI but is a bit cryptic 11 | * [VLC](http://www.videolan.org/): Feature-packed but clunky interface 12 | 13 | MPlayer OSX Extended 14 | ==================== 15 | 16 | Homepage: 17 | http://www.mplayerosx.ch/ 18 | 19 | Issue tracker: 20 | https://github.com/sttz/MPlayer-OSX-Extended/issues 21 | 22 | Downloads: 23 | http://code.google.com/p/mplayerosxext/downloads/list 24 | 25 | Build Instructions 26 | ------------------ 27 | 28 | The project can be built using either XCode 3 or 4. 29 | Make sure you've got the dependencies below and then you should be able to compile MPE directly with XCode. 30 | 31 | ### Dependencies 32 | 33 | #### Sparkle 34 | 35 | MPE requires my [Sparkle Fork](https://github.com/sttz/Sparkle). 36 | It adds updating separate bundles without a restart, used in MPE for updating its binary bundles with Sparkle. 37 | 38 | #### Fontconfig & Freetype 39 | 40 | It's best to use the same Fontconfig and Freetype versions as used in the binary bundle. The default setup links to the libraries inside the `mpextended.mpBinaries` bundle in the binaries folder. The easiest way to get that is download the latest (test) version of MPE and extracting the binary bundle form "`MPlayer OSX Extened.app/Contents/Resources/Binaries`". 41 | 42 | **Note**: I've reorganized the bundle after the FFMpeg-MT merge and haven't released a test version with it yet. For now it's probably best to link to the system Fontconfig and Freetype libraries. 43 | 44 | #### libiconv.2 #### 45 | 46 | On Lion use the system's `libiconv.2`. On Snow Leopard the system's `libiconv.2` is not new enough (Version 8 is required) so install libiconv using for example homebrew or macports, then link to it. 47 | -------------------------------------------------------------------------------- /binaries/.gitignore: -------------------------------------------------------------------------------- 1 | mpextended.mpBinaries 2 | -------------------------------------------------------------------------------- /binaries/example.mpBinaries/Contents/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/binaries/example.mpBinaries/Contents/Info.plist -------------------------------------------------------------------------------- /binaries/example.mpBinaries/Contents/Resources/dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOjCCAi0GByqGSM44BAEwggIgAoIBAQCj30N6uavTtt9IgXkQ5bXlUszskhOq 3 | hkqix+8GYqFG8JdFm7Me+Yg35THcTMggRy/w9D6wPuJG/7cso+75sasTihLa/V5v 4 | WrlyHUTBd4nFbZTVXTlM5o2n77hMfbfaZP0hC5fRfi7EeiQajPv+4JGOEQDNeyjQ 5 | jLQVxhnoN8+14rzgjdzGtFIGrWUwsdTtfZ1Ve1VXaY7+wzf4QeaxUcUidXRh2x2j 6 | lcW0b/alYhmsLYumqyceWxPUoEyP6yH6cBk9mNArSXhPeKCg/1PTtoG4PqBGnu3I 7 | j5OE62HS85lLEOUDLx6dQtYw079cKLIkH/hnlJPcL3t7Vx66ZZsWTJDJAhUAhy6K 8 | mc+aZ9UKiNC3Z6+BbhhSrKECggEAPeii8jwLWxDKvAQKmTe8ppLM5dLpswoB3xpT 9 | zQ0qeadmjQaS0o9bW2/i/DfnSxnqBss+Bsyw52R5JOEnnjhqOLoX8x217m1TPOlH 10 | rQsHjfr1Cq0RGNap+GHQXjFgzZsPwAyDCFlWKn2EC6X1wmd03jCJ1xoiMJ+8AlWl 11 | OmqBYAHfvw+ZB0voQTLfZ3pH9jVmx7lK2nqcMY2rgWpRWSVc3pssKeqWTi6+Op16 12 | w5yJsITfBkU3UlS3Qc/kxH5ZIShQpy2o54y6GbfPi2LXbgE3XmOWGaUXdL6mOEt0 13 | X56OnfLLgknjRP+DJlScN86QuOE2dnAolxQfZzNBvvsoZMWQbgOCAQUAAoIBAGKY 14 | QH5q5OJi+MuOb+oP/w73QMBG6dKcmVIz3sRjYsxKmrFG7KQk5NWS4rLFbfm8ag8V 15 | R2RoUauVZrx7HYA+NcnuJ9QSo3dIHt9jG3UXCbyS8reIXatZ1S5sjCOLn0UuP42c 16 | mvk/QGsbh+ubxiOjmdIRmb7k0vQ6j4G0TmN4ByXQDipOd6CoWUeLnh8ma/sDI15A 17 | U4KyIv5VNolL1uaNR+gXD4qB7noKvuRRpyuyUws3485lcfkXJwQ28YkNFvWf+P5r 18 | YIH4QiJnq0Ansg4V5YnqZucVb3GoGzzk+Toz5DNjWNmTrRXRZSDcmo7ohzbEDKWw 19 | MMoPuS2SiskXBCBwOzE= 20 | -----END PUBLIC KEY----- 21 | -------------------------------------------------------------------------------- /configuration/iso-639-3.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/configuration/iso-639-3.plist -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/aac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/aac.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/aiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/aiff.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/ape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/ape.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/audio.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/audio16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/audio16.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/flac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/flac.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/m4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/m4a.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/mka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/mka.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/mp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/mp3.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/wav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/wav.png -------------------------------------------------------------------------------- /extras/File Type Icons/audio/png/wma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/audio/png/wma.png -------------------------------------------------------------------------------- /extras/File Type Icons/binary/bin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/binary/bin.png -------------------------------------------------------------------------------- /extras/File Type Icons/binary/bin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/binary/bin2.png -------------------------------------------------------------------------------- /extras/File Type Icons/movies/3pg.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/3pg.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/asf.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/asf.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/avi.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/avi.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/cue.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/cue.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/divx.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/divx.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/dv.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/dv.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/flv.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/flv.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/m4v.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/m4v.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/mkv.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/mkv.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/mov.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/mov.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/movie.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/movie.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/movie16.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/movie16.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/mp4.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/mp4.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/mpeg.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/mpeg.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/ogg.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/ogg.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/rm.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/rm.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/vob.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/vob.psd -------------------------------------------------------------------------------- /extras/File Type Icons/movies/wmv.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/movies/wmv.psd -------------------------------------------------------------------------------- /extras/File Type Icons/readme: -------------------------------------------------------------------------------- 1 | Icons by Bilal Syed Hussain (http://bilalh.github.com/) (bh.terra@gmail.com) 2 | If you want to edit them use the audio or subs icons since they would be easier to edit. 3 | 4 | The binary icon is based on X11's icon -------------------------------------------------------------------------------- /extras/File Type Icons/subs/png/srt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/subs/png/srt.png -------------------------------------------------------------------------------- /extras/File Type Icons/subs/png/ssa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/subs/png/ssa.png -------------------------------------------------------------------------------- /extras/File Type Icons/subs/png/subtitles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/subs/png/subtitles.png -------------------------------------------------------------------------------- /extras/File Type Icons/subs/png/subtitles16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/File Type Icons/subs/png/subtitles16.png -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/PNG/MPlayer_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/PNG/MPlayer_16.png -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/PNG/MPlayer_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/PNG/MPlayer_32.png -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/PNG/MPlayer_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/PNG/MPlayer_512.png -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/Read Me.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;\red0\green51\blue102;\red15\green51\blue102;} 4 | \paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 5 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural 6 | 7 | \f0\fs26 \cf0 \ 8 | 9 | \b\fs36 \cf2 MPlayer OSX Extended Alternative App Icon\ 10 | 11 | \fs26 \cf0 \ 12 | 13 | \b0 Thank-you for downloading this icon!\ 14 | \ 15 | Just drop the icon as it is into the 16 | \i Contents > Resources 17 | \i0 folder of your MPlayer OSX Extended application package.\ 18 | \ 19 | Made by marc2o.\ 20 | \cf2 \ul \ulc2 htt\ulnone p\ul ://marc2o.deviantart.com/\cf0 \ulnone \ 21 | \ 22 | Some rights reserved.\ 23 | This icon is released under the Creative Commons Attribution-Share Alike 3.0 License.\ 24 | \cf3 \ul \ulc3 http:\ulnone //\ul creativecommons.or\ulnone g/\ul licenses\ulnone /\ul by-sa\ulnone /\ul 3.0\ulnone /} -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/Source/MPlayer OSX Extended.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/Source/MPlayer OSX Extended.ai -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/Source/MPlayer_512.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/Source/MPlayer_512.psd -------------------------------------------------------------------------------- /extras/mplayericon-marc2o/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/extras/mplayericon-marc2o/icon.icns -------------------------------------------------------------------------------- /extras/scripts/.gitignore: -------------------------------------------------------------------------------- 1 | mposx_buildconfig 2 | -------------------------------------------------------------------------------- /extras/scripts/mposx_buildconfig.example: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # MPlayer OSX build scripts 3 | # Adrian Stutz 2009 4 | 5 | # **************************************************** # 6 | # *** GLOBAL BUILD CONFIG 7 | 8 | # For the other scripts to find this config, it should be added to $PATH. 9 | 10 | # Path to the scripts folder (to reset $PATH correctly) 11 | scripts_path="/Users/example/mplayerosx/Scripts" 12 | 13 | # Path to the install root of mplayer builds 14 | build_root="/Users/example/mplayer/usr/local" 15 | 16 | # Path to the MPlayer OSX source root 17 | mplayerosx_path="/Users/example/dev/mplayerosx" 18 | 19 | # Path to the directory releases are stored 20 | releases_path="/Users/example/dev/releases" -------------------------------------------------------------------------------- /extras/scripts/mposx_preparebuild: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # MPlayer OSX build script 3 | # Adrian Stutz 2008 4 | 5 | # **************************************************** # 6 | # *** CONFIG 7 | 8 | # GLOBAL CONFIG 9 | buildconfig=`which mposx_buildconfig` 10 | if [ $? -eq 0 ]; then 11 | 12 | # Load global config 13 | source mposx_buildconfig 14 | 15 | else 16 | 17 | # Load default config 18 | build_root="/Users/example/dev/usr/local" 19 | 20 | fi 21 | 22 | # LOCAL CONFIG 23 | target_system="x86_64" 24 | 25 | # **************************************************** # 26 | # *** OPTION PARSING 27 | 28 | usage() { 29 | cat << EOF 30 | Usage: source $0 [options] [x86_64|i386|ppc|ppcg3|ub] 31 | 32 | General options: 33 | -h, --help display this help 34 | 35 | One of either x86_64, i386, ppc, ppcg3 or ub can be passed to set the target system (default: x86_64). 36 | Headers and configure flags will be set accordingly. 37 | EOF 38 | } 39 | 40 | # Parse command line 41 | while [ -n "$1" ]; do 42 | case $1 in 43 | x86_64 | i386 | ppc | ppcg3 | ub ) target_system=$1 44 | ;; 45 | -h | --help ) usage 46 | exit 47 | ;; 48 | * ) usage 49 | exit 1 50 | esac 51 | shift 52 | done 53 | 54 | # **************************************************** # 55 | # *** SET PATHS / FLAGS 56 | 57 | # Configure deployment target and SDK 58 | deployment_target=10.6 59 | sdk_path=$(xcrun --show-sdk-path) 60 | 61 | # Make sure pkg-config doesn't interfere 62 | export PKG_CONFIG_PATH="${build_root}/bin/pkg-config" 63 | # Reset path to default + our own build root 64 | export PATH="${build_root}/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" 65 | # Add scripts path 66 | export PATH="$scripts_path:$PATH" 67 | 68 | # Set deployment target and SDK 69 | export MACOSX_DEPLOYMENT_TARGET=$deployment_target 70 | export CFLAGS="-mmacosx-version-min=${deployment_target} -isystem ${sdk_path}" 71 | export LDFLAGS="-mmacosx-version-min=${deployment_target} -isysroot ${sdk_path}" 72 | export LDFLAGS="$LDFLAGS -Wl,-syslibroot,${sdk_path}" 73 | export CXXFLAGS="-mmacosx-version-min=${deployment_target} -isysroot ${sdk_path}" 74 | 75 | # Intel 64bit platform flags 76 | if [ $target_system = "x86_64" ]; then 77 | export CFLAGS="$CFLAGS -arch x86_64" 78 | export LDFLAGS="$LDFLAGS -arch x86_64" 79 | export CXXFLAGS="$CXXFLAGS -arch x86_64" 80 | fi 81 | 82 | # Intel platform flags 83 | if [ $target_system = "i386" ]; then 84 | export CFLAGS="$CFLAGS -arch i386" 85 | export LDFLAGS="$LDFLAGS -arch i386" 86 | export CXXFLAGS="$CXXFLAGS -arch i386" 87 | fi 88 | 89 | # Universal binary platform flags 90 | if [ "$target_system" = "ub" ]; then 91 | export CFLAGS="$CFLAGS -arch x86_64 -arch i386" 92 | export LDFLAGS="$LDFLAGS -arch x86_64 -arch i386" 93 | export CXXFLAGS="$CXXFLAGS -arch x86_64 -arch i386" 94 | fi 95 | 96 | # Fix for text relocation error on i386 97 | # See: http://stackoverflow.com/questions/6650178/illegal-text-reloc-to-non-lazy-ptr-error-while-building-in-xcode-4-with-libav-l 98 | if [ $target_system = "i386" ]; then 99 | export LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress" 100 | fi 101 | 102 | # Set paths 103 | export LDFLAGS="$LDFLAGS -L${build_root}/lib -Wl,-search_paths_first" 104 | export CFLAGS="$CFLAGS -I${build_root}/include" 105 | export CXXFLAGS="$CXXFLAGS -I${build_root}/include" 106 | 107 | export BUILD_ROOT="$build_root" 108 | 109 | echo "Headers set for target system: $target_system" 110 | echo "Using build root: $build_root" -------------------------------------------------------------------------------- /extras/scripts/mposx_release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # MPlayer OSX sign update 3 | # Adrian Stutz 2009 4 | 5 | set -o errexit 6 | 7 | # **************************************************** # 8 | # *** CONFIG 9 | 10 | buildconfig=$(which mposx_buildconfig) 11 | if [ $? -eq 0 ]; then 12 | # Load global config 13 | source mposx_buildconfig 14 | else 15 | echo Error: Unable to load global config mposx_buildconfig; exit 1; 16 | fi 17 | 18 | archive_filename_prefix="MPlayer-OSX-Extended_" 19 | keychain_privkey_name="MPlayerOSX Sparkle Private Key" 20 | payload_path="MPlayer OSX Extended.app" 21 | 22 | # **************************************************** # 23 | # *** OPTION PARSING 24 | 25 | usage() { 26 | cat << EOF 27 | Usage: source $0 payload 28 | 29 | General options: 30 | -h, --help display this help 31 | 32 | Package an MPE build for release and compute the necessary 33 | sparkle signature and info needed for autoupdate. 34 | EOF 35 | } 36 | 37 | # Parse command line 38 | while [ -n "$1" ]; do 39 | case $1 in 40 | -h | --help ) usage 41 | exit 42 | ;; 43 | * ) payload_path=$1 44 | esac 45 | shift 46 | done 47 | 48 | # **************************************************** # 49 | # *** RELEASE PROCESSING 50 | 51 | # Check input payload 52 | if [ ! -d "$payload_path" ]; then 53 | echo Error: Release payload "'$payload_path'" could not be found.; exit 1; 54 | fi 55 | 56 | cd "$(dirname "$payload_path")" 57 | payload_basepath=$(pwd) 58 | payload_filename=$(basename "$payload_path") 59 | 60 | # Get info from Info.plist 61 | plist_path="$payload_basepath/$payload_filename/Contents/Info" 62 | VERSION=$(defaults read "$plist_path" CFBundleShortVersionString) 63 | BUILD_ID=$(defaults read "$plist_path" CFBundleVersion) 64 | 65 | # Compress payload 66 | archive_filename="$archive_filename_prefix$VERSION.zip" 67 | 68 | # Check for existing release 69 | if [ -f "$releases_path/$archive_filename" ]; then 70 | echo Error: Release archive "$archive_filename" already exists in "$releases_path".; exit 1; 71 | fi 72 | 73 | zip -ryq "$releases_path/$archive_filename" "$payload_filename" 74 | 75 | # Calculate signature 76 | SIZE=$(stat -f %z "$releases_path/$archive_filename") 77 | SIGNATURE=$( 78 | openssl dgst -sha1 -binary < "$releases_path/$archive_filename" \ 79 | | openssl dgst -dss1 -sign <(security find-generic-password -g -s "$keychain_privkey_name" 2>&1 1>/dev/null | perl -pe '($_) = /"(.+)"/; s/\\012/\n/g') \ 80 | | openssl enc -base64 81 | ) 82 | 83 | [ $SIGNATURE ] || { echo Error: Unable to load signing private key with name "'$keychain_privkey_name'" from keychain; exit 1; } 84 | 85 | # Output sparkle information 86 | cat <&1 1>/dev/null | perl -pe '($_) = /"(.+)"/; s/\\012/\n/g') \ 16 | | openssl enc -base64 17 | ) 18 | 19 | echo $signature -------------------------------------------------------------------------------- /frameworks/.gitignore: -------------------------------------------------------------------------------- 1 | Sparkle.framework 2 | -------------------------------------------------------------------------------- /graphics/fullscreen/fc_aslider_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_aslider_bar.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_aslider_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_aslider_icon.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_aslider_icon_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_aslider_icon_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_aslider_knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_aslider_knob.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_aslider_knob_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_aslider_knob_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_audio.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_audio_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_audio_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_background.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fast_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fast_forward.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fast_forward_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fast_forward_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fast_rewind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fast_rewind.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fast_rewind_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fast_rewind_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fullscreen.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_fullscreen_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_fullscreen_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_pause.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_pause_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_pause_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_play.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_play_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_play_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_scrub_anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_scrub_anim.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_scrub_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_scrub_badge.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_scrub_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_scrub_bg.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_scrub_ends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_scrub_ends.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_scrub_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_scrub_run.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_skip_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_skip_left.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_skip_left_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_skip_left_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_skip_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_skip_right.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_skip_right_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_skip_right_on.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_subtitles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_subtitles.png -------------------------------------------------------------------------------- /graphics/fullscreen/fc_subtitles_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/fullscreen/fc_subtitles_on.png -------------------------------------------------------------------------------- /graphics/icons/3gp.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/3gp.icns -------------------------------------------------------------------------------- /graphics/icons/aac.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/aac.icns -------------------------------------------------------------------------------- /graphics/icons/aiff.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/aiff.icns -------------------------------------------------------------------------------- /graphics/icons/ape.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/ape.icns -------------------------------------------------------------------------------- /graphics/icons/asf.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/asf.icns -------------------------------------------------------------------------------- /graphics/icons/audio.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/audio.icns -------------------------------------------------------------------------------- /graphics/icons/avi.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/avi.icns -------------------------------------------------------------------------------- /graphics/icons/binaries-old.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/binaries-old.icns -------------------------------------------------------------------------------- /graphics/icons/binaries.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/binaries.icns -------------------------------------------------------------------------------- /graphics/icons/cue.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/cue.icns -------------------------------------------------------------------------------- /graphics/icons/divx.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/divx.icns -------------------------------------------------------------------------------- /graphics/icons/dv.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/dv.icns -------------------------------------------------------------------------------- /graphics/icons/flac.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/flac.icns -------------------------------------------------------------------------------- /graphics/icons/flv.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/flv.icns -------------------------------------------------------------------------------- /graphics/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/icon.icns -------------------------------------------------------------------------------- /graphics/icons/m4a.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/m4a.icns -------------------------------------------------------------------------------- /graphics/icons/m4v.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/m4v.icns -------------------------------------------------------------------------------- /graphics/icons/mka.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mka.icns -------------------------------------------------------------------------------- /graphics/icons/mkv.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mkv.icns -------------------------------------------------------------------------------- /graphics/icons/mov.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mov.icns -------------------------------------------------------------------------------- /graphics/icons/movie.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/movie.icns -------------------------------------------------------------------------------- /graphics/icons/mp3.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mp3.icns -------------------------------------------------------------------------------- /graphics/icons/mp4.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mp4.icns -------------------------------------------------------------------------------- /graphics/icons/mpeg.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/mpeg.icns -------------------------------------------------------------------------------- /graphics/icons/ogg.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/ogg.icns -------------------------------------------------------------------------------- /graphics/icons/rm.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/rm.icns -------------------------------------------------------------------------------- /graphics/icons/srt.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/srt.icns -------------------------------------------------------------------------------- /graphics/icons/ssa.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/ssa.icns -------------------------------------------------------------------------------- /graphics/icons/subtitles.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/subtitles.icns -------------------------------------------------------------------------------- /graphics/icons/vob.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/vob.icns -------------------------------------------------------------------------------- /graphics/icons/wav.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/wav.icns -------------------------------------------------------------------------------- /graphics/icons/wma.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/wma.icns -------------------------------------------------------------------------------- /graphics/icons/wmv.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/icons/wmv.icns -------------------------------------------------------------------------------- /graphics/inset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/inset.png -------------------------------------------------------------------------------- /graphics/player/backward_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/backward_off.pdf -------------------------------------------------------------------------------- /graphics/player/backward_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/backward_on.pdf -------------------------------------------------------------------------------- /graphics/player/bar_ends.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/bar_ends.pdf -------------------------------------------------------------------------------- /graphics/player/bar_inter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/bar_inter.pdf -------------------------------------------------------------------------------- /graphics/player/bar_pointer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/bar_pointer.pdf -------------------------------------------------------------------------------- /graphics/player/bar_run.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/bar_run.pdf -------------------------------------------------------------------------------- /graphics/player/forward_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/forward_off.pdf -------------------------------------------------------------------------------- /graphics/player/forward_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/forward_on.pdf -------------------------------------------------------------------------------- /graphics/player/fullscreen_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/fullscreen_off.pdf -------------------------------------------------------------------------------- /graphics/player/fullscreen_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/fullscreen_on.pdf -------------------------------------------------------------------------------- /graphics/player/pause_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/pause_off.pdf -------------------------------------------------------------------------------- /graphics/player/pause_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/pause_on.pdf -------------------------------------------------------------------------------- /graphics/player/play_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/play_off.pdf -------------------------------------------------------------------------------- /graphics/player/play_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/play_on.pdf -------------------------------------------------------------------------------- /graphics/player/playlist_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/playlist_off.pdf -------------------------------------------------------------------------------- /graphics/player/playlist_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/playlist_on.pdf -------------------------------------------------------------------------------- /graphics/player/settings_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/settings_off.pdf -------------------------------------------------------------------------------- /graphics/player/settings_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/settings_on.pdf -------------------------------------------------------------------------------- /graphics/player/skip_back.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/skip_back.pdf -------------------------------------------------------------------------------- /graphics/player/skip_forard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/skip_forard.pdf -------------------------------------------------------------------------------- /graphics/player/volume_0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_0.pdf -------------------------------------------------------------------------------- /graphics/player/volume_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_1.pdf -------------------------------------------------------------------------------- /graphics/player/volume_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_2.pdf -------------------------------------------------------------------------------- /graphics/player/volume_3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_3.pdf -------------------------------------------------------------------------------- /graphics/player/volume_knob_off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_knob_off.pdf -------------------------------------------------------------------------------- /graphics/player/volume_knob_on.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/player/volume_knob_on.pdf -------------------------------------------------------------------------------- /graphics/playlist/gotob_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/gotob_button_off.png -------------------------------------------------------------------------------- /graphics/playlist/gotob_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/gotob_button_on.png -------------------------------------------------------------------------------- /graphics/playlist/gotoe_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/gotoe_button_off.png -------------------------------------------------------------------------------- /graphics/playlist/gotoe_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/gotoe_button_on.png -------------------------------------------------------------------------------- /graphics/playlist/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/info.png -------------------------------------------------------------------------------- /graphics/playlist/pl_pause_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_pause_button_off.png -------------------------------------------------------------------------------- /graphics/playlist/pl_pause_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_pause_button_on.png -------------------------------------------------------------------------------- /graphics/playlist/pl_play_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_play_button_off.png -------------------------------------------------------------------------------- /graphics/playlist/pl_play_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_play_button_on.png -------------------------------------------------------------------------------- /graphics/playlist/pl_scrub_bar_anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_scrub_bar_anim.png -------------------------------------------------------------------------------- /graphics/playlist/pl_scrub_bar_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_scrub_bar_badge.png -------------------------------------------------------------------------------- /graphics/playlist/pl_scrub_bar_ends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_scrub_bar_ends.png -------------------------------------------------------------------------------- /graphics/playlist/pl_scrub_bar_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_scrub_bar_run.png -------------------------------------------------------------------------------- /graphics/playlist/pl_volume0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_volume0.png -------------------------------------------------------------------------------- /graphics/playlist/pl_volume1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_volume1.png -------------------------------------------------------------------------------- /graphics/playlist/pl_volume2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_volume2.png -------------------------------------------------------------------------------- /graphics/playlist/pl_volume3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/pl_volume3.png -------------------------------------------------------------------------------- /graphics/playlist/play_mode_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/play_mode_0.png -------------------------------------------------------------------------------- /graphics/playlist/play_mode_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/play_mode_1.png -------------------------------------------------------------------------------- /graphics/playlist/play_mode_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/play_mode_2.png -------------------------------------------------------------------------------- /graphics/playlist/playing_dvd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/playing_dvd.png -------------------------------------------------------------------------------- /graphics/playlist/playing_state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/playing_state.png -------------------------------------------------------------------------------- /graphics/playlist/playing_stream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/playing_stream.png -------------------------------------------------------------------------------- /graphics/playlist/stop_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/stop_button_off.png -------------------------------------------------------------------------------- /graphics/playlist/stop_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/playlist/stop_button_on.png -------------------------------------------------------------------------------- /graphics/preferences/dialog-warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/dialog-warning.png -------------------------------------------------------------------------------- /graphics/preferences/pref_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_advanced.png -------------------------------------------------------------------------------- /graphics/preferences/pref_binaries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_binaries.png -------------------------------------------------------------------------------- /graphics/preferences/pref_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_display.png -------------------------------------------------------------------------------- /graphics/preferences/pref_general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_general.png -------------------------------------------------------------------------------- /graphics/preferences/pref_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_image.png -------------------------------------------------------------------------------- /graphics/preferences/pref_sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_sound.png -------------------------------------------------------------------------------- /graphics/preferences/pref_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/graphics/preferences/pref_text.png -------------------------------------------------------------------------------- /mposxext.xcodeproj/.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata/ 2 | project.xcworkspace/ 3 | *.pbxuser 4 | *.mode1v3 5 | *.mode2v3 6 | *.perspectivev3 7 | *.xcuserstate 8 | -------------------------------------------------------------------------------- /patches/ao_coreaudio_set_channel_layout.patch: -------------------------------------------------------------------------------- 1 | Index: libao2/ao_coreaudio.c 2 | =================================================================== 3 | --- libao2/ao_coreaudio.c (revision 36463) 4 | +++ libao2/ao_coreaudio.c (working copy) 5 | @@ -412,14 +412,15 @@ 6 | static int init(int rate,int channels,int format,int flags) 7 | { 8 | AudioStreamBasicDescription inDesc; 9 | -ComponentDescription desc; 10 | -Component comp; 11 | +AudioComponentDescription desc; 12 | +AudioComponent comp; 13 | AURenderCallbackStruct renderCallback; 14 | OSStatus err; 15 | UInt32 size, maxFrames, b_alive; 16 | char *psz_name; 17 | AudioDeviceID devid_def = 0; 18 | int device_id, display_help = 0; 19 | +AudioChannelLayout channelLayout; 20 | 21 | const opt_t subopts[] = { 22 | {"device_id", OPT_ARG_INT, &device_id, NULL}, 23 | @@ -557,25 +558,22 @@ 24 | desc.componentFlags = 0; 25 | desc.componentFlagsMask = 0; 26 | 27 | - comp = FindNextComponent(NULL, &desc); //Finds an component that meets the desc spec's 28 | + comp = AudioComponentFindNext(NULL, &desc); //Finds an component that meets the desc spec's 29 | if (comp == NULL) { 30 | ao_msg(MSGT_AO, MSGL_WARN, "Unable to find Output Unit component\n"); 31 | goto err_out; 32 | } 33 | 34 | - err = OpenAComponent(comp, &(ao->theOutputUnit)); //gains access to the services provided by the component 35 | + err = AudioComponentInstanceNew(comp, &(ao->theOutputUnit)); 36 | if (err) { 37 | ao_msg(MSGT_AO, MSGL_WARN, "Unable to open Output Unit component: [%4.4s]\n", (char *)&err); 38 | goto err_out; 39 | } 40 | 41 | - // Initialize AudioUnit 42 | - err = AudioUnitInitialize(ao->theOutputUnit); 43 | - if (err) { 44 | - ao_msg(MSGT_AO, MSGL_WARN, "Unable to initialize Output Unit component: [%4.4s]\n", (char *)&err); 45 | - goto err_out1; 46 | - } 47 | + //Set the Current Device to the Default Output Unit. 48 | + err = AudioUnitSetProperty(ao->theOutputUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &ao->i_selected_dev, sizeof(ao->i_selected_dev)); 49 | 50 | + // Set input format 51 | size = sizeof(AudioStreamBasicDescription); 52 | err = AudioUnitSetProperty(ao->theOutputUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &inDesc, size); 53 | 54 | @@ -584,6 +582,31 @@ 55 | goto err_out2; 56 | } 57 | 58 | + // Initialize AudioUnit 59 | + err = AudioUnitInitialize(ao->theOutputUnit); 60 | + if (err) { 61 | + ao_msg(MSGT_AO, MSGL_WARN, "Unable to initialize Output Unit component: [%4.4s]\n", (char *)&err); 62 | + goto err_out1; 63 | + } 64 | + 65 | + // Set channel layout 66 | + if (channels == 5 || channels == 6 || channels == 8) { 67 | + memset(&channelLayout, 0, sizeof(channelLayout)); 68 | + if (channels == 5) { 69 | + channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_5_1_B; 70 | + } else if (channels == 6) { 71 | + channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_MPEG_5_0_B; 72 | + } else { 73 | + channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Emagic_Default_7_1; 74 | + } 75 | + err = AudioUnitSetProperty(ao->theOutputUnit, kAudioUnitProperty_AudioChannelLayout, kAudioUnitScope_Input, 0, &channelLayout, sizeof(channelLayout)); 76 | + 77 | + if (err) { 78 | + ao_msg(MSGT_AO, MSGL_WARN, "Unable to set channel layout: [%d]\n", err); 79 | + goto err_out1; 80 | + } 81 | + } 82 | + 83 | size = sizeof(UInt32); 84 | err = AudioUnitGetProperty(ao->theOutputUnit, kAudioDevicePropertyBufferSize, kAudioUnitScope_Input, 0, &maxFrames, &size); 85 | 86 | @@ -593,9 +616,6 @@ 87 | goto err_out2; 88 | } 89 | 90 | - //Set the Current Device to the Default Output Unit. 91 | - err = AudioUnitSetProperty(ao->theOutputUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &ao->i_selected_dev, sizeof(ao->i_selected_dev)); 92 | - 93 | ao->chunk_size = maxFrames;//*inDesc.mBytesPerFrame; 94 | 95 | ao_data.samplerate = inDesc.mSampleRate; 96 | -------------------------------------------------------------------------------- /patches/font_face.patch: -------------------------------------------------------------------------------- 1 | Index: sub/font_load_ft.c 2 | =================================================================== 3 | --- sub/font_load_ft.c (revision 38010) 4 | +++ sub/font_load_ft.c (working copy) 5 | @@ -1113,10 +1113,10 @@ 6 | FcPattern *fc_pattern; 7 | FcPattern *fc_pattern2; 8 | FcChar8 *s; 9 | - int face_index; 10 | FcBool scalable; 11 | FcResult result = FcResultMatch; 12 | #endif 13 | + int face_index = 0; 14 | font_desc_t *vo_font = *fontp; 15 | vo_image_width = width; 16 | vo_image_height = height; 17 | @@ -1160,5 +1160,19 @@ 18 | mp_msg(MSGT_OSD, MSGL_ERR, MSGTR_LIBVO_FONT_LOAD_FT_FontconfigNoMatch); 19 | } 20 | #endif 21 | - *fontp=read_font_desc_ft(font_name, 0, width, height, font_scale_factor); 22 | + 23 | + // Extract index from hash suffix in pah, e.g. "~/myfont.ttc#3" 24 | + if (font_name) { 25 | + char *hash = strrchr(font_name, '#'); 26 | + if (hash && *(hash + 1) != '\0') { 27 | + face_index = atoi(hash + 1); 28 | + if (face_index < 0) { 29 | + face_index = 0; 30 | + } else { 31 | + *hash = '\0'; 32 | + } 33 | + } 34 | + } 35 | + 36 | + *fontp=read_font_desc_ft(font_name, face_index, width, height, font_scale_factor); 37 | } 38 | -------------------------------------------------------------------------------- /patches/vo_corevideo_proto2.patch: -------------------------------------------------------------------------------- 1 | Index: libvo/vo_corevideo.h 2 | =================================================================== 3 | --- libvo/vo_corevideo.h (revision 36463) 4 | +++ libvo/vo_corevideo.h (working copy) 5 | @@ -40,6 +40,13 @@ 6 | - (void) ontop; 7 | @end 8 | 9 | +@protocol MPlayerOSXVOProto2 10 | +- (int) startWithImageSize:(NSSize)imageSize 11 | + displaySize:(NSSize)displaySize 12 | + bytesPerPixel:(int)bytes 13 | + andPixelFormat:(OSType)pixelFormat; 14 | +@end 15 | + 16 | @interface MPlayerOpenGLView : MPCommonOpenGLView 17 | { 18 | //CoreVideo 19 | Index: libvo/vo_corevideo.m 20 | =================================================================== 21 | --- libvo/vo_corevideo.m (revision 36463) 22 | +++ libvo/vo_corevideo.m (working copy) 23 | @@ -203,8 +203,16 @@ 24 | 25 | //connect to mplayerosx 26 | mplayerosxProxy=[NSConnection rootProxyForConnectionWithRegisteredName:[NSString stringWithUTF8String:buffer_name] host:nil]; 27 | - if ([mplayerosxProxy conformsToProtocol:@protocol(MPlayerOSXVOProto)]) { 28 | - [mplayerosxProxy setProtocolForProxy:@protocol(MPlayerOSXVOProto)]; 29 | + if ([mplayerosxProxy conformsToProtocol:@protocol(MPlayerOSXVOProto2)]) { 30 | + [mplayerosxProxy setProtocolForProxy:@protocol(MPlayerOSXVOProto2)]; 31 | + mplayerosxProto = (id )mplayerosxProxy; 32 | + [mplayerosxProxy startWithImageSize:NSMakeSize(image_width, image_height) 33 | + displaySize:NSMakeSize(d_width, d_height) 34 | + bytesPerPixel:image_bytes 35 | + andPixelFormat:pixelFormat]; 36 | + } 37 | + else if ([mplayerosxProxy conformsToProtocol:@protocol(MPlayerOSXVOProto)]) { 38 | + [mplayerosxProxy setProtocolForProxy:@protocol(MPlayerOSXVOProto)]; 39 | mplayerosxProto = (id )mplayerosxProxy; 40 | [mplayerosxProto startWithWidth: image_width withHeight: image_height withBytes: image_bytes withAspect:d_width*100/d_height]; 41 | } 42 | -------------------------------------------------------------------------------- /resources/dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOjCCAi0GByqGSM44BAEwggIgAoIBAQCj30N6uavTtt9IgXkQ5bXlUszskhOq 3 | hkqix+8GYqFG8JdFm7Me+Yg35THcTMggRy/w9D6wPuJG/7cso+75sasTihLa/V5v 4 | WrlyHUTBd4nFbZTVXTlM5o2n77hMfbfaZP0hC5fRfi7EeiQajPv+4JGOEQDNeyjQ 5 | jLQVxhnoN8+14rzgjdzGtFIGrWUwsdTtfZ1Ve1VXaY7+wzf4QeaxUcUidXRh2x2j 6 | lcW0b/alYhmsLYumqyceWxPUoEyP6yH6cBk9mNArSXhPeKCg/1PTtoG4PqBGnu3I 7 | j5OE62HS85lLEOUDLx6dQtYw079cKLIkH/hnlJPcL3t7Vx66ZZsWTJDJAhUAhy6K 8 | mc+aZ9UKiNC3Z6+BbhhSrKECggEAPeii8jwLWxDKvAQKmTe8ppLM5dLpswoB3xpT 9 | zQ0qeadmjQaS0o9bW2/i/DfnSxnqBss+Bsyw52R5JOEnnjhqOLoX8x217m1TPOlH 10 | rQsHjfr1Cq0RGNap+GHQXjFgzZsPwAyDCFlWKn2EC6X1wmd03jCJ1xoiMJ+8AlWl 11 | OmqBYAHfvw+ZB0voQTLfZ3pH9jVmx7lK2nqcMY2rgWpRWSVc3pssKeqWTi6+Op16 12 | w5yJsITfBkU3UlS3Qc/kxH5ZIShQpy2o54y6GbfPi2LXbgE3XmOWGaUXdL6mOEt0 13 | X56OnfLLgknjRP+DJlScN86QuOE2dnAolxQfZzNBvvsoZMWQbgOCAQUAAoIBAGKY 14 | QH5q5OJi+MuOb+oP/w73QMBG6dKcmVIz3sRjYsxKmrFG7KQk5NWS4rLFbfm8ag8V 15 | R2RoUauVZrx7HYA+NcnuJ9QSo3dIHt9jG3UXCbyS8reIXatZ1S5sjCOLn0UuP42c 16 | mvk/QGsbh+ubxiOjmdIRmb7k0vQ6j4G0TmN4ByXQDipOd6CoWUeLnh8ma/sDI15A 17 | U4KyIv5VNolL1uaNR+gXD4qB7noKvuRRpyuyUws3485lcfkXJwQ28YkNFvWf+P5r 18 | YIH4QiJnq0Ansg4V5YnqZucVb3GoGzzk+Toz5DNjWNmTrRXRZSDcmo7ohzbEDKWw 19 | MMoPuS2SiskXBCBwOzE= 20 | -----END PUBLIC KEY----- 21 | -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | About MPlayer OSX Extended 7 | 8 | 9 | 10 | 11 | 12 | 15 |
16 |
MPlayer icon
17 |

About MPlayer OSX Extended

18 | MPlayer OSX Extended is a Cocoa frontend for The MPlayer Project cross platform media player. 19 |
20 |
21 | 22 |
23 | 24 | MPlayer OSX Extended is the future of MPlayer OSX. Leveraging the power of the MPlayer and FFmpeg open source projects, MPlayer OSX Extended aims to deliver a powerful, functional and no frills video player for OSX.

25 | 26 | MPlayer OSX Extended is based on the original MPlayer OSX project but has since undergone fundamental changes, making it a modern and easy to use video player. Thanks to multithreading and 64bit architecture, MPlayer OSX Extended is one of the fastest choices on OSX to play back HD H264 videos. It also supports instant playback of MKV files and advanced styled subtitles in the ASS format.

27 | 28 | MPlayer OSX Extended uses the MPlayer open source project for decoding and integrates MPlayer's default key commands with a native OSX interface. Users of MPlayer should immediately feel at home and are able to tweak the fine details of the MPlayer invocation with binary bundles and additional command-line options.

29 |
Some of its key features are:
30 |
    31 |
  • Up-to-date builds of MPlayer and FFmpeg.
  • 32 |
  • Clean and concise interface and preferences.
  • 33 | 34 |
  • Support for MKV files with embedded fonts and ASS subtitles.
  • 35 |
  • Multithreaded and 64bit-enabled for best playback performance.
  • 36 |
  • Built-in support for a wide range of video and audio formats.
  • 37 |
  • Fullscreen controls, playlist, inspector and interactive audio and video equalizers.
  • 38 |
  • Capture screenshots of any video.
  • 39 | 40 |
  • Automatic updates for itself and MPlayer binaries.
  • 41 |
42 |
About The MPlayer Project
43 | 44 | MPlayer is a multimedia player for Linux (runs on many other platforms and CPU architectures, see the documentation). It plays most 45 | MPEG/VOB, AVI, ASF/WMA/WMV, RM, QT/MOV/MP4, OGG/OGM, MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM and RoQ files, supported by many native 46 | and binary codecs. You can watch VideoCD, SVCD, DVD, 3ivx and DivX 3/4/5 movies, too. 47 | 48 |
49 | 50 | MPlayer is fast, as most of time-critical parts are optimized for Intel/AMD (MMX/MMX2/SSE/SSE2/3DNow!/3DNowEx), 51 | PowerPC G4 (Altivec), SPARC (VIS), ARM PDAs and the Sony Playstation 2. 52 | 53 |
54 |
55 |
About MPlayer OSX
56 | 57 | MPlayer OSX was originally developed by Klokan Petr Pridal, who was also the founder of the project, and Jan Devera. Now, the 58 | Project is being actively developed by Nicolas Plourde and a small team of volunteers. It has undergone some changes in the 59 | user interface, gained on speed, and is aiming to be the best movie player for the mac. 60 | 61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/css/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* match apple design */ 2 | body { color: #000; background-color: #fff; margin: 0 } 3 | h1 { color: #000; font-size: 18pt; font-family: Lucida Grande, Arial, sans-serif; font-weight: 500; letter-spacing: -1pt; padding-top: 12px } 4 | h2 { color: #000; font-size: 11pt; font-family: Lucida Grande, Arial, sans-serif; font-weight: 300; margin-top: 16px } 5 | h3 { color: #000; font-size: 8pt; font-family: Lucida Grande, Arial, sans-serif; font-weight: 300; margin-top: 21px } 6 | h4 { font-size: 11pt; font-family: Lucida Grande, Arial, sans-serif; margin-top: 13px; margin-bottom: 0 } 7 | h5 { font-size: 9pt; font-family: Lucida Grande, Arial, sans-serif; font-weight: bold; margin-left: 0px; margin-top: 0px; margin-bottom: 0px } 8 | p { font-size: 9pt; font-family: Lucida Grande, Arial, sans-serif; margin-top: -10px; margin-left: 0 } 9 | p1 { font-size: 9pt; font-family: Lucida Grande, Arial, sans-serif; } 10 | a { color: #00f; font-family: Lucida Grande, Arial, sans-serif; text-decoration: none } 11 | a:hover { text-decoration: underline } 12 | ul { margin-top: 0.1em; padding-left: 1.5em; } 13 | 14 | #contentleft { margin-top: 38px; width: 235px; float: left } 15 | #contentcenter { margin-top: 2px; padding: 0; width: 18px; float: left } 16 | #contentright { margin-top: 18px; padding-left: 30px; width: 210px; height: 300px; float: left; border-left: 1px solid #808080 } 17 | #frame { text-align: left; margin-top: 12px; margin-right: auto; margin-left: auto; width: 500px } 18 | #banner { background-color: #f2f2f2; background-repeat: no-repeat; padding: -2px 6px 0; position: fixed; top: 0; left: 0; width: 100%; height: 1.2em; float: left; border-bottom: 1px solid #bfbfbf } 19 | #caticon { margin-bottom: 0px; margin-left: 0px; float: left } 20 | #pagetitle { margin-top: 0px; margin-bottom: 0px; margin-left: 42px; width: 80%; border: solid 1px #fff } 21 | #mainbox { margin-top: 36px; margin-left: 10px; padding-right: 6px } 22 | #machelp { position: absolute; top: 2px; left: 10px } 23 | #taskbox { background-color: #e6edff; list-style-type: decimal; list-style-position: outside; margin: 12px 0; padding: 2px 12px; border: solid 1px #bfbfbf } 24 | #taskleft { margin-top: 0px; width: 100px; float: left border-right: 1px solid #808080} 25 | #taskright { margin-top: 0px; width: 100px; float: left padding-left: 30px;} 26 | 27 | .space17 { padding-top: 17px } 28 | .smlapp { height: 275px } 29 | .utility { margin-top: 6px; margin-bottom: 24px } 30 | .icon { margin-bottom: -2px } 31 | 32 | .bread { color: #00f; font-size: 8pt; margin: -9px 0 -6px } 33 | .leftborder { color: #00f; font-size: 8pt; margin: -9px 0 -6px; padding-top: 24px; padding-bottom: 3px; padding-left: 8px; border-left: 1px solid #bfbfbf } 34 | .mult { margin-top: -8px } 35 | .blue { background-color: #e6edff; margin-top: -3px; margin-bottom: -3px; padding-top: -3px; padding-bottom: -3px } 36 | .rules { border-bottom: 1px dotted #ccc } 37 | .dots { border: dotted 1px #ccc } 38 | .seealso { margin-top: 4px; margin-bottom: 4px } -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/defaults.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Tips and tricks 7 | 8 | 9 | 10 | 11 | 12 | 15 |
16 |
MPlayer icon
17 |

Tips and tricks

18 |
19 | 20 | 21 | 22 | 25 | 26 | 27 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | . 136 | 137 | 138 | 139 |
23 |
Constants
24 |
28 | Starting from rev13, MPlayer OSX Extended exposes a number of constants which can be changed by adding them to your preferences property list (you could call them "hidden preferences" as well). 29 | You can change any of the following constants by either editing the plist directly or issuing following command in the terminal:
defaults write hu.mplayerhq.mplayerosx.extended <key name> <value>
30 | And reset the constant to its default with the following command:
defaults delete hu.mplayerhq.mplayerosx.extended <key name>
31 |
Key NameDefaultDescriptionAvailable from
MPEAudioDelayStepSize0.1Step size for audio delay keys ("+" and "-").rev14
MPEFullscreenControlsHideTimeout3Time seconds the after which the fullscreen controls get hidden.rev13
MPEFullscreenControlsSensitivity200How much movement is needed to show the fullscreen controls.rev13
MPEPlaybackSpeedMultiplierBig2Big multiplier for playback speed keys ("{" and "}").rev14
MPEPlaybackSpeedMultiplierSmall1.1Small multiplier for playback speed keys ("[" and "]").rev14
MPEPreflightNumInstances4How many concurrent MPlayer instances are used to preflight items.rev13
MPERemoteSeekBase5(see next item)rev13
MPERemoteSkipStep60The seek step when holding forward/backward on the Apple Remote is caculated with base*2^step.rev13
MPEScrollWheelSeekMultiple10The scroll wheel x-difference is multiplied with this value to get the seek amount in seconds.rev13
MPESeekStepLarge600The large seek step in seconds (PgUp/PgDown).rev13
MPESeekStepMedium60The medium seek step in seconds (Arrow up/down).rev13
MPESeekStepSmall10The small seek step in seconds (Arrow left/right).rev13
MPESubtitleDelayStepSize0.1Step size for subtitle delay keys ("x" and "z").rev14
MPEVolumeStepSize10The volume step size for the menu command, keys and the Apple Remote.rev13
140 |
141 | 142 | -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/gfx/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/resources/en.lproj/MPlayer OSX Help/gfx/icon.png -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/gfx/mplayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/resources/en.lproj/MPlayer OSX Help/gfx/mplayer.png -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/gfx/pref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/resources/en.lproj/MPlayer OSX Help/gfx/pref.png -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/gfx/terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/resources/en.lproj/MPlayer OSX Help/gfx/terminal.png -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/gfx/ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/resources/en.lproj/MPlayer OSX Help/gfx/ui.png -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | MPlayer OSX Extended Help 8 | 9 | 10 | 11 |
12 |
13 |
14 | Image of MPlayer 15 |

MPlayer icon MPlayer OSX Extended

16 |

http://www.mplayerosx.ch/

17 |
18 |
19 |
20 |
21 |
22 |

About MPlayer OSX Extended

23 |

Learn more about the MPlayer project.

24 |

Discover

25 |

Learn about basic functions, advanced preferences, and more.

26 |
27 |

Keyboard Shortcuts

28 |

Solving Problems

29 |

Find the answers to common problems.

30 |

Tips and Tricks

31 |

Advance options

32 |
33 |

Learn how to use the full power of MPlayer

34 |

License and Credits

35 |

License and Credits of MPlayer OSX Extended and MPlayer

36 |
37 |
38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/keyboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Keyboard Shortcuts 8 | 9 | 10 | 11 | 12 | 13 | 16 |
17 |
MPlayer icon
18 |

Keyboard Shortcuts

19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
Common
p / SPACE Pause (pressing again unpauses).
q / ESC Stop playing.
f Toggle fullscreen
# Cycle through the available audio tracks.
T Toggle stay-on-top
Navigation
← and → Seek backward/forward 10 seconds.
↓ and ↑ Seek backward/forward 1 minute.
Pagedown and Pageup Seek backward/forward 10 minutes.
! and @ Seek to the beginning of the previous/next chapter.
Volume
/ and * Decrease/increase volume.
9 and 0 Decrease/increase volume.
m Mute sound.
Subtitles
j Cycle through the available subtitles.
J Cycle through the available subtitles backwards.
y and g Step forward/backward in the subtitle list.
x and z Adjust subtitle delay by +/- 0.1 seconds.
Playlists
< and > Go backward/forward in the playlist.
ENTER Go forward in the playlist.
HOME and END next/previous playtree entry in the parent list.
Information
I Show filename on the OSD.
P Show current time/total time
o Toggle OSD states: none / seek / seek + timer / seek + timer + total time.
⇥ (Tab) Cycle timestamp display modes
Delay/Frame Dropping
+ and - Adjust audio delay by +/- 0.1 seconds.
d Toggle frame dropping states: none / skip display / skip decoding.
Playback Speed
[ and ] Decrease/increase current playback speed by 10%.
{ and } Halve/double current playback speed.
backspace Reset playback speed to normal
Video Equaliser
1 and 2 Adjust contrast.
3 and 4 Adjust brightness.
5 and 6 Adjust hue.
7 and 8 Adjust saturation.
73 |
74 |
75 | 76 | -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/keyboard.txt: -------------------------------------------------------------------------------- 1 | # replacement regex to make rows 2 | # (.*)\t(.*) 3 | # $1 $2 4 | 5 | # replacement regex to make titles 6 | # ^([A-Z][\w /]+) 7 | #
$1
8 | 9 | Common 10 | p / SPACE Pause (pressing again unpauses). 11 | q / ESC Stop playing. 12 | f Toggle fullscreen 13 | # Cycle through the available audio tracks. 14 | T Toggle stay-on-top 15 | 16 | Navigation 17 | ← and → Seek backward/forward 10 seconds. 18 | ↓ and ↑ Seek backward/forward 1 minute. 19 | Pagedown and Pageup Seek backward/forward 10 minutes. 20 | . Step forward. Pressing once will pause movie, every consecutive press will play one frame and then go into pause mode again (any other key unpauses). 21 | ! and @ Seek to the beginning of the previous/next chapter. 22 | 23 | Volume 24 | / and * Decrease/increase volume. 25 | 9 and 0 Decrease/increase volume. 26 | m Mute sound. 27 | 28 | Subtitles 29 | j Cycle through the available subtitles. 30 | J Cycle through the available subtitles backwards. 31 | y and g Step forward/backward in the subtitle list. 32 | x and z Adjust subtitle delay by +/- 0.1 seconds. 33 | 34 | Playlists 35 | < and > Go backward/forward in the playlist. 36 | ENTER Go forward in the playlist. 37 | HOME and END next/previous playtree entry in the parent list. 38 | 39 | Information 40 | I Show filename on the OSD. 41 | P Show current time/total time 42 | o Toggle OSD states: none / seek / seek + timer / seek + timer + total time. 43 | ⇥ (Tab) Cycle timestamp display modes 44 | 45 | Delay / Frame Dropping 46 | + and - Adjust audio delay by +/- 0.1 seconds. 47 | d Toggle frame dropping states: none / skip display / skip decoding. 48 | 49 | Playback Speed 50 | [ and ] Decrease/increase current playback speed by 10%. 51 | { and } Halve/double current playback speed. 52 | backspace Reset playback speed to normal 53 | 54 | Video Equaliser 55 | 1 and 2 Adjust contrast. 56 | 3 and 4 Adjust brightness. 57 | 5 and 6 Adjust hue. 58 | 7 and 8 Adjust saturation. -------------------------------------------------------------------------------- /resources/en.lproj/MPlayer OSX Help/learn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Discover MPlayer OSX Extended 7 | 8 | 9 | 10 | 11 | 12 | 15 |
16 |
MPlayer icon
17 |

Discover MPlayer OSX Extended

18 |
19 |
20 | 21 | 22 | 25 | 26 | 27 | 28 | 40 | 41 |
23 |
User Friendly interface
24 |
ui 29 | 30 | With it's intuitive controls, and a clean, slick and uncluttered interface panel, using MPlayer will be a breeze for 31 | anyone. 32 |
33 | You can open movies by just doublecklicking on the icon, or you can drag the movie file onto the MPlayer interface, 34 | and just simply drop it...and your movie will start playing automatically 35 |
36 | MPlayer OSX also sports a very nice playlist manager, where movies can be added using simple drag and drop. To show or 37 | hide the playlist, just click on the playlist button, located in the lower right corner of the MPlayer OSX Extended interface. 38 |
39 |
42 |
43 | 44 | 45 | 48 | 49 | 50 | 51 | 54 | 55 |
46 |
Customize to meet your need
47 |
Image of mew address card window 52 | The Preferences allows you set the default language for subtitles, enable/disable auto updates and more 53 |
56 |
57 | 58 | 59 | 62 | 63 | 64 | 65 | 82 | 83 |
60 |
Unleash the power of MPlayer
61 |
Image of mew address card window 66 | 67 | MPlayer was originally a command line application, with the graphical users interfaces arriving much later 68 | than MPlayer was initially created. Although MPlayer OSX Extended is a full fledged and nicely designed Cocoa application, 69 | underneath it's hood is a powerful command line utility, that lets you do virtually anything you desire with your 70 | multimedia content. 71 |
72 | The command line version of MPlayer lets you specify numerous options that control multimedia content playback, such 73 | as selecting different video / audio output drivers, setting postprocessing to values that suit your need, or rebuild 74 | a broken index on a movie. All this, and much, much more is at the tip of your fingers. 75 |
76 |

77 | 78 | For more tips and tricks on effectively using the command line version of MPlayer, please see the 79 | Tips and tricks section. 80 | 81 |
84 |
85 | 86 | -------------------------------------------------------------------------------- /resources/en.lproj/MoveApplication.strings: -------------------------------------------------------------------------------- 1 | /* No comment provided by engineer. */ 2 | "Could not move to Applications folder" = "Could not move to Applications folder"; 3 | 4 | /* No comment provided by engineer. */ 5 | "Do Not Move" = "Do Not Move"; 6 | 7 | /* No comment provided by engineer. */ 8 | "I can move myself to the Applications folder if you'd like." = "I can move myself to the Applications folder if you'd like."; 9 | 10 | /* No comment provided by engineer. */ 11 | "Move to Applications Folder" = "Move to Applications Folder"; 12 | 13 | /* No comment provided by engineer. */ 14 | "Move to Applications folder in your Home folder?" = "Move to Applications folder in your Home folder?"; 15 | 16 | /* No comment provided by engineer. */ 17 | "Move to Applications folder?" = "Move to Applications folder?"; 18 | 19 | /* No comment provided by engineer. */ 20 | "Note that this will require an administrator password." = "Note that this will require an administrator password."; 21 | 22 | /* No comment provided by engineer. */ 23 | "This will keep your Downloads folder uncluttered." = "This will keep your Downloads folder uncluttered."; 24 | 25 | -------------------------------------------------------------------------------- /source/MPlayer OSX_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'MPlayer OSX' target in the 'MPlayer OSX' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /source/contrib/AppleRemote/AppleRemote.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sttz/MPlayer-OSX-Extended/bec8e74fd1da65d4bcfbbc36ae52ab7f63d48b8f/source/contrib/AppleRemote/AppleRemote.m -------------------------------------------------------------------------------- /source/contrib/BWToolkit/BWGradientBox.h: -------------------------------------------------------------------------------- 1 | // 2 | // BWGradientBox.h 3 | // BWToolkit 4 | // 5 | // Created by Brandon Walkin (www.brandonwalkin.com) 6 | // All code is provided under the New BSD license. 7 | // 8 | 9 | #import 10 | 11 | @interface BWGradientBox : NSView 12 | { 13 | NSColor *fillStartingColor, *fillEndingColor, *fillColor; 14 | NSColor *topBorderColor, *bottomBorderColor; 15 | float topInsetAlpha, bottomInsetAlpha; 16 | 17 | BOOL hasTopBorder, hasBottomBorder, hasGradient, hasFillColor; 18 | } 19 | 20 | @property (nonatomic, retain) NSColor *fillStartingColor, *fillEndingColor, *fillColor, *topBorderColor, *bottomBorderColor; 21 | @property float topInsetAlpha, bottomInsetAlpha; 22 | @property BOOL hasTopBorder, hasBottomBorder, hasGradient, hasFillColor; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /source/contrib/BWToolkit/License.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf250 2 | {\fonttbl\f0\fnil\fcharset0 Verdana;\f1\fnil\fcharset0 LucidaGrande;} 3 | {\colortbl;\red255\green255\blue255;\red73\green73\blue73;} 4 | {\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}} 5 | {\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}} 6 | \deftab720 7 | \pard\pardeftab720\sl400\sa280\ql\qnatural 8 | 9 | \f0\fs24 \cf2 Copyright (c) 2010, Brandon Walkin 10 | \f1 \uc0\u8232 11 | \f0 All rights reserved.\ 12 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ 13 | \pard\tx220\tx720\pardeftab720\li720\fi-720\sl400\sa20\ql\qnatural 14 | \ls1\ilvl0\cf2 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ 15 | {\listtext \'95 }Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\ 16 | {\listtext \'95 }Neither the name of the Brandon Walkin nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ 17 | \pard\pardeftab720\sl400\sa280\ql\qnatural 18 | \cf2 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.} -------------------------------------------------------------------------------- /source/contrib/BWToolkit/NSColor+BWAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+BWAdditions.h 3 | // BWToolkit 4 | // 5 | // Created by Brandon Walkin (www.brandonwalkin.com) 6 | // All code is provided under the New BSD license. 7 | // 8 | 9 | #import 10 | 11 | @interface NSColor (BWAdditions) 12 | 13 | // Use this method to draw 1 px wide lines independent of scale factor. Handy for resolution independent drawing. Still needs some work - there are issues with drawing at the edges of views. 14 | - (void)bwDrawPixelThickLineAtPosition:(int)posInPixels withInset:(int)insetInPixels inRect:(NSRect)aRect inView:(NSView *)view horizontal:(BOOL)isHorizontal flip:(BOOL)shouldFlip; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /source/contrib/BWToolkit/NSColor+BWAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+PixelWideLines.m 3 | // BWToolkit 4 | // 5 | // Created by Brandon Walkin (www.brandonwalkin.com) 6 | // All code is provided under the New BSD license. 7 | // 8 | 9 | #import "NSColor+BWAdditions.h" 10 | 11 | @implementation NSColor (BWAdditions) 12 | 13 | // Use this method to draw 1 px wide lines independent of scale factor. Handy for resolution independent drawing. Still needs some work - there are issues with drawing at the edges of views. 14 | - (void)bwDrawPixelThickLineAtPosition:(int)posInPixels withInset:(int)insetInPixels inRect:(NSRect)aRect inView:(NSView *)view horizontal:(BOOL)isHorizontal flip:(BOOL)shouldFlip 15 | { 16 | // Convert the given rectangle from points to pixels 17 | aRect = [view convertRectToBase:aRect]; 18 | 19 | // Round up the rect's values to integers 20 | aRect = NSIntegralRect(aRect); 21 | 22 | // Add or subtract 0.5 so the lines are drawn within pixel bounds 23 | if (isHorizontal) 24 | { 25 | if ([view isFlipped]) 26 | aRect.origin.y -= 0.5; 27 | else 28 | aRect.origin.y += 0.5; 29 | } 30 | else 31 | { 32 | aRect.origin.x += 0.5; 33 | } 34 | 35 | NSSize sizeInPixels = aRect.size; 36 | 37 | // Convert the rect back to points for drawing 38 | aRect = [view convertRectFromBase:aRect]; 39 | 40 | // Flip the position so it's at the other side of the rect 41 | if (shouldFlip) 42 | { 43 | if (isHorizontal) 44 | posInPixels = sizeInPixels.height - posInPixels - 1; 45 | else 46 | posInPixels = sizeInPixels.width - posInPixels - 1; 47 | } 48 | 49 | float posInPoints = posInPixels / [[NSScreen mainScreen] userSpaceScaleFactor]; 50 | float insetInPoints = insetInPixels / [[NSScreen mainScreen] userSpaceScaleFactor]; 51 | 52 | // Calculate line start and end points 53 | float startX, startY, endX, endY; 54 | 55 | if (isHorizontal) 56 | { 57 | startX = aRect.origin.x + insetInPoints; 58 | startY = aRect.origin.y + posInPoints; 59 | endX = aRect.origin.x + aRect.size.width - insetInPoints; 60 | endY = aRect.origin.y + posInPoints; 61 | } 62 | else 63 | { 64 | startX = aRect.origin.x + posInPoints; 65 | startY = aRect.origin.y + insetInPoints; 66 | endX = aRect.origin.x + posInPoints; 67 | endY = aRect.origin.y + aRect.size.height - insetInPoints; 68 | } 69 | 70 | // Draw line 71 | NSBezierPath *path = [NSBezierPath bezierPath]; 72 | [path setLineWidth:0.0f]; 73 | [path moveToPoint:NSMakePoint(startX,startY)]; 74 | [path lineToPoint:NSMakePoint(endX,endY)]; 75 | [self set]; 76 | [path stroke]; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /source/contrib/MoveApplication/NSString+SymlinksAndAliases.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+SymlinksAndAliases.h 3 | // ResolvePath 4 | // 5 | // Created by Matt Gallagher on 2010/02/22. 6 | // Copyright 2010 Matt Gallagher. All rights reserved. 7 | // 8 | // Permission is given to use this source code file, free of charge, in any 9 | // project, commercial or otherwise, entirely at your risk, with the condition 10 | // that any redistribution (in part or whole) of source code must retain 11 | // this copyright and permission notice. Attribution in compiled projects is 12 | // appreciated but not required. 13 | // 14 | 15 | #import 16 | 17 | @interface NSString (SymlinksAndAliases) 18 | 19 | - (NSString *)stringByResolvingSymlinksAndAliases; 20 | - (NSString *)stringByIterativelyResolvingSymlinkOrAlias; 21 | 22 | - (NSString *)stringByResolvingSymlink; 23 | - (NSString *)stringByConditionallyResolvingSymlink; 24 | 25 | - (NSString *)stringByResolvingAlias; 26 | - (NSString *)stringByConditionallyResolvingAlias; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /source/contrib/MoveApplication/PFMoveApplication.h: -------------------------------------------------------------------------------- 1 | // 2 | // PFMoveApplication.h, version 1.24 3 | // LetsMove 4 | // 5 | // Created by Andy Kim at Potion Factory LLC on 9/17/09 6 | // 7 | // The contents of this file are dedicated to the public domain. 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #import 14 | 15 | /** 16 | Moves the running application to ~/Applications or /Applications if the former does not exist. 17 | After the move, it relaunches app from the new location. 18 | DOES NOT work for sandboxed applications. 19 | 20 | Call from \c NSApplication's delegate method \c -applicationWillFinishLaunching: method. */ 21 | void PFMoveToApplicationsFolderIfNecessary(void); 22 | 23 | /** 24 | Check whether an app move is currently in progress. 25 | Returns YES if LetsMove is currently in-progress trying to move the app to the Applications folder, or NO otherwise. 26 | This can be used to work around a crash with apps that terminate after last window is closed. 27 | See https://github.com/potionfactory/LetsMove/issues/64 for details. */ 28 | BOOL PFMoveIsInProgress(void); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | -------------------------------------------------------------------------------- /source/contrib/RegexKitLite/License.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf290 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 LucidaGrande;\f2\fmodern\fcharset0 Courier; 3 | } 4 | {\colortbl;\red255\green255\blue255;} 5 | {\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}} 6 | {\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}} 7 | \margl1440\margr1440\vieww10960\viewh15160\viewkind0 8 | \deftab720 9 | \pard\pardeftab720\sa180\ql\qnatural 10 | 11 | \f0\b\fs38 \cf0 RegexKit 12 | \i Lite 13 | \i0 License 14 | \f1 \ 15 | \pard\pardeftab720\sa240\ql\qnatural 16 | 17 | \b0\fs24 \cf0 Copyright \'a9 2008-2010, John Engelhart\ 18 | All rights reserved.\ 19 | \pard\pardeftab720\sa240\qj 20 | \cf0 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ 21 | \pard\tx220\tx720\pardeftab720\li720\fi-720\sa180\qj 22 | \ls1\ilvl0\cf0 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ 23 | {\listtext \'95 }Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\ 24 | {\listtext \'95 }Neither the name of the Zang Industries nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ 25 | \pard\pardeftab720\sa240\qj 26 | 27 | \f2 \cf0 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.} -------------------------------------------------------------------------------- /source/contrib/headers/freetype/config/ftmodule.h: -------------------------------------------------------------------------------- 1 | /* This is a generated file. */ 2 | FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) 3 | FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) 4 | FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) 5 | FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) 6 | FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) 7 | FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) 8 | FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) 9 | FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) 10 | FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) 11 | FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) 12 | FT_USE_MODULE( FT_Module_Class, autofit_module_class ) 13 | FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) 14 | FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) 15 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) 16 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class ) 17 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) 18 | FT_USE_MODULE( FT_Module_Class, psaux_module_class ) 19 | FT_USE_MODULE( FT_Module_Class, psnames_module_class ) 20 | /* EOF */ 21 | -------------------------------------------------------------------------------- /source/contrib/headers/freetype/ftbzip2.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ftbzip2.h */ 4 | /* */ 5 | /* Bzip2-compressed stream support. */ 6 | /* */ 7 | /* Copyright 2010-2017 by */ 8 | /* Joel Klinghed. */ 9 | /* */ 10 | /* This file is part of the FreeType project, and may only be used, */ 11 | /* modified, and distributed under the terms of the FreeType project */ 12 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 | /* this file you indicate that you have read the license and */ 14 | /* understand and accept it fully. */ 15 | /* */ 16 | /***************************************************************************/ 17 | 18 | 19 | #ifndef FTBZIP2_H_ 20 | #define FTBZIP2_H_ 21 | 22 | #include 23 | #include FT_FREETYPE_H 24 | 25 | #ifdef FREETYPE_H 26 | #error "freetype.h of FreeType 1 has been loaded!" 27 | #error "Please fix the directory search order for header files" 28 | #error "so that freetype.h of FreeType 2 is found first." 29 | #endif 30 | 31 | 32 | FT_BEGIN_HEADER 33 | 34 | /*************************************************************************/ 35 | /* */ 36 | /*
*/ 37 | /* bzip2 */ 38 | /* */ 39 | /* */ 40 | /* BZIP2 Streams */ 41 | /* */ 42 | /* <Abstract> */ 43 | /* Using bzip2-compressed font files. */ 44 | /* */ 45 | /* <Description> */ 46 | /* This section contains the declaration of Bzip2-specific functions. */ 47 | /* */ 48 | /*************************************************************************/ 49 | 50 | 51 | /************************************************************************ 52 | * 53 | * @function: 54 | * FT_Stream_OpenBzip2 55 | * 56 | * @description: 57 | * Open a new stream to parse bzip2-compressed font files. This is 58 | * mainly used to support the compressed `*.pcf.bz2' fonts that come 59 | * with XFree86. 60 | * 61 | * @input: 62 | * stream :: 63 | * The target embedding stream. 64 | * 65 | * source :: 66 | * The source stream. 67 | * 68 | * @return: 69 | * FreeType error code. 0~means success. 70 | * 71 | * @note: 72 | * The source stream must be opened _before_ calling this function. 73 | * 74 | * Calling the internal function `FT_Stream_Close' on the new stream will 75 | * *not* call `FT_Stream_Close' on the source stream. None of the stream 76 | * objects will be released to the heap. 77 | * 78 | * The stream implementation is very basic and resets the decompression 79 | * process each time seeking backwards is needed within the stream. 80 | * 81 | * In certain builds of the library, bzip2 compression recognition is 82 | * automatically handled when calling @FT_New_Face or @FT_Open_Face. 83 | * This means that if no font driver is capable of handling the raw 84 | * compressed file, the library will try to open a bzip2 compressed stream 85 | * from it and re-open the face with it. 86 | * 87 | * This function may return `FT_Err_Unimplemented_Feature' if your build 88 | * of FreeType was not compiled with bzip2 support. 89 | */ 90 | FT_EXPORT( FT_Error ) 91 | FT_Stream_OpenBzip2( FT_Stream stream, 92 | FT_Stream source ); 93 | 94 | /* */ 95 | 96 | 97 | FT_END_HEADER 98 | 99 | #endif /* FTBZIP2_H_ */ 100 | 101 | 102 | /* END */ 103 | -------------------------------------------------------------------------------- /source/contrib/headers/freetype/ftlzw.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ftlzw.h */ 4 | /* */ 5 | /* LZW-compressed stream support. */ 6 | /* */ 7 | /* Copyright 2004-2017 by */ 8 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 | /* */ 10 | /* This file is part of the FreeType project, and may only be used, */ 11 | /* modified, and distributed under the terms of the FreeType project */ 12 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 | /* this file you indicate that you have read the license and */ 14 | /* understand and accept it fully. */ 15 | /* */ 16 | /***************************************************************************/ 17 | 18 | 19 | #ifndef FTLZW_H_ 20 | #define FTLZW_H_ 21 | 22 | #include <ft2build.h> 23 | #include FT_FREETYPE_H 24 | 25 | #ifdef FREETYPE_H 26 | #error "freetype.h of FreeType 1 has been loaded!" 27 | #error "Please fix the directory search order for header files" 28 | #error "so that freetype.h of FreeType 2 is found first." 29 | #endif 30 | 31 | 32 | FT_BEGIN_HEADER 33 | 34 | /*************************************************************************/ 35 | /* */ 36 | /* <Section> */ 37 | /* lzw */ 38 | /* */ 39 | /* <Title> */ 40 | /* LZW Streams */ 41 | /* */ 42 | /* <Abstract> */ 43 | /* Using LZW-compressed font files. */ 44 | /* */ 45 | /* <Description> */ 46 | /* This section contains the declaration of LZW-specific functions. */ 47 | /* */ 48 | /*************************************************************************/ 49 | 50 | /************************************************************************ 51 | * 52 | * @function: 53 | * FT_Stream_OpenLZW 54 | * 55 | * @description: 56 | * Open a new stream to parse LZW-compressed font files. This is 57 | * mainly used to support the compressed `*.pcf.Z' fonts that come 58 | * with XFree86. 59 | * 60 | * @input: 61 | * stream :: The target embedding stream. 62 | * 63 | * source :: The source stream. 64 | * 65 | * @return: 66 | * FreeType error code. 0~means success. 67 | * 68 | * @note: 69 | * The source stream must be opened _before_ calling this function. 70 | * 71 | * Calling the internal function `FT_Stream_Close' on the new stream will 72 | * *not* call `FT_Stream_Close' on the source stream. None of the stream 73 | * objects will be released to the heap. 74 | * 75 | * The stream implementation is very basic and resets the decompression 76 | * process each time seeking backwards is needed within the stream 77 | * 78 | * In certain builds of the library, LZW compression recognition is 79 | * automatically handled when calling @FT_New_Face or @FT_Open_Face. 80 | * This means that if no font driver is capable of handling the raw 81 | * compressed file, the library will try to open a LZW stream from it 82 | * and re-open the face with it. 83 | * 84 | * This function may return `FT_Err_Unimplemented_Feature' if your build 85 | * of FreeType was not compiled with LZW support. 86 | */ 87 | FT_EXPORT( FT_Error ) 88 | FT_Stream_OpenLZW( FT_Stream stream, 89 | FT_Stream source ); 90 | 91 | /* */ 92 | 93 | 94 | FT_END_HEADER 95 | 96 | #endif /* FTLZW_H_ */ 97 | 98 | 99 | /* END */ 100 | -------------------------------------------------------------------------------- /source/contrib/headers/freetype/ftpcfdrv.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ftpcfdrv.h */ 4 | /* */ 5 | /* FreeType API for controlling the PCF driver (specification only). */ 6 | /* */ 7 | /* Copyright 2017 by */ 8 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 | /* */ 10 | /* This file is part of the FreeType project, and may only be used, */ 11 | /* modified, and distributed under the terms of the FreeType project */ 12 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 | /* this file you indicate that you have read the license and */ 14 | /* understand and accept it fully. */ 15 | /* */ 16 | /***************************************************************************/ 17 | 18 | 19 | #ifndef FTPCFDRV_H_ 20 | #define FTPCFDRV_H_ 21 | 22 | #include <ft2build.h> 23 | #include FT_FREETYPE_H 24 | 25 | #ifdef FREETYPE_H 26 | #error "freetype.h of FreeType 1 has been loaded!" 27 | #error "Please fix the directory search order for header files" 28 | #error "so that freetype.h of FreeType 2 is found first." 29 | #endif 30 | 31 | 32 | FT_BEGIN_HEADER 33 | 34 | 35 | /************************************************************************** 36 | * 37 | * @section: 38 | * pcf_driver 39 | * 40 | * @title: 41 | * The PCF driver 42 | * 43 | * @abstract: 44 | * Controlling the PCF driver module. 45 | * 46 | * @description: 47 | * While FreeType's PCF driver doesn't expose API functions by itself, 48 | * it is possible to control its behaviour with @FT_Property_Set and 49 | * @FT_Property_Get. Right now, there is a single property 50 | * `no-long-family-names' available if FreeType is compiled with 51 | * PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. 52 | * 53 | * The PCF driver's module name is `pcf'. 54 | * 55 | */ 56 | 57 | 58 | /************************************************************************** 59 | * 60 | * @property: 61 | * no-long-family-names 62 | * 63 | * @description: 64 | * If PCF_CONFIG_OPTION_LONG_FAMILY_NAMES is active while compiling 65 | * FreeType, the PCF driver constructs long family names. 66 | * 67 | * There are many PCF fonts just called `Fixed' which look completely 68 | * different, and which have nothing to do with each other. When 69 | * selecting `Fixed' in KDE or Gnome one gets results that appear rather 70 | * random, the style changes often if one changes the size and one 71 | * cannot select some fonts at all. The improve this situation, the PCF 72 | * module prepends the foundry name (plus a space) to the family name. 73 | * It also checks whether there are `wide' characters; all put together, 74 | * family names like `Sony Fixed' or `Misc Fixed Wide' are constructed. 75 | * 76 | * If `no-long-family-names' is set, this feature gets switched off. 77 | * 78 | * { 79 | * FT_Library library; 80 | * FT_Bool no_long_family_names = TRUE; 81 | * 82 | * 83 | * FT_Init_FreeType( &library ); 84 | * 85 | * FT_Property_Set( library, "pcf", 86 | * "no-long-family-names", 87 | * &no_long_family_names ); 88 | * } 89 | * 90 | * @note: 91 | * This property can be used with @FT_Property_Get also. 92 | * 93 | * This property can be set via the `FREETYPE_PROPERTIES' environment 94 | * variable (using values 1 and 0 for `on' and `off', respectively). 95 | * 96 | */ 97 | 98 | 99 | FT_END_HEADER 100 | 101 | 102 | #endif /* FTPCFDRV_H_ */ 103 | 104 | 105 | /* END */ 106 | -------------------------------------------------------------------------------- /source/contrib/headers/freetype/ftsynth.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ftsynth.h */ 4 | /* */ 5 | /* FreeType synthesizing code for emboldening and slanting */ 6 | /* (specification). */ 7 | /* */ 8 | /* Copyright 2000-2017 by */ 9 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10 | /* */ 11 | /* This file is part of the FreeType project, and may only be used, */ 12 | /* modified, and distributed under the terms of the FreeType project */ 13 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14 | /* this file you indicate that you have read the license and */ 15 | /* understand and accept it fully. */ 16 | /* */ 17 | /***************************************************************************/ 18 | 19 | 20 | /*************************************************************************/ 21 | /*************************************************************************/ 22 | /*************************************************************************/ 23 | /*************************************************************************/ 24 | /*************************************************************************/ 25 | /********* *********/ 26 | /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ 27 | /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ 28 | /********* FREETYPE DEVELOPMENT TEAM *********/ 29 | /********* *********/ 30 | /*************************************************************************/ 31 | /*************************************************************************/ 32 | /*************************************************************************/ 33 | /*************************************************************************/ 34 | /*************************************************************************/ 35 | 36 | 37 | /* Main reason for not lifting the functions in this module to a */ 38 | /* `standard' API is that the used parameters for emboldening and */ 39 | /* slanting are not configurable. Consider the functions as a */ 40 | /* code resource that should be copied into the application and */ 41 | /* adapted to the particular needs. */ 42 | 43 | 44 | #ifndef FTSYNTH_H_ 45 | #define FTSYNTH_H_ 46 | 47 | 48 | #include <ft2build.h> 49 | #include FT_FREETYPE_H 50 | 51 | #ifdef FREETYPE_H 52 | #error "freetype.h of FreeType 1 has been loaded!" 53 | #error "Please fix the directory search order for header files" 54 | #error "so that freetype.h of FreeType 2 is found first." 55 | #endif 56 | 57 | 58 | FT_BEGIN_HEADER 59 | 60 | /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ 61 | /* taste). This function is actually a convenience function, providing */ 62 | /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ 63 | /* */ 64 | /* For emboldened outlines the height, width, and advance metrics are */ 65 | /* increased by the strength of the emboldening -- this even affects */ 66 | /* mono-width fonts! */ 67 | /* */ 68 | /* You can also call @FT_Outline_Get_CBox to get precise values. */ 69 | FT_EXPORT( void ) 70 | FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); 71 | 72 | /* Slant an outline glyph to the right by about 12 degrees. */ 73 | FT_EXPORT( void ) 74 | FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); 75 | 76 | /* */ 77 | 78 | 79 | FT_END_HEADER 80 | 81 | #endif /* FTSYNTH_H_ */ 82 | 83 | 84 | /* END */ 85 | -------------------------------------------------------------------------------- /source/contrib/headers/freetype/ttunpat.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ttunpat.h */ 4 | /* */ 5 | /* Definitions for the unpatented TrueType hinting system. */ 6 | /* Obsolete, retained for backward compatibility. */ 7 | /* */ 8 | /* Copyright 2003-2017 by */ 9 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10 | /* */ 11 | /* Written by Graham Asher <graham.asher@btinternet.com> */ 12 | /* */ 13 | /* This file is part of the FreeType project, and may only be used, */ 14 | /* modified, and distributed under the terms of the FreeType project */ 15 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 16 | /* this file you indicate that you have read the license and */ 17 | /* understand and accept it fully. */ 18 | /* */ 19 | /***************************************************************************/ 20 | 21 | 22 | #ifndef TTUNPAT_H_ 23 | #define TTUNPAT_H_ 24 | 25 | 26 | #include <ft2build.h> 27 | #include FT_FREETYPE_H 28 | 29 | #ifdef FREETYPE_H 30 | #error "freetype.h of FreeType 1 has been loaded!" 31 | #error "Please fix the directory search order for header files" 32 | #error "so that freetype.h of FreeType 2 is found first." 33 | #endif 34 | 35 | 36 | FT_BEGIN_HEADER 37 | 38 | 39 | /*************************************************************************** 40 | * 41 | * @constant: 42 | * FT_PARAM_TAG_UNPATENTED_HINTING 43 | * 44 | * @description: 45 | * Deprecated. 46 | * 47 | * Previously: A constant used as the tag of an @FT_Parameter structure to 48 | * indicate that unpatented methods only should be used by the TrueType 49 | * bytecode interpreter for a typeface opened by @FT_Open_Face. 50 | * 51 | */ 52 | #define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) 53 | 54 | /* */ 55 | 56 | 57 | FT_END_HEADER 58 | 59 | 60 | #endif /* TTUNPAT_H_ */ 61 | 62 | 63 | /* END */ 64 | -------------------------------------------------------------------------------- /source/contrib/headers/ft2build.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************/ 2 | /* */ 3 | /* ft2build.h */ 4 | /* */ 5 | /* FreeType 2 build and setup macros. */ 6 | /* */ 7 | /* Copyright 1996-2017 by */ 8 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 | /* */ 10 | /* This file is part of the FreeType project, and may only be used, */ 11 | /* modified, and distributed under the terms of the FreeType project */ 12 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 | /* this file you indicate that you have read the license and */ 14 | /* understand and accept it fully. */ 15 | /* */ 16 | /***************************************************************************/ 17 | 18 | 19 | /*************************************************************************/ 20 | /* */ 21 | /* This is the `entry point' for FreeType header file inclusions. It is */ 22 | /* the only header file which should be included directly; all other */ 23 | /* FreeType header files should be accessed with macro names (after */ 24 | /* including `ft2build.h'). */ 25 | /* */ 26 | /* A typical example is */ 27 | /* */ 28 | /* #include <ft2build.h> */ 29 | /* #include FT_FREETYPE_H */ 30 | /* */ 31 | /*************************************************************************/ 32 | 33 | 34 | #ifndef FT2BUILD_H_ 35 | #define FT2BUILD_H_ 36 | 37 | #include <freetype/config/ftheader.h> 38 | 39 | #endif /* FT2BUILD_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /source/controllers/EqualizerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * EqualizerController.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 30.11.09 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #import <Cocoa/Cocoa.h> 23 | #import "MovieInfo.h" 24 | 25 | @interface EqualizerController : NSObject { 26 | 27 | IBOutlet NSWindow *videoEqualizerWindow; 28 | IBOutlet NSWindow *audioEqualizerWindow; 29 | 30 | IBOutlet NSPopUpButton *presetSelectionPopUp; 31 | IBOutlet NSButton *audioApplyButton; 32 | 33 | IBOutlet NSView *presetNameView; 34 | IBOutlet NSTextField *presetNameField; 35 | 36 | IBOutlet NSMenuItem *enableAudioEqualizerByDefaultItem; 37 | IBOutlet NSMenuItem *enableVideoEqualizerByDefaultItem; 38 | } 39 | 40 | - (IBAction) applyWithRestart:(id)sender; 41 | 42 | - (void) openVideoEqualizer; 43 | - (IBAction) resetVideoEqualizer:(id)sender; 44 | - (IBAction) toggleEnableVideoEqualizerByDefault:(id)sender; 45 | - (IBAction) setVideoValuesAsDefault:(id)sender; 46 | - (IBAction) resetVideoEqualizerToDefaults:(id)sender; 47 | 48 | - (void) openAudioEqualizer; 49 | - (IBAction) resetAudioEqualizer:(id)sender; 50 | - (IBAction) toggleEnableAudioEqualizerByDefault:(id)sender; 51 | - (void)selectAudioEqualizerPreset; 52 | - (IBAction) changePreset:(NSPopUpButton *)sender; 53 | - (IBAction) changeAudioValue:(NSSlider *)sender; 54 | - (IBAction) addAudioPreset:(NSMenuItem *)sender; 55 | - (IBAction) removeAudioPreset:(NSMenuItem *)sender; 56 | - (void) setAudioEqualizerDirty; 57 | 58 | + (NSString *)eq2FilterValues; 59 | + (NSString *)hueFilterValue; 60 | 61 | + (NSString *)equalizerFilterValues; 62 | 63 | + (void)stepVideoEqualizerValue:(NSString *)key on:(MovieInfo *)target by:(float)increment; 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /source/controllers/InspectorController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * InspectorController.h 3 | * MPlayer OSX Extended 4 | * 5 | * Created on 01.01.2010 6 | * 7 | * Description: 8 | * Controller for the inspector pane. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | 26 | #import <Cocoa/Cocoa.h> 27 | 28 | 29 | @interface InspectorController : NSObject { 30 | 31 | IBOutlet NSWindow *window; 32 | 33 | IBOutlet NSScrollView *scroller; 34 | IBOutlet NSView *container; 35 | IBOutlet NSView *fileAttributesSection; 36 | IBOutlet NSView *playbackSettingsSection; 37 | IBOutlet NSView *statisticsSection; 38 | 39 | IBOutlet NSButton *fileAttributesTriangle; 40 | IBOutlet NSButton *playbackSettingsTriangle; 41 | IBOutlet NSButton *statisticsTriangle; 42 | 43 | NSDictionary *views; 44 | NSDictionary *triangles; 45 | NSMutableDictionary *expandedHeights; 46 | NSArray *sectionOrder; 47 | 48 | BOOL isResizing; 49 | float lastSectionHeight; 50 | 51 | BOOL statsExpanded; 52 | 53 | IBOutlet NSSlider *playbackSpeed; 54 | IBOutlet NSSlider *audioDelay; 55 | IBOutlet NSSlider *subtitleDelay; 56 | IBOutlet NSSlider *audioBoost; 57 | IBOutlet NSSlider *subtitleScale; 58 | } 59 | 60 | @property (nonatomic,readonly) NSWindow *window; 61 | 62 | - (IBAction)toggleSection:(id)sender; 63 | - (void)sectionDidResize:(NSNotification *)notification; 64 | 65 | - (void)positionSections:(id)sender; 66 | 67 | - (IBAction)resetPlaybackSpeed:(id)sender; 68 | - (IBAction)resetAudioDelay:(id)sender; 69 | - (IBAction)resetSubtitleDelay:(id)sender; 70 | - (IBAction)resetAudioBoost:(id)sender; 71 | - (IBAction)resetSubtitleScale:(id)sender; 72 | 73 | @end 74 | 75 | @interface MultiplicatorTransformer100Fold : NSValueTransformer { } 76 | - (float)scale; 77 | @end -------------------------------------------------------------------------------- /source/controllers/MenuController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MenuController.h 3 | // MPlayer OSX Extended 4 | // 5 | // Created by Adrian on 04.12.09. 6 | // Copyright 2009 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import <Cocoa/Cocoa.h> 10 | 11 | @class AppController, PlayerController, PlayListController, PreferencesController2, 12 | EqualizerController; 13 | 14 | @interface MenuController : NSObject { 15 | 16 | @public 17 | // Playback Menu 18 | IBOutlet NSMenuItem* playMenuItem; 19 | IBOutlet NSMenuItem* loopMenuItem; 20 | 21 | IBOutlet NSMenuItem* chapterMenu; 22 | 23 | IBOutlet NSMenuItem* toggleMuteMenuItem; 24 | 25 | // Movie Menu 26 | IBOutlet NSMenuItem* fullscreenMenu; 27 | 28 | IBOutlet NSMenuItem* zoomToFitMenuItem; 29 | IBOutlet NSMenuItem* zoomToFillMenuItem; 30 | IBOutlet NSMenuItem* stretchToFillMenuItem; 31 | 32 | IBOutlet NSMenuItem* videoStreamMenu; 33 | IBOutlet NSMenuItem* audioStreamMenu; 34 | IBOutlet NSMenuItem* subtitleStreamMenu; 35 | 36 | @private 37 | IBOutlet AppController *appController; 38 | } 39 | 40 | // Application Menu 41 | - (IBAction) openPreferences:(NSMenuItem *)sender; 42 | 43 | // File Menu 44 | - (IBAction) addToPlaylist:(NSMenuItem *)sender; 45 | 46 | // Playback Menu 47 | - (IBAction) playPause:(NSMenuItem *)sender; 48 | - (IBAction) stop:(NSMenuItem *)sender; 49 | - (IBAction) toggleLoop:(NSMenuItem *)sender; 50 | 51 | - (IBAction) skipToNext:(NSMenuItem *)sender; 52 | - (IBAction) skipToPrevious:(NSMenuItem *)sender; 53 | - (IBAction) skipToChapterFromMenu:(NSMenuItem *)sender; 54 | - (IBAction) seekByTag:(NSMenuItem *)sender; 55 | - (IBAction) stepFrame:(NSMenuItem *)sender; 56 | 57 | - (IBAction) playlistPrevious:(NSMenuItem *)sender; 58 | - (IBAction) playlistNext:(NSMenuItem *)sender; 59 | 60 | - (IBAction) increaseVolume:(NSMenuItem *)sender; 61 | - (IBAction) decreaseVolume:(NSMenuItem *)sender; 62 | - (IBAction) muteVolume:(NSMenuItem *)sender; 63 | - (IBAction) resetVolume:(NSMenuItem *)sender; 64 | 65 | // Movie Menu 66 | - (IBAction) setSizeFromMenu:(NSMenuItem *)sender; 67 | - (IBAction) fitScreen:(NSMenuItem *)sender; 68 | - (IBAction) fullScreen:(NSMenuItem *)sender; 69 | 70 | - (IBAction) setVideoScaleMode:(NSMenuItem *)sender; 71 | - (IBAction) originalAspect:(NSMenuItem *)sender; 72 | - (IBAction) setAspectFromMenu:(NSMenuItem *)sender; 73 | - (IBAction) openCustomAspectChooser:(NSMenuItem *)sender; 74 | 75 | - (IBAction) takeScreenshot:(NSMenuItem *)sender; 76 | 77 | // Window Menu 78 | - (IBAction) openVideoEqualizer:(NSMenuItem *)sender; 79 | - (IBAction) openAudioEqualizer:(NSMenuItem *)sender; 80 | 81 | - (IBAction) openInspector:(NSMenuItem *)sender; 82 | - (IBAction) openLog:(NSMenuItem *)sender; 83 | 84 | @end 85 | -------------------------------------------------------------------------------- /source/controllers/MovieMethods.h: -------------------------------------------------------------------------------- 1 | /* 2 | * MovieMethods.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created by Bilal Syed Hussain on 2011-10-15 6 | * 7 | */ 8 | 9 | #import <Foundation/Foundation.h> 10 | 11 | 12 | @interface MovieMethods : NSObject { 13 | @private 14 | 15 | } 16 | 17 | // Return the filepath of the Next episode based on filepath 18 | // returns nil if not found. 19 | // exts is the set of vaild extension, pass null to consider all extensions 20 | + (NSString*) findNextEpisodePathFrom:(NSString*)filepath inFormats:(NSSet*)exts; 21 | 22 | // As Above with all movie formats 23 | + (NSString*) findNextEpisodePathFrom:(NSString*)filepath; 24 | 25 | 26 | // Return the filepath of the Previous episode based on filepath 27 | // returns nil if not found. 28 | // exts is the set of vaild extension, pass null to consider all extensions 29 | + (NSString*) findPreviousEpisodePathFrom:(NSString*)filepath inFormats:(NSSet*)exts; 30 | // As Above with all movie formats 31 | + (NSString*) findPreviousEpisodePathFrom:(NSString*)filepath; 32 | 33 | // Return the filepath of the episode that is accepted by the selector based on the filepath 34 | // returns nil if not found. 35 | // exts is the set of vaild extension, pass null to consider all extensions 36 | + (NSString*) episodePathFrom:(NSString*)filepath 37 | inFormats:(NSSet*)exts 38 | accept:(SEL)accept; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /source/controllers/PlayListController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * PlayListController.h 3 | * MPlayer OS X 4 | * 5 | * Description: 6 | * It's controller for playlist table, it's playlist table delegate and data source, 7 | * it also takes care for loading files in to playlist and it's progress dialog. 8 | * 9 | * Created by Jan Volf 10 | * <javol@seznam.cz> 11 | * Copyright (c) 2003 Jan Volf. All rights reserved. 12 | */ 13 | 14 | #import <Cocoa/Cocoa.h> 15 | 16 | #import "MPlayerInterface.h" 17 | 18 | #define kDefaultTextSize 13 19 | #define kSmallerTextSize 11 20 | 21 | @class MovieInfo, ScrubbingBar, TimestampTextField; 22 | @protocol MovieInfoProvider; 23 | 24 | @interface PlayListController : NSObject <MPlayerInterfaceClientProtocol, MovieInfoProvider, NSToolbarDelegate> 25 | { 26 | // controllers outlets 27 | IBOutlet id playerController; 28 | 29 | // UI outlets 30 | IBOutlet id playListWindow; 31 | IBOutlet NSButton* playListButton; 32 | IBOutlet id playListTable; 33 | IBOutlet id settingsButton; 34 | IBOutlet id playModeButton; 35 | IBOutlet id playListCount; 36 | IBOutlet id preflightBusy; 37 | 38 | IBOutlet NSArrayController *tableData ; 39 | 40 | // preflight panel 41 | IBOutlet id preflightPanel; 42 | IBOutlet id filenameBox; 43 | IBOutlet id progressBar; 44 | 45 | // menu 46 | IBOutlet id playNextMenuItem; 47 | IBOutlet id playPreviousMenuItem; 48 | 49 | // data 50 | NSMutableArray *myData; 51 | int myPlayMode; 52 | 53 | // images 54 | NSImage *playMode0Image; 55 | NSImage *playMode1Image; 56 | NSImage *playMode2Image; 57 | NSImage *playImageOff; 58 | NSImage *playImageOn; 59 | NSImage *pauseImageOff; 60 | NSImage *pauseImageOn; 61 | 62 | //toolbar 63 | NSMutableDictionary *toolbarItems; 64 | IBOutlet NSView *playerPlayToolbarView; 65 | IBOutlet NSView *playerStopToolbarView; 66 | IBOutlet NSView *playerPrevToolbarView; 67 | IBOutlet NSView *playerNextToolbarView; 68 | IBOutlet NSView *playerScrubToolbarView; 69 | IBOutlet NSView *playerVolumeToolbarView; 70 | 71 | IBOutlet NSButton *playButtonToolbar; 72 | IBOutlet NSButton *stopButtonToolbar; 73 | IBOutlet NSButton *nextButtonToolbar; 74 | IBOutlet NSButton *prevButtonToolbar; 75 | IBOutlet ScrubbingBar *scrubbingBarToolbar; 76 | IBOutlet TimestampTextField *timeTextFieldToolbar; 77 | IBOutlet NSSlider *volumeSliderToolbar; 78 | 79 | MovieInfo *currentMovieInfo; 80 | } 81 | 82 | @property (nonatomic,retain) MovieInfo *currentMovieInfo; 83 | 84 | //window 85 | - (IBAction)displayWindow:(id)sender; 86 | - (IBAction)toggleWindow:(id)sender; 87 | @property (nonatomic,readonly,getter=window) NSWindow *playListWindow; 88 | 89 | // data access interface 90 | - (MovieInfo *) itemAtIndex:(NSInteger) aIndex; 91 | - (void) selectItemAtIndex:(NSInteger) aIndex; 92 | - (MovieInfo *) selectedItem; 93 | - (NSInteger) indexOfSelectedItem; 94 | - (NSInteger) numberOfSelectedItems; 95 | - (NSInteger) indexOfItem:(MovieInfo *)anItem; 96 | - (NSInteger) itemCount; 97 | - (void) appendItem:(MovieInfo *)anItem; 98 | - (void) insertItem:(MovieInfo *)anItem atIndex:(NSInteger) aIndex; 99 | - (void) deleteSelection; 100 | 101 | // controller interface 102 | - (void) updateView; 103 | - (void) applyPrefs; 104 | - (void) finishedPlayingItem:(MovieInfo *)playingItem; 105 | - (int) getPlayMode; 106 | 107 | // actions 108 | - (IBAction)displayItemSettings:(id)sender; 109 | - (IBAction)changePlayMode:(id)sender; 110 | - (IBAction)playPrevious:(id)sender; 111 | - (IBAction)playNext:(id)sender; 112 | - (void)playItemAtIndex:(NSInteger)index; 113 | - (void) removeItemAtIndex:(NSInteger)index; 114 | 115 | // TableView data access methods 116 | - (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op; 117 | - (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id < NSDraggingInfo >)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation; 118 | - (BOOL)tableView:(NSTableView *)aTableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard; 119 | 120 | // delegate methods 121 | - (BOOL) validateMenuItem:(NSMenuItem *)aMenuItem; 122 | - (IBAction)doubleClick:(id)sender; 123 | - (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(int)row; 124 | // notification handlers 125 | - (void) appShouldTerminate; 126 | 127 | //Required NSToolbar delegate methods 128 | - (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag; 129 | - (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar; 130 | - (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar; 131 | @end 132 | 133 | 134 | @interface PlayListPlayingItemTransformer : NSValueTransformer {} 135 | @end 136 | -------------------------------------------------------------------------------- /source/core/BinaryBundle.h: -------------------------------------------------------------------------------- 1 | /* 2 | * BinaryBundle.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 28.11.09 6 | * 7 | * Description: 8 | * NSBundle wrapper that allows to "reload" the bundle. 9 | * Reloading is limited to the info dictionary as well as 10 | * the executable architectures. 11 | * 12 | * This program is free software; you can redistribute it and/or 13 | * modify it under the terms of the GNU General Public License 14 | * as published by the Free Software Foundation; either version 2 15 | * of the License, or (at your option) any later version. 16 | * 17 | * This program is distributed in the hope that it will be useful, 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | * GNU General Public License for more details. 21 | * 22 | * You should have received a copy of the GNU General Public License 23 | * along with this program; if not, write to the Free Software 24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 25 | */ 26 | 27 | // This is a hack around the problem that NSBundles are cached and cannot 28 | // be reloaded. MPlayer OSX Extended uses bundles for its binary packages 29 | // which should be updatable without a restart. This is not possible with 30 | // NSBundle because creating a new NSBundle object will just return the old 31 | // cached object containing outdated information. 32 | // 33 | // This is a NSBundle subclass so that it can be passed to Sparkle for 34 | // updating (which also needs the updated info dictionary). 35 | // 36 | // Only the re-implemented methods in this header should ever be called on 37 | // objects of this class. 38 | 39 | #import <Cocoa/Cocoa.h> 40 | 41 | @interface BinaryBundle : NSBundle { 42 | 43 | NSString *pathToBundle; 44 | NSDictionary *infoDict; 45 | } 46 | 47 | - (void) invalidateBinaryBundle; 48 | 49 | - (NSDictionary *) infoDictionary; 50 | - (id) objectForInfoDictionaryKey:(NSString *)key; 51 | 52 | - (NSString *)bundleIdentifier; 53 | 54 | - (NSString *) executablePath; 55 | - (NSArray *) executableArchitectureStrings; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /source/core/LanguageCodes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LanguageCodes.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 02.08.2008 6 | * 7 | * Description: 8 | * Class used to read iso-639-3 language codes from a tab file and to provide 9 | * a mean to resolve those codes to languages names. 10 | * 11 | * This program is free software; you can redistribute it and/or 12 | * modify it under the terms of the GNU General Public License 13 | * as published by the Free Software Foundation; either version 2 14 | * of the License, or (at your option) any later version. 15 | * 16 | * This program is distributed in the hope that it will be useful, 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | * GNU General Public License for more details. 20 | * 21 | * You should have received a copy of the GNU General Public License 22 | * along with this program; if not, write to the Free Software 23 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 24 | */ 25 | 26 | #import <Cocoa/Cocoa.h> 27 | #import "Debug.h" 28 | 29 | @interface LanguageCodes : NSObject { 30 | 31 | NSDictionary *codes_2; 32 | NSDictionary *codes_3; 33 | NSDictionary *codes_3b; 34 | NSDictionary *codes_2_to_3; 35 | } 36 | 37 | + (LanguageCodes *)sharedInstance; 38 | 39 | - (NSString *)resolveCode:(NSString *)code; 40 | - (NSString *)threeLetterCodeForToken:(NSString *)token; 41 | - (NSString *)mplayerArgumentFromArray:(NSArray *)codes; 42 | - (NSString *)nameForCode:(NSString *)code; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /source/interface/InspectorGradientBox.m: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 23.04.11 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "BWGradientBox.h" 26 | 27 | @interface InspectorGradientBox : BWGradientBox { 28 | @private 29 | 30 | } 31 | @end 32 | 33 | 34 | @implementation InspectorGradientBox 35 | 36 | - (void)awakeFromNib 37 | { 38 | [self setHasGradient:YES]; 39 | [self setHasFillColor:NO]; 40 | 41 | [self setHasTopBorder:YES]; 42 | [self setHasBottomBorder:YES]; 43 | 44 | [self setTopInsetAlpha:0.3]; 45 | [self setBottomInsetAlpha:0.0]; 46 | 47 | [self setFillStartingColor:[NSColor colorWithCalibratedRed:210.0/255.0 green:214.0/255.0 blue:223.0/255.0 alpha:1.0]]; 48 | [self setFillEndingColor:[NSColor colorWithCalibratedRed:181.0/255.0 green:183.0/255.0 blue:193.0/255.0 alpha:1.0]]; 49 | [self setTopBorderColor:[NSColor colorWithCalibratedRed:156.0/255.0 green:166.0/255.0 blue:178.0/255.0 alpha:1.0]]; 50 | [self setBottomBorderColor:[NSColor colorWithCalibratedRed:131.0/255.0 green:140.0/255.0 blue:149.0/255.0 alpha:1.0]]; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /source/interface/KeyRedirectButton.h: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 25.01.2010 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | 27 | 28 | @interface KeyRedirectButton : NSButton { } 29 | @end 30 | 31 | 32 | @interface KeyRedirectPopUpButton : NSPopUpButton { } 33 | @end -------------------------------------------------------------------------------- /source/interface/KeyRedirectButton.m: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 25.01.2010 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "KeyRedirectButton.h" 26 | 27 | #import "PlayerController.h" 28 | #import "PlayerWindow.h" 29 | 30 | @implementation KeyRedirectButton 31 | 32 | - (void)keyDown:(NSEvent *)theEvent 33 | { 34 | if (![[(PlayerWindow *)[self window] playerController] handleKeyEvent:theEvent]) 35 | [super keyDown:theEvent]; 36 | } 37 | 38 | - (BOOL)acceptsFirstResponder 39 | { 40 | return NO; 41 | } 42 | 43 | - (BOOL)refusesFirstResponder 44 | { 45 | return YES; 46 | } 47 | 48 | - (BOOL)becomeFirstResponder 49 | { 50 | return NO; 51 | } 52 | 53 | @end 54 | 55 | 56 | @implementation KeyRedirectPopUpButton 57 | 58 | - (void)keyDown:(NSEvent *)theEvent 59 | { 60 | if (![[(PlayerWindow *)[self window] playerController] handleKeyEvent:theEvent]) 61 | [super keyDown:theEvent]; 62 | } 63 | 64 | - (BOOL)acceptsFirstResponder 65 | { 66 | return NO; 67 | } 68 | 69 | - (BOOL)refusesFirstResponder 70 | { 71 | return YES; 72 | } 73 | 74 | - (BOOL)becomeFirstResponder 75 | { 76 | return NO; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /source/interface/LanguageTokenFieldDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LanguageTokenFieldDelegate.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 17.11.2009 6 | * 7 | * Description: 8 | * Delegate for mapping ISO-639 codes to tokens in a NSTokenField. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | 27 | 28 | @interface LanguageTokenFieldDelegate : NSObject { 29 | 30 | IBOutlet NSTokenField *audioLanguageField; 31 | IBOutlet NSTokenField *subtitleLanguageField; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /source/interface/LanguageTokenFieldDelegate.m: -------------------------------------------------------------------------------- 1 | /* 2 | * LanguageTokenFieldDelegate.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 17.11.2009 6 | * 7 | * Description: 8 | * Delegate for mapping ISO-639 codes to tokens in a NSTokenField. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "LanguageTokenFieldDelegate.h" 26 | #import "LanguageCodes.h" 27 | 28 | @implementation LanguageTokenFieldDelegate 29 | 30 | - (void) awakeFromNib 31 | { 32 | NSMutableCharacterSet *set = [NSMutableCharacterSet whitespaceCharacterSet]; 33 | [set formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]]; 34 | 35 | [audioLanguageField setTokenizingCharacterSet:set]; 36 | [subtitleLanguageField setTokenizingCharacterSet:set]; 37 | } 38 | 39 | - (id)tokenField:(NSTokenField *)tokenField representedObjectForEditingString:(NSString *)editingString 40 | { 41 | return [[LanguageCodes sharedInstance] threeLetterCodeForToken:editingString]; 42 | } 43 | 44 | - (NSString *)tokenField:(NSTokenField *)tokenField displayStringForRepresentedObject:(id)representedObject 45 | { 46 | return [[LanguageCodes sharedInstance] nameForCode:representedObject]; 47 | } 48 | 49 | - (NSArray *)tokenField:(NSTokenField *)tokenField shouldAddObjects:(NSArray *)tokens atIndex:(NSUInteger)index 50 | { 51 | NSMutableArray *validatedTokens = [NSMutableArray array]; 52 | 53 | for (NSString *code in tokens) { 54 | if ([code length] == 3 && [[LanguageCodes sharedInstance] nameForCode:code]) 55 | [validatedTokens addObject:code]; 56 | } 57 | 58 | return validatedTokens; 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /source/interface/MPlayerVideoRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * MPlayerVideoRenderer.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 10.01.2010 6 | * 7 | * Description: 8 | * Class used to store attributes of a video file. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import <QuartzCore/QuartzCore.h> 27 | 28 | @protocol MPlayerVideoRenderereDelegateProtocol <NSObject> 29 | - (void)startRenderingWithSize:(NSValue *)size; 30 | @end 31 | 32 | 33 | @interface MPlayerVideoRenderer : NSObject 34 | { 35 | 36 | @private 37 | NSThread *renderThread; 38 | NSOpenGLContext *context; 39 | CGLContextObj ctx; 40 | NSString *connectionName; 41 | 42 | id<MPlayerVideoRenderereDelegateProtocol> delegate; 43 | 44 | BOOL isRendering; 45 | 46 | //shared memory 47 | int shm_fd; 48 | 49 | //CoreVideo 50 | CVPixelBufferRef currentFrameBuffer; 51 | CVOpenGLTextureCacheRef textureCache; 52 | NSRect textureFrame; 53 | NSRect displayFrame; 54 | GLfloat lowerLeft[2]; 55 | GLfloat lowerRight[2]; 56 | GLfloat upperRight[2]; 57 | GLfloat upperLeft[2]; 58 | 59 | //video texture 60 | unsigned char *image_data; 61 | unsigned char *image_buffer; 62 | uint32_t image_bytes; 63 | 64 | NSSize imageSize; 65 | NSSize displaySize; 66 | OSType pixelFormat; 67 | } 68 | 69 | @property (retain) id<MPlayerVideoRenderereDelegateProtocol> delegate; 70 | 71 | - (id)initWithContext:(NSOpenGLContext *)ctx andConnectionName:(NSString *)name; 72 | 73 | - (void)boundsDidChangeTo:(NSRect)bounds withVideoFrame:(NSRect)frame; 74 | - (void)redraw; 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /source/interface/ToggleEditLabel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 12.06.11 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Foundation/Foundation.h> 26 | 27 | 28 | @interface ToggleEditLabel : NSTextField { 29 | @private 30 | } 31 | @end 32 | 33 | 34 | @interface ToggleEditLabelCell : NSTextFieldCell { 35 | @private 36 | NSRect cellRectOffset; 37 | } 38 | @end -------------------------------------------------------------------------------- /source/interface/ToggleEditLabel.m: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 12.06.11 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "ToggleEditLabel.h" 26 | 27 | 28 | @implementation ToggleEditLabel 29 | 30 | - (void)updateStyle 31 | { 32 | // Set style for label/text field 33 | [self setSelectable:[self isEditable]]; 34 | [self setBordered:[self isEditable]]; 35 | [self setBezeled:[self isEditable]]; 36 | [self setDrawsBackground:[self isEditable]]; 37 | } 38 | 39 | - (void)awakeFromNib 40 | { 41 | [super awakeFromNib]; 42 | 43 | // Let the cell establish the bezel size 44 | [self setEditable:YES]; 45 | [self setEditable:NO]; 46 | } 47 | 48 | - (void)setEditable:(BOOL)flag 49 | { 50 | [super setEditable:flag]; 51 | 52 | [self updateStyle]; 53 | 54 | if (!flag) { 55 | // Stop editing ([window setFirstResponder:window] did not work) 56 | [[self window] endEditingFor:self]; 57 | } else { 58 | // Give field focus right away 59 | [[self window] makeFirstResponder:self]; 60 | } 61 | } 62 | 63 | - (void)mouseDown:(NSEvent *)theEvent 64 | { 65 | [super mouseDown:theEvent]; 66 | 67 | if ([theEvent clickCount] == 2 && [self isEnabled]) { 68 | [self setEditable:YES]; 69 | } 70 | } 71 | 72 | - (void)textDidEndEditing:(NSNotification *)notification 73 | { 74 | [super textDidEndEditing:notification]; 75 | [self setEditable:NO]; 76 | } 77 | 78 | - (void)setEnabled:(BOOL)flag 79 | { 80 | [super setEnabled:flag]; 81 | 82 | if (!flag) { 83 | [self setEditable:NO]; 84 | } 85 | } 86 | 87 | - (void)dealloc 88 | { 89 | [super dealloc]; 90 | } 91 | 92 | @end 93 | 94 | 95 | 96 | @implementation ToggleEditLabelCell 97 | 98 | - (void)setBezeled:(BOOL)flag 99 | { 100 | [super setBezeled:flag]; 101 | if (flag) { 102 | cellRectOffset = [self titleRectForBounds:NSMakeRect(0.0, 0.0, 0.0, 0.0)]; 103 | } 104 | } 105 | 106 | - (void)offsetCell:(NSRect*)cellFrame 107 | { 108 | if ([self isBezeled] == NO) { 109 | cellFrame->origin.x += cellRectOffset.origin.x; 110 | cellFrame->origin.y += cellRectOffset.origin.y; 111 | cellFrame->size.width += cellRectOffset.size.width; 112 | cellFrame->size.height += cellRectOffset.size.height; 113 | } 114 | } 115 | 116 | - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView 117 | { 118 | [self offsetCell:&cellFrame]; 119 | [super drawInteriorWithFrame:cellFrame inView:controlView]; 120 | } 121 | 122 | @end 123 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControls.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControls.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 03.11.2008 6 | * 7 | * Description: 8 | * Window used for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "PlayerController.h" 27 | 28 | #import "MPlayerInterface.h" 29 | 30 | @class TimestampTextField; 31 | 32 | @interface FullscreenControls : NSWindow <MPlayerInterfaceClientProtocol> { 33 | 34 | IBOutlet PlayerFullscreenWindow *fcWindow; 35 | IBOutlet NSButton *fcPlayButton; 36 | IBOutlet id fcVolumeSlider; 37 | IBOutlet id fcScrubbingBar; 38 | IBOutlet TimestampTextField *fcTimeTextField; 39 | IBOutlet id fcAudioCycleButton; 40 | IBOutlet id fcSubtitleCycleButton; 41 | IBOutlet id fcFullscreenButton; 42 | 43 | NSImage *fcPlayImageOff; 44 | NSImage *fcPlayImageOn; 45 | NSImage *fcPauseImageOff; 46 | NSImage *fcPauseImageOn; 47 | 48 | NSPoint dragStartPoint; 49 | 50 | NSViewAnimation *animation; 51 | int currentFade; 52 | int currentState; 53 | BOOL isOpen; 54 | BOOL beingDragged; 55 | 56 | IBOutlet PlayerController *playerController; 57 | } 58 | 59 | @property (readonly,getter=window) PlayerFullscreenWindow *fcWindow; 60 | @property (readonly) BOOL beingDragged; 61 | 62 | - (void)fadeWith:(NSString*)effect; 63 | - (void)cycleTimeDisplayMode:(id)sender; 64 | 65 | - (void)show; 66 | - (void)hide; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsScrubbingBar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsScrubbingBar.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Custom scrubbing bar for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "ScrubbingBar.h" 27 | 28 | @interface FullscreenControlsScrubbingBar : ScrubbingBar { 29 | 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsScrubbingBar.m: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsScrubbingBar.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Custom scrubbing bar for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "FullscreenControlsScrubbingBar.h" 26 | 27 | 28 | @implementation FullscreenControlsScrubbingBar 29 | - (void) loadImages 30 | { 31 | // These will be release in [super dealloc] 32 | scrubBarEnds = [[NSImage imageNamed:@"fc_scrub_ends"] retain]; 33 | scrubBarRun = [[NSImage imageNamed:@"fc_scrub_run"] retain]; 34 | scrubBarBadge = [[NSImage imageNamed:@"fc_scrub_badge"] retain]; 35 | scrubBarAnimFrame = [[NSImage imageNamed:@"fc_scrub_anim"] retain]; 36 | 37 | yBadgeOffset = 1; 38 | xBadgeOffset = 6.5; 39 | rightClip = 1; 40 | [self setFrameSize:NSMakeSize([self frame].size.width,[scrubBarEnds size].height)]; 41 | 42 | 43 | } 44 | @end 45 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsView.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 03.11.2008 6 | * 7 | * Description: 8 | * Window used for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | 27 | 28 | @interface FullscreenControlsView : NSView { 29 | 30 | NSImage *backgroudImage; 31 | 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsView.m: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsView.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 03.11.2008 6 | * 7 | * Description: 8 | * Window used for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "FullscreenControlsView.h" 26 | #import "Debug.h" 27 | 28 | @implementation FullscreenControlsView 29 | 30 | - (void)awakeFromNib 31 | { 32 | 33 | backgroudImage = [NSImage imageNamed:@"fc_background"]; 34 | 35 | [self setNeedsDisplay:YES]; 36 | } 37 | 38 | - (void)drawRect:(NSRect)rect 39 | { 40 | [[NSColor clearColor] set]; 41 | NSRectFill([self frame]); 42 | 43 | [backgroudImage drawAtPoint:NSZeroPoint 44 | fromRect:NSZeroRect 45 | operation:NSCompositeSourceOver 46 | fraction:1.0]; 47 | 48 | [[self window] invalidateShadow]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsVolumeSlider.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsView.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Volume slider used in fullscreen controls 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "VolumeSlider.h" 27 | 28 | @interface FullscreenControlsVolumeSliderCell : VolumeSliderCell 29 | { 30 | NSImage *barImage; 31 | } 32 | @end 33 | 34 | @interface FullscreenControlsVolumeSlider : VolumeSlider 35 | { 36 | } 37 | @end -------------------------------------------------------------------------------- /source/interface/fullscreen/FullscreenControlsVolumeSlider.m: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsView.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Volume slider used in fullscreen controls 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "FullscreenControlsVolumeSlider.h" 26 | 27 | #import "CocoaAdditions.h" 28 | 29 | @implementation FullscreenControlsVolumeSliderCell 30 | - (void)loadImages 31 | { 32 | // knobOff/On are released in [super dealloc] 33 | knobOff = [[NSImage imageNamed:@"fc_aslider_knob"] retain]; 34 | knobOn = [[NSImage imageNamed:@"fc_aslider_knob_on"] retain]; 35 | knobOffsetY = -3; 36 | barImage = [[NSImage imageNamed:@"fc_aslider_bar"] retain]; 37 | } 38 | 39 | - (void)dealloc 40 | { 41 | [barImage release]; 42 | [super dealloc]; 43 | } 44 | 45 | - (void)drawBarInside:(NSRect)aRect flipped:(BOOL)flipped 46 | { 47 | [barImage drawAtPoint:NSMakePoint(aRect.origin.x,aRect.origin.y+(aRect.size.height/2)) 48 | fromRect:NSZeroRect 49 | operation:NSCompositeSourceOver 50 | fraction:1.0 51 | respectFlipped:YES]; 52 | } 53 | 54 | - (BOOL)_usesCustomTrackImage { 55 | return YES; 56 | } 57 | @end 58 | 59 | @implementation FullscreenControlsVolumeSlider 60 | - (void)awakeFromNib 61 | { 62 | NSSliderCell* oldCell = [self cell]; 63 | VolumeSliderCell *cell = [[[FullscreenControlsVolumeSliderCell alloc] init] retain]; 64 | 65 | [cell setTag:[oldCell tag]]; 66 | [cell setTarget:[oldCell target]]; 67 | [cell setAction:[oldCell action]]; 68 | [cell setControlSize:[oldCell controlSize]]; 69 | [cell setMinValue:[oldCell minValue]]; 70 | [cell setMaxValue:[oldCell maxValue]]; 71 | [cell setDoubleValue:[oldCell doubleValue]]; 72 | //[cell setNumberOfTickMarks:[oldCell numberOfTickMarks]]; 73 | //[cell setTickMarkPosition:[oldCell tickMarkPosition]]; 74 | 75 | [self setCell:cell]; 76 | [self setNeedsDisplay:YES]; 77 | 78 | [cell release]; 79 | } 80 | @end 81 | -------------------------------------------------------------------------------- /source/interface/player/PlayerFullscreenWindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | * PlayerFullscreenWindow.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 20.10.2008 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "PlayerWindow.h" 27 | 28 | @class FullscreenControls; 29 | 30 | @interface PlayerFullscreenWindow : PlayerWindow { 31 | 32 | IBOutlet FullscreenControls *fullscreenControls; 33 | 34 | BOOL isFullscreen; 35 | BOOL mouseInWindow; 36 | BOOL mouseOverControls; 37 | BOOL isCursorHidden; 38 | 39 | NSTrackingRectTag fsTrackTag, fcTrackTag; 40 | NSTimer *osdTimer; 41 | NSPoint lastMousePosition; 42 | } 43 | 44 | -(id) initWithContentRect: (NSRect) contentRect 45 | styleMask: (unsigned int) styleMask 46 | backing: (NSBackingStoreType) backingType 47 | defer: (BOOL) flag; 48 | 49 | - (void) hideOSD; 50 | - (void) showOSD; 51 | - (void) setFullscreen: (bool)aBool; 52 | - (void) startMouseTracking; 53 | - (void) stopMouseTracking; 54 | - (void) refreshOSDTimer; 55 | 56 | - (void) mouseEnteredFSWindow; 57 | - (void) mouseExitedFSWindow; 58 | - (void) mouseEnteredFCWindow; 59 | - (void) mouseExitedFCWindow; 60 | 61 | - (void) showCursor; 62 | - (void) hideCursor; 63 | 64 | @end 65 | -------------------------------------------------------------------------------- /source/interface/player/PlayerGradientBox.m: -------------------------------------------------------------------------------- 1 | /* 2 | * KeyRedirectButton.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 23.04.11 6 | * 7 | * Description: 8 | * Borderless window used to go into and display video in fullscreen. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "BWGradientBox.h" 26 | 27 | @interface PlayerGradientBox : BWGradientBox { 28 | @private 29 | 30 | } 31 | @end 32 | 33 | 34 | @implementation PlayerGradientBox 35 | 36 | - (void)awakeFromNib 37 | { 38 | [self setHasGradient:YES]; 39 | [self setHasFillColor:NO]; 40 | 41 | [self setHasTopBorder:NO]; 42 | [self setHasBottomBorder:NO]; 43 | 44 | [self setTopInsetAlpha:0.0]; 45 | [self setBottomInsetAlpha:0.3]; 46 | 47 | [self setFillStartingColor:[NSColor colorWithCalibratedRed:131.0/255.0 green:145.0/255.0 blue:157.0/255.0 alpha:1.0]]; 48 | [self setFillEndingColor:[NSColor colorWithCalibratedRed:172.0/255.0 green:184.0/255.0 blue:195.0/255.0 alpha:1.0]]; 49 | } 50 | 51 | - (BOOL)isFlipped 52 | { 53 | return NO; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /source/interface/player/PlayerWindow.h: -------------------------------------------------------------------------------- 1 | /* PlayerWindow */ 2 | 3 | #import <Cocoa/Cocoa.h> 4 | 5 | @class PlayerController; 6 | 7 | @interface PlayerWindow : NSWindow 8 | { 9 | IBOutlet PlayerController *playerController; 10 | 11 | float scrollXAcc; 12 | } 13 | @property (readonly) PlayerController *playerController; 14 | @end 15 | -------------------------------------------------------------------------------- /source/interface/player/PlayerWindow.m: -------------------------------------------------------------------------------- 1 | #import "PlayerWindow.h" 2 | 3 | #import "PlayerController.h" 4 | #import "MPlayerInterface.h" 5 | 6 | #import "Preferences.h" 7 | 8 | @implementation PlayerWindow 9 | @synthesize playerController; 10 | 11 | - (void)keyDown:(NSEvent *)theEvent 12 | { 13 | if (![playerController handleKeyEvent:theEvent]) 14 | [super keyDown:theEvent]; 15 | } 16 | 17 | - (void)cancelOperation:(id)sender 18 | { 19 | // handle escape and command-. 20 | if ([playerController isFullscreen]) 21 | [playerController switchFullscreen:self]; 22 | else 23 | [playerController stop:self]; 24 | } 25 | 26 | - (void)scrollWheel:(NSEvent *)theEvent 27 | { 28 | float dY = [theEvent deltaY]; 29 | float dX = [theEvent deltaX]; 30 | 31 | // volume 32 | if (fabsf(dY) > 0.99 && fabsf(dY) > fabsf(dX)) { 33 | 34 | [playerController setVolume:[playerController volume]+dY]; 35 | 36 | // seek 37 | } else if (fabsf(dX) > 0.99) { 38 | 39 | // reset accumulated time when reversing 40 | if ((dX < 0 && scrollXAcc > 0) || (dX > 0 && scrollXAcc < 0)) 41 | scrollXAcc = 0; 42 | 43 | // accumulate time while player is busy 44 | scrollXAcc += dX; 45 | 46 | // seek when ready 47 | if ([[playerController playerInterface] state] == MIStatePlaying) { 48 | [playerController seek:(-scrollXAcc*[PREFS floatForKey:MPEScrollWheelSeekMultiple]) mode:MISeekingModeRelative]; 49 | scrollXAcc = 0; 50 | } 51 | } 52 | } 53 | @end 54 | -------------------------------------------------------------------------------- /source/interface/player/ScrubbingBar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ScrubbingBar.h 3 | * MPlayer OS X 4 | * 5 | * Description: 6 | * NSProgressIndicator subclass that implements posting of notification 7 | * on clicking or dragging inside the progress bar bounds 8 | * The notification info dictionary contains the value representing position of the mouse 9 | * pointer while left mouse button was pressed for key "SBClickedValue" 10 | * 1.1 New GUI appearnce and new styles has been introduced 11 | * 12 | * Created by Jan Volf on Mon Apr 14 2003. 13 | * <javol@seznam.cz> 14 | * Copyright (c) 2003 Jan Volf. All rights reserved. 15 | */ 16 | 17 | #import <Foundation/Foundation.h> 18 | #import <AppKit/AppKit.h> 19 | 20 | // Notification 21 | // @"SBBarClickedNotification" 22 | // info dictionary key 23 | // @"SBClickedValue" NSNumber double 24 | 25 | typedef enum _NSScrubbingBarStyle { 26 | MPEScrubbingBarEmptyStyle = 0, 27 | MPEScrubbingBarProgressStyle = 1, 28 | MPEScrubbingBarPositionStyle = 2 29 | } NSScrubbingBarStyle; 30 | 31 | @interface ScrubbingBar:NSProgressIndicator 32 | { 33 | NSScrubbingBarStyle myStyle; 34 | 35 | NSTimer *animationTimer; 36 | 37 | NSImage *scrubBarEnds; 38 | NSImage *scrubBarRun; 39 | NSImage *scrubBarBadge; 40 | NSImage *scrubBarAnim; 41 | NSImage *scrubBarAnimFrame; 42 | float animFrame; 43 | 44 | float xBadgeOffset, yBadgeOffset; 45 | float barRightInset; 46 | int leftClip; 47 | int rightClip; 48 | } 49 | - (void) loadImages; 50 | // event handlers 51 | - (void) mouseDown:(NSEvent *)theEvent; 52 | - (void) mouseDragged:(NSEvent *)theEvent; 53 | // overriding event handlers 54 | - (BOOL) mouseDownCanMoveWindow; 55 | - (BOOL) acceptsFirstMouse:(NSEvent *)theEvent; 56 | 57 | - (NSScrubbingBarStyle)scrubStyle; 58 | - (void) setScrubStyle:(NSScrubbingBarStyle)style; 59 | 60 | - (void)redrawAnim; 61 | - (void)animate:(NSTimer *)aTimer; 62 | 63 | // overriding drawing method 64 | - (void) drawRect:(NSRect)aRect; 65 | @end 66 | 67 | // private 68 | int postNotification (id self, NSEvent *theEvent, NSSize badgeSize); 69 | -------------------------------------------------------------------------------- /source/interface/player/TimestampTextField.h: -------------------------------------------------------------------------------- 1 | /* 2 | * TimestampTextField.h 3 | * MPlayer OSX Extended 4 | * 5 | * Created on 01.01.2010 6 | * 7 | * Description: 8 | * Controller for the inspector pane. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | 27 | enum { 28 | MPETimestampCurrent, 29 | MPETimestampRemaining, 30 | MPETimestampTotal, 31 | }; 32 | typedef NSUInteger MPETimestampDisplayType; 33 | 34 | @interface TimestampTextField : NSTextField { 35 | MPETimestampDisplayType displayType; 36 | float lastCurrentTime; 37 | float lastTotalTime; 38 | NSString *autosaveName; 39 | } 40 | @property (nonatomic) MPETimestampDisplayType displayType; 41 | @property (nonatomic,readonly) NSString *autosaveName; 42 | - (void)setTimestamptWithCurrentTime:(float)currentTime andTotalTime:(float)totalTime; 43 | - (void)setDisplayMode:(MPETimestampDisplayType)mode; 44 | - (void)changeDisplayMode:(id)sender; 45 | - (void)cycleDisplayMode:(id)sender; 46 | - (void)updateTimestamp; 47 | @end 48 | -------------------------------------------------------------------------------- /source/interface/player/TimestampTextField.m: -------------------------------------------------------------------------------- 1 | /* 2 | * TimestampTextField.m 3 | * MPlayer OSX Extended 4 | * 5 | * Created on 01.01.2010 6 | * 7 | * Description: 8 | * Controller for the inspector pane. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "TimestampTextField.h" 26 | 27 | #import "Preferences.h" 28 | 29 | @implementation TimestampTextField 30 | @synthesize displayType; 31 | 32 | - (void)awakeFromNib 33 | { 34 | [self setDisplayMode:[PREFS integerForKey:[self autosaveName]]]; 35 | 36 | [PREFS addObserver:self 37 | forKeyPath:[self autosaveName] 38 | options:NSKeyValueObservingOptionNew 39 | context:nil]; 40 | } 41 | 42 | - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 43 | { 44 | if ([keyPath isEqualToString:[self autosaveName]]) { 45 | displayType = [[change objectForKey:NSKeyValueChangeNewKey] integerValue]; 46 | [self updateTimestamp]; 47 | } 48 | } 49 | 50 | - (NSString *)autosaveName 51 | { 52 | return @"MPEPlayerControlsTimestamp"; 53 | } 54 | 55 | - (void)updateTimestamp 56 | { 57 | if (displayType == MPETimestampCurrent && lastCurrentTime == 0) { 58 | [self setStringValue:@"00:00:00"]; 59 | return; 60 | } 61 | 62 | if (displayType == MPETimestampRemaining && lastCurrentTime == 0) { 63 | [self setStringValue:@"-00:00:00"]; 64 | return; 65 | } 66 | 67 | if (displayType == MPETimestampRemaining && (lastTotalTime == 0 || lastCurrentTime > lastTotalTime)) { 68 | [self setStringValue:@"-00:00:00"]; 69 | return; 70 | } 71 | 72 | if (displayType == MPETimestampTotal && lastTotalTime == 0) { 73 | [self setStringValue:@"00:00:00"]; 74 | return; 75 | } 76 | 77 | float seconds; 78 | 79 | if (displayType == MPETimestampRemaining) 80 | seconds = lastCurrentTime - lastTotalTime; 81 | else if (displayType == MPETimestampTotal) 82 | seconds = lastTotalTime; 83 | else 84 | seconds = lastCurrentTime; 85 | 86 | int iseconds = (int)seconds; 87 | 88 | NSString *timestamp = [NSString stringWithFormat:@"%0*.0f:%02d:%02d", 89 | seconds < 0 ? 3 : 2, 90 | floorf(fabsf(seconds)/3600) * (seconds >= 0 ? 1 : -1), 91 | (abs(iseconds)%3600)/60, 92 | (abs(iseconds)%60)]; 93 | 94 | [self setStringValue:timestamp]; 95 | } 96 | 97 | - (void)setDisplayMode:(MPETimestampDisplayType)mode 98 | { 99 | displayType = mode; 100 | [self updateTimestamp]; 101 | 102 | [PREFS setInteger:displayType forKey:[self autosaveName]]; 103 | } 104 | 105 | - (void)changeDisplayMode:(id)sender 106 | { 107 | [self setDisplayMode:[sender tag]]; 108 | } 109 | 110 | - (void)cycleDisplayMode:(id)sender 111 | { 112 | NSUInteger newType = displayType + 1; 113 | if (newType > MPETimestampTotal) 114 | newType = 0; 115 | 116 | [self setDisplayMode:newType]; 117 | } 118 | 119 | - (void)setTimestamptWithCurrentTime:(float)currentTime andTotalTime:(float)totalTime 120 | { 121 | lastCurrentTime = currentTime; 122 | lastTotalTime = totalTime; 123 | [self updateTimestamp]; 124 | } 125 | 126 | - (void)mouseDown:(NSEvent *)theEvent 127 | { 128 | [self cycleDisplayMode:self]; 129 | 130 | [super mouseDown:theEvent]; 131 | } 132 | 133 | - (NSMenu *)menuForEvent:(NSEvent *)theEvent 134 | { 135 | NSMenu *context = [[NSMenu new] autorelease]; 136 | 137 | NSMenuItem *item = [context addItemWithTitle:@"Show Time:" 138 | action:nil keyEquivalent:@""]; 139 | [item setEnabled:NO]; 140 | [item setTag:-1]; 141 | 142 | [[context addItemWithTitle:@"Current" 143 | action:@selector(changeDisplayMode:) keyEquivalent:@""] setTag:0]; 144 | [[context addItemWithTitle:@"Remaining" 145 | action:@selector(changeDisplayMode:) keyEquivalent:@""] setTag:1]; 146 | [[context addItemWithTitle:@"Total" 147 | action:@selector(changeDisplayMode:) keyEquivalent:@""] setTag:2]; 148 | [[context itemWithTag:displayType] setState:NSOnState]; 149 | 150 | return context; 151 | } 152 | 153 | @end 154 | -------------------------------------------------------------------------------- /source/interface/player/VideoOpenGLView.h: -------------------------------------------------------------------------------- 1 | /* MyOpenGLView */ 2 | 3 | #import <Cocoa/Cocoa.h> 4 | #import <OpenGL/gl.h> 5 | #import <QuartzCore/QuartzCore.h> 6 | 7 | //include for shared memory 8 | #include <sys/mman.h> 9 | 10 | //custom class 11 | #import "PlayerWindow.h" 12 | #import "PlayerFullscreenWindow.h" 13 | #import "PlayListController.h" 14 | 15 | #import "MPlayerVideoRenderer.h" 16 | 17 | #import "Debug.h" 18 | 19 | #define WSM_SCALE 1 20 | #define WSM_FIT_SCREEN 2 21 | #define WSM_FIT_WIDTH 3 22 | 23 | enum { 24 | MPEScaleModeZoomToFit, 25 | MPEScaleModeZoomToFill, 26 | MPEScaleModeStertchToFill 27 | }; 28 | typedef NSUInteger MPEVideoScaleMode; 29 | 30 | @class PlayerController; 31 | 32 | @interface VideoOpenGLView : NSOpenGLView <MPlayerVideoRenderereDelegateProtocol, NSAnimationDelegate> 33 | { 34 | MPlayerVideoRenderer *renderer; 35 | 36 | BOOL isFullscreen; 37 | BOOL switchingToFullscreen; 38 | BOOL switchingInProgress; 39 | BOOL isOntop; 40 | NSString *buffer_name; 41 | 42 | CGLContextObj ctx; 43 | 44 | //video texture 45 | NSSize video_size; 46 | float video_aspect; 47 | float org_video_aspect; 48 | 49 | // video size mode 50 | int windowSizeMode; 51 | MPEVideoScaleMode videoScaleMode; 52 | // zoom factor 53 | float zoomFactor; 54 | // fit width 55 | int fitWidth; 56 | 57 | // fullscreen switching 58 | NSSize old_win_size; 59 | NSRect old_view_frame; 60 | 61 | // screen blacking 62 | NSMutableArray *blackingWindows; 63 | 64 | // window dragging 65 | NSPoint dragStartPoint; 66 | 67 | // animations 68 | unsigned int runningAnimations; 69 | 70 | //Movie menu outlets 71 | IBOutlet NSMenuItem* KeepAspectMenuItem; 72 | IBOutlet NSMenuItem* PanScanMenuItem; 73 | // other controllers outlets 74 | IBOutlet PlayerController *playerController; 75 | IBOutlet PlayerFullscreenWindow* fullscreenWindow; 76 | } 77 | 78 | // Render Thread methods 79 | - (void) toggleFullscreen; 80 | - (void) finishToggleFullscreen; 81 | 82 | // Main Thread methods 83 | - (NSString *)bufferName; 84 | - (BOOL) isFullscreen; 85 | - (void) blackScreensExcept:(NSUInteger)fullscreenId; 86 | - (void) unblackScreens; 87 | - (NSRect) videoFrame; 88 | - (void) reshape; 89 | - (void) resizeView; 90 | - (void) reshapeAndResize; 91 | - (void) close; 92 | - (void) finishClosing; 93 | - (void) setWindowSizeMode:(int)mode withValue:(float)val; 94 | - (void) setOntop:(BOOL)ontop; 95 | - (void) updateOntop; 96 | - (void) setAspectRatio:(float)aspect; 97 | - (void) setAspectRatioFromPreferences; 98 | - (void) setVideoScaleMode:(MPEVideoScaleMode)scaleMode; 99 | - (void) fullscreenWindowMoved:(NSNotification *)notification; 100 | 101 | // Event 102 | - (void) mouseDown: (NSEvent *) theEvent; 103 | 104 | // Helper methods 105 | - (void) setFrame:(NSRect)frame onWindow:(NSWindow *)window blocking:(BOOL)blocking; 106 | - (void) fadeWindow:(NSWindow *)window withEffect:(NSString *)effect; 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /source/interface/player/VolumeSlider.h: -------------------------------------------------------------------------------- 1 | /* VolumeSlider */ 2 | 3 | #import <Cocoa/Cocoa.h> 4 | 5 | @interface VolumeSliderCell : NSSliderCell 6 | { 7 | NSImage *knobOff; 8 | NSImage *knobOn; 9 | 10 | int knobOffsetX; 11 | int knobOffsetY; 12 | 13 | BOOL isKnobSelected; 14 | } 15 | - (void)loadImages; 16 | @end 17 | 18 | @interface VolumeSlider : NSSlider 19 | { 20 | } 21 | @end 22 | -------------------------------------------------------------------------------- /source/interface/player/VolumeSlider.m: -------------------------------------------------------------------------------- 1 | #import "VolumeSlider.h" 2 | 3 | #import "PlayerWindow.h" 4 | #import "PlayerController.h" 5 | #import "CocoaAdditions.h" 6 | 7 | #import "Debug.h" 8 | 9 | @implementation VolumeSliderCell 10 | - (id)init 11 | { 12 | self = [super init]; 13 | if (self) { 14 | [self loadImages]; 15 | isKnobSelected = NO; 16 | } 17 | return self; 18 | } 19 | 20 | - (void) dealloc 21 | { 22 | [knobOff release]; 23 | [knobOn release]; 24 | 25 | [super dealloc]; 26 | } 27 | 28 | - (void)loadImages 29 | { 30 | knobOff = [[NSImage imageNamed:@"volume_knob_off"] retain]; 31 | knobOn = [[NSImage imageNamed:@"volume_knob_on"] retain]; 32 | knobOffsetX = 1; 33 | knobOffsetY = -2; 34 | } 35 | 36 | - (void)drawKnob:(NSRect)knobRect 37 | { 38 | NSImage *knob; 39 | 40 | if(isKnobSelected) 41 | knob = knobOn; 42 | else 43 | knob = knobOff; 44 | 45 | [knob drawAtPoint:NSMakePoint(knobRect.origin.x + knobOffsetX, knobRect.origin.y - knobOffsetY) 46 | fromRect:NSZeroRect 47 | operation:NSCompositeSourceOver 48 | fraction:1.0 49 | respectFlipped:YES]; 50 | } 51 | 52 | - (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView 53 | { 54 | isKnobSelected = YES; 55 | return [super startTrackingAt:startPoint inView:controlView]; 56 | } 57 | 58 | - (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag 59 | { 60 | isKnobSelected = NO; 61 | [super stopTracking:lastPoint at:stopPoint inView:controlView mouseIsUp:flag]; 62 | } 63 | @end 64 | 65 | @implementation VolumeSlider 66 | - (void)awakeFromNib 67 | { 68 | NSSliderCell* oldCell = [self cell]; 69 | VolumeSliderCell *cell = [[[VolumeSliderCell alloc] init] retain]; 70 | 71 | [cell setTag:[oldCell tag]]; 72 | [cell setTarget:[oldCell target]]; 73 | [cell setAction:[oldCell action]]; 74 | [cell setControlSize:[oldCell controlSize]]; 75 | [cell setMinValue:[oldCell minValue]]; 76 | [cell setMaxValue:[oldCell maxValue]]; 77 | [cell setDoubleValue:[oldCell doubleValue]]; 78 | //[cell setNumberOfTickMarks:[oldCell numberOfTickMarks]]; 79 | //[cell setTickMarkPosition:[oldCell tickMarkPosition]]; 80 | 81 | [self setCell:cell]; 82 | [self setNeedsDisplay:YES]; 83 | 84 | [cell release]; 85 | } 86 | 87 | - (void)keyDown:(NSEvent *)theEvent 88 | { 89 | if (![[(PlayerWindow *)[self window] playerController] handleKeyEvent:theEvent]) 90 | [super keyDown:theEvent]; 91 | } 92 | 93 | - (BOOL)acceptsFirstResponder 94 | { 95 | return NO; 96 | } 97 | 98 | - (BOOL)refusesFirstResponder 99 | { 100 | return YES; 101 | } 102 | 103 | - (BOOL)becomeFirstResponder 104 | { 105 | return NO; 106 | } 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistScrubbingBar.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsScrubbingBar.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Custom scrubbing bar for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "ScrubbingBar.h" 27 | 28 | @interface PlaylistScrubbingBar : ScrubbingBar { 29 | 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistScrubbingBar.m: -------------------------------------------------------------------------------- 1 | /* 2 | * FullscreenControlsScrubbingBar.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 04.11.2008 6 | * 7 | * Description: 8 | * Custom scrubbing bar for the fullscreen controls. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "PlaylistScrubbingBar.h" 26 | 27 | 28 | @implementation PlaylistScrubbingBar 29 | - (void) loadImages 30 | { 31 | // These will be release in [super dealloc] 32 | scrubBarEnds = [[NSImage imageNamed:@"pl_scrub_bar_ends"] retain]; 33 | scrubBarRun = [[NSImage imageNamed:@"pl_scrub_bar_run"] retain]; 34 | scrubBarBadge = [[NSImage imageNamed:@"pl_scrub_bar_badge"] retain]; 35 | scrubBarAnimFrame = [[NSImage imageNamed:@"pl_scrub_bar_anim"] retain]; 36 | 37 | yBadgeOffset = 0; 38 | xBadgeOffset = 3.5; 39 | rightClip = 1; 40 | } 41 | @end 42 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistTableView.h: -------------------------------------------------------------------------------- 1 | /* 2 | PlaylistTableView.h 3 | 4 | Author: MCF 5 | 6 | */ 7 | 8 | 9 | #import <Cocoa/Cocoa.h> 10 | #import "PlayListController.h" 11 | #import "PlayerController.h" 12 | 13 | @interface PlaylistTableView : NSTableView 14 | { 15 | IBOutlet PlayListController *playListController; 16 | IBOutlet PlayerController *playerController; 17 | } 18 | // 1st responderaction implementation 19 | - (void)keyDown:(NSEvent *)theEvent; 20 | - (void)delete:(id)sender; 21 | // delegate methods 22 | - (BOOL)validateMenuItem:(NSMenuItem *)anItem; 23 | @end 24 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistTableView.m: -------------------------------------------------------------------------------- 1 | /* 2 | PlaylistTableView.m 3 | 4 | Author: MCF, with help from PW, augmented by JaVol 5 | 6 | */ 7 | 8 | #import "PlaylistTableView.h" 9 | 10 | #include <Carbon/Carbon.h> 11 | 12 | @implementation PlaylistTableView 13 | 14 | /************************************************************************************ 15 | ACTION IMPLEMENTATION 16 | ************************************************************************************/ 17 | - (void)keyDown:(NSEvent *)theEvent 18 | { 19 | if ([self selectedRow] >= 0) { 20 | unichar pressedKey = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; 21 | // delete item with backspace or delete 22 | if ((pressedKey == NSDeleteFunctionKey || [theEvent keyCode] == kVK_Delete)) 23 | [playListController deleteSelection]; 24 | // play item with return or enter 25 | else if ([theEvent keyCode] == kVK_Return || [theEvent keyCode] == kVK_ANSI_KeypadEnter) 26 | [playListController playItemAtIndex:[self selectedRow]]; 27 | } else 28 | [super keyDown:theEvent]; 29 | } 30 | /************************************************************************************/ 31 | - (void)delete:(id)sender 32 | { 33 | [playListController deleteSelection]; 34 | } 35 | 36 | /************************************************************************************ 37 | DELEGATE METHODS 38 | ************************************************************************************/ 39 | - (BOOL)validateMenuItem:(NSMenuItem *)anItem 40 | { 41 | BOOL result = NO; 42 | // clear menu item 43 | if ([anItem action] == @selector(delete:)) { 44 | if ([self selectedRow] >= 0) 45 | result = YES; 46 | else 47 | result = NO; 48 | } 49 | 50 | // select all menu item 51 | if ([anItem action] == @selector(selectAll:)) { 52 | if ([self numberOfRows] > 0) 53 | result = YES; 54 | else 55 | result = NO; 56 | } 57 | 58 | return result; 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistTimestampTextField.h: -------------------------------------------------------------------------------- 1 | /* 2 | * PlaylistTimestampTextField.h 3 | * MPlayer OSX Extended 4 | * 5 | * Created on 18.04.2010 6 | * 7 | * Description: 8 | * Controller for the inspector pane. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import "TimestampTextField.h" 27 | 28 | @interface PlaylistTimestampTextField : TimestampTextField { } 29 | @end 30 | -------------------------------------------------------------------------------- /source/interface/playlist/PlaylistTimestampTextField.m: -------------------------------------------------------------------------------- 1 | /* 2 | * PlaylistTimestampTextField.m 3 | * MPlayer OSX Extended 4 | * 5 | * Created on 18.04.2010 6 | * 7 | * Description: 8 | * Controller for the inspector pane. 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import "PlaylistTimestampTextField.h" 26 | 27 | 28 | @implementation PlaylistTimestampTextField 29 | - (NSString *)autosaveName 30 | { 31 | return @"MPEPlaylistTimestamp"; 32 | } 33 | @end 34 | -------------------------------------------------------------------------------- /source/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // MPlayer OSX 4 | // 5 | // Created by Nicolas Plourde on 13/06/05. 6 | // Copyright The MPlayer Project 2005. All rights reserved. 7 | // 8 | 9 | #import <signal.h> 10 | 11 | #import <Cocoa/Cocoa.h> 12 | #import "Debug.h" 13 | 14 | int main(int argc, char *argv[]) 15 | { 16 | NSAutoreleasePool *pool = [NSAutoreleasePool new]; 17 | 18 | signal(SIGPIPE, SIG_IGN); 19 | 20 | #ifdef DEBUG 21 | [Debug setSharedDebuggerConnectsStderr:NO]; 22 | #endif 23 | 24 | Debug *logger = [Debug sharedDebugger]; 25 | [logger logToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Logs/MPlayerOSX.log"]]; 26 | 27 | [Debug log:ASL_LEVEL_INFO withMessage: @"===================== MPlayer OSX Started ====================="]; 28 | 29 | [pool release]; 30 | 31 | return NSApplicationMain(argc, (const char **) argv); 32 | } 33 | -------------------------------------------------------------------------------- /source/util/CocoaAdditions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * CocoaAdditions.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 26.11.2009 6 | * 7 | * Description: 8 | * Additions to Cocoa classes 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import <CoreAudio/CoreAudio.h> 27 | #import <objc/Protocol.h> 28 | 29 | @interface NSString (MPEAdditions) 30 | + (NSString *)stringWithData:(NSData *)data encoding:(NSString *)encoding; 31 | - (NSComparisonResult)numericSearchCompare:(NSString *)aString; 32 | @end 33 | 34 | @interface NSNumber (MPEAdditions) 35 | - (NSString *) humanReadableSizeStringValue; 36 | @end 37 | 38 | @interface NSView (MPEAdditions) 39 | - (void) resizeAndArrangeSubviewsVerticallyWithPadding:(float)padding; 40 | @end 41 | 42 | @interface NSDictionary (MPEAdditions) 43 | - (BOOL)boolForKey:(NSString *)defaultName; 44 | - (NSInteger)integerForKey:(NSString *)defaultName; 45 | - (float)floatForKey:(NSString *)defaultName; 46 | - (double)doubleForKey:(NSString *)defaultName; 47 | 48 | - (NSNumber *)numberForKey:(NSString *)defaultName; 49 | - (NSString *)stringForKey:(NSString *)defaultName; 50 | - (NSData *)dataForKey:(NSString *)defaultName; 51 | - (NSArray *)arrayForKey:(NSString *)defaultName; 52 | - (NSDictionary *)dictionaryForKey:(NSString *)defaultName; 53 | - (NSDate *)dateForKey:(NSString *)defaultName; 54 | - (NSColor *)colorForKey:(NSString *)defaultName; 55 | 56 | - (NSMutableDictionary *)mutableDictionaryForKey:(NSString *)defaultName; 57 | - (NSMutableArray *)mutableArrayForKey:(NSString *)defaultName; 58 | @end 59 | 60 | @interface NSMutableDictionary (MPEAdditions) 61 | - (void)setBool:(BOOL)value forKey:(NSString *)defaultName; 62 | - (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName; 63 | - (void)setFloat:(float)value forKey:(NSString *)defaultName; 64 | - (void)setDouble:(double)value forKey:(NSString *)defaultName; 65 | 66 | - (void)archiveAndSetColor:(NSColor *)color forKey:(NSString *)defaultName; 67 | @end 68 | 69 | @interface Protocol (MPEAdditions) 70 | - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector isRequired:(BOOL)isRequiredMethod isInstanceMethod:(BOOL)isInstanceMethod; 71 | @end 72 | 73 | @interface NSMenu (MPEAdditions) 74 | - (void)setStateOfAllItemsTo:(NSInteger)itemState; 75 | #if __MAC_OS_X_VERSION_MIN_REQUIRED <= __MAC_OS_X_VERSION_10_5 76 | - (void)removeAllItems; 77 | #endif 78 | - (NSMenuItem *)itemWithRepresentedIntegerValue:(NSInteger)value; 79 | @end 80 | 81 | @interface NSImage (MPEAdditions) 82 | - (void)drawAtPoint:(NSPoint)point fromRect:(NSRect)srcRect operation:(NSCompositingOperation)op fraction:(CGFloat)delta respectFlipped:(BOOL)respectContextIsFlipped; 83 | @end 84 | 85 | @interface NSSound (MPEAdditions) 86 | + (AudioDeviceID)defaultOutputDevice; 87 | + (AudioDeviceID)defaultInputDevice; 88 | + (UInt32)numberOfChannelsOf:(AudioDeviceID)deviceId onInput:(BOOL)isInput; 89 | @end -------------------------------------------------------------------------------- /source/util/Debug.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Debug.h 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 11.08.2008 6 | * 7 | * Description: 8 | * Wrapper class around ASL 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 23 | */ 24 | 25 | #import <Cocoa/Cocoa.h> 26 | #import <asl.h> 27 | 28 | #define dSender "MPlayer OSX" 29 | #define dFacility "user" 30 | #define dFilterUpto ASL_LEVEL_WARNING 31 | 32 | #define dLogMaxSize 512000LL // 500kb 33 | #define dSizeCheckInterval 3600 // 1 hour 34 | 35 | @interface Debug : NSObject { 36 | 37 | aslclient asc; 38 | 39 | NSMutableDictionary *logFiles; 40 | 41 | NSTimeInterval lastSizeCheck; 42 | } 43 | 44 | // Connect shared instance to stderr 45 | + (void) setSharedDebuggerConnectsStderr:(BOOL)connect; 46 | 47 | // Shared debugger instance 48 | + (Debug *) sharedDebugger; 49 | 50 | // Convenience method to log through shared instance 51 | + (void) log:(int)level withMessage:(NSString *)message, ...; 52 | 53 | // Initialize debugger 54 | - (Debug *) init; 55 | 56 | // Initialize with stderr as additional output 57 | - (Debug *) initWithStderr; 58 | 59 | // Unitialize debugger 60 | - (void) uninit; 61 | 62 | // Log to file 63 | - (void) logToFile:(NSString *)path; 64 | 65 | // Log message 66 | - (void) log:(int)level withMessage:(NSString *)message, ...; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /source/util/LocalUserDefaults.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LayeredDictionary.m 3 | * MPlayerOSX Extended 4 | * 5 | * Created on 30.11.09 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License 9 | * as published by the Free Software Foundation; either version 2 10 | * of the License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #import <Cocoa/Cocoa.h> 23 | 24 | /* LocalUserDefaults is an extension to NSUserDefaults which allows to 25 | * keep global preferences values in NSUserDefaults and override them 26 | * for individual LocalUserDefaults instances. 27 | * 28 | * An empty LocalUserDefaults instance will return identical objects for 29 | * all keys in NSUserDefaults. All objects set through LocalUserDefaults 30 | * will override NSUSerDefaults values for this instance and subsequent 31 | * calls to objectForKey: will return the local instance. A call to 32 | * removeObjectForKey: will reset the value to the NSUserDefaults one. 33 | * 34 | * This class is KVO and KVC compliant and will properly rely changes 35 | * to NSUserDefaults values in case they are not overwritten locally. 36 | * So it's possible to use LocalUserDefaults just like NSUserDefaults, 37 | * just with the added possibility to override NSUserDefaults values 38 | * locally. 39 | * 40 | * Additionally, LocalUserDefaults allows changing of top-level NSArray 41 | * and NSDictionary contents. It's therefore possible to bind an interface 42 | * element to a key inside a dictionary inside LocalUserDefaults. 43 | * LocalUserDefaults will take care of making the collection mutable, 44 | * setting the corresponding key and updating the original collection 45 | * when using KVC. 46 | */ 47 | @interface LocalUserDefaults : NSMutableDictionary { 48 | 49 | NSUserDefaults *globalDefaults; 50 | NSMutableDictionary *localDefaults; 51 | 52 | NSMutableDictionary *observers; 53 | } 54 | @property (nonatomic,readonly) NSUserDefaults *globalDefaults; 55 | @property (nonatomic,readonly) NSDictionary *localDefaults; 56 | - (id)initWithLocalDefaults:(NSDictionary *)local; 57 | @end 58 | --------------------------------------------------------------------------------