Commit Graph

324 Commits (ddbc38c7fecd41c07468bcf6725469454867b30a)

Author SHA1 Message Date
Christopher Snowhill 7f3da31b45 Consider URLs as 'internal' source so they don't auto play 2020-03-10 02:17:19 -07:00
Christopher Snowhill 17bb70e729 Fix macOS version detection to use a proper API 2020-03-05 20:34:15 -08:00
Christopher Snowhill d05ada5d0a Disable MPRemoteCommandCenter unless on Mojave or newer 2020-02-28 00:40:29 -08:00
Christopher Snowhill eba116d92e Replace Feedback submission dialog with link to special contact form 2019-11-16 14:49:30 -08:00
Christopher Snowhill 6847f1bcbf Add MediaPlayer stop command and correctly handle return values for all MediaPlayer remote events 2019-11-14 19:24:13 -08:00
Christopher Snowhill 2476f8827d Hopefully fix compatibility with systems older than 10.12.1 2019-11-14 19:16:43 -08:00
Christopher Snowhill 09777d4554 Implemented support for MediaPlayer framework, which fixes media key support on newer systems, and also media info reporting 2019-11-13 19:13:59 -08:00
Christopher Snowhill 9a47c0ebe9 - Remove obsolete Growl framework
- Update BASS and friends to latest versions
- Remove unused unmo3 library
- Add entitlements to Hardened Runtime for unsigned plugins (for
  AU MIDI playback), and for executable memory use (for the USF
  recompiler)

- TODO: Replace Growl branding with generic notification icon
2019-10-10 15:47:46 -07:00
Christopher Snowhill 62c4e71227 Remove Media Keys warning dialog, let user discover why their global hotkeys aren't working on their own if they aren't the type to complain about features that have been in since the beginning. 2019-06-20 21:04:19 -07:00
Christopher Snowhill a71b2b2f65 Fix media key hook for Mojave. 2018-06-28 05:04:15 -07:00
Christopher Snowhill 67495009ff Updates for new build system. 2018-06-28 04:03:37 -07:00
Christopher Snowhill 6e6648624d Hopefully implemented a proper workaround for new Mojave permissions required for the Media Key event hook. We shouldn't crash any more. 2018-06-27 20:50:26 -07:00
Christopher Snowhill 3901305105 No longer send '(null)' notifications for files missing artist and/or album tags. 2018-06-03 18:39:07 -07:00
Kevin López faf5eb586a Implement proper fullscreen enter and exit animations. 2017-12-27 18:51:44 -08:00
Christopher Snowhill 368bb003c2 Make resume-playback-on-startup optional, and disabled by default. 2017-03-21 22:08:35 -07:00
Christopher Snowhill ebfcd03c5d - Change MIDI overrides to support 'default (auto)' mode
- Change MIDI flavor default to 'default (auto)'
- Fix MIDI preference page to correctly enable the flavor option only where applicable
- Fix SCVA player to reset existing instances reliably
2016-11-29 15:46:38 -08:00
Christopher Snowhill b5967bb2e1 Fix HotKey initialization to deinitialize any existing instances, as the global hash table is not reference counted, and the previous design would result in the hash table being set twice, then cleared. 2016-10-10 22:33:00 -07:00
Christopher Snowhill c2bf3225d1 Use new symbols from macOS 10.12 SDK, which have the same values as the deprecated symbols. 2016-10-10 22:31:46 -07:00
Christopher Snowhill a95280626f Fix Projects. Fix a major deadlock introduced by previous commit. Introduce new mGBA based GSF player. 2016-09-04 12:49:43 -07:00
Chris Moeller 55ecd008ad Update feed location and script. 2016-07-15 22:41:17 -07:00
Chris Moeller 17272ce43c Clean up lots of warnings and minor issues. 2016-06-29 22:10:29 -07:00
Chris Moeller dee388d22c Changed the Support Cog link. 2016-05-09 21:57:04 -07:00
Chris Moeller e531f288b2 Fix a race condition with opening files externally through file associations or the 'open' terminal command. 2016-05-07 22:41:28 -07:00
Chris Moeller 68db8edae3 Fixed setting keycode 0 as a hotkey. 2016-05-05 14:03:48 -07:00
Chris Moeller 0e3644177e Updated everything else to ARC, and plugged a release cycle. 2016-05-05 13:05:39 -07:00
Chris Moeller 6c8a08fff1 Implemented MIDI flavor override control for Sound Canvas VA Audio Unit 2016-04-12 21:16:25 -07:00
Chris Moeller 039788226d - MIDI player now loops non-looping files internally if Repeat One is enabled
- MIDI player now supports installed Audio Unit plug-ins, and defaults to the DLS MIDI synthesizer
2016-01-20 21:11:05 -08:00
Chris Moeller b50ed67591 Fixed Repeat None correctly this time 2015-02-10 21:42:36 -08:00
o1 8bd04594dd Cog will now re-maximize window(s) when dock icon clicked after minimization. 2015-01-15 16:57:22 +03:00
Chris Moeller 540069c019 Change to mimic iTunes to a limited degree instead, hopefully this is enough info for most applications 2014-12-04 15:22:27 -08:00
Chris Moeller 22e97735c6 On second thought, let's pretend we're Swinsian 2014-12-03 22:50:59 -08:00
Chris Moeller da26e6757b Implemented a distributed notification for track information and playback status 2014-12-03 22:13:27 -08:00
Chris Moeller 2a0ef29ebe Updated notification system 2014-12-03 21:36:55 -08:00
Chris Moeller f2e0be8c9e Fixed feed URL, I hope 2014-09-05 23:25:32 -07:00
Chris Moeller 5618d058a3 Updated DUMB and modplay, and added a setting to control the resampling used by both, as well as by BASSMIDI, which will use sinc if specified 2014-03-26 21:49:31 -07:00
Chris Moeller 591730eea3 Fix the default updates feed URL setting, and override the current setting if it matches the former default 2013-10-22 17:46:33 -07:00
Chris Moeller 96c0081d73 Changed the AppCasts to https 2013-10-21 18:31:23 -07:00
Chris Moeller 9d6f583eff Bypass sending notifications to Growl if Last.fm is enabled and running, as Last.fm has its own display notifications 2013-10-13 15:13:27 -07:00
Chris Moeller 759aeab4fb Implemented pause on startup 2013-10-12 19:16:47 -07:00
Chris Moeller e87fd1b4b7 Ryan Brignoni: Updating AppleRemote with latest files from VideoLAN repo and adding support for new 2009 Apple remote buttons in Cog. 2013-10-12 14:47:39 -07:00
Chris Moeller 078caa7980 mamburu: Added an option to enable/disable giving up media keys control to Last.fm app 2013-10-12 14:41:57 -07:00
Chris Moeller 85937086d2 mamburu: SPMediaKeyTap (https://github.com/nevyn/SPMediaKeyTap) is now used to handle media keys - iTunes won't start on Play button while Cog is running 2013-10-12 14:26:52 -07:00
Chris Moeller 012ef22b40 Major UI overhaul; Now supports mini mode 2013-10-11 12:02:05 -07:00
Chris Moeller 8cf6b86ba2 Moved NDHotKey to its own framework, and removed useless Edit buttons from the hotkeys preference pane 2013-10-11 09:37:45 -07:00
Chris Moeller 2fe9e86eb9 Added optional colorful dock icons by tuurngait; Imported the Growl configuration page for disabling notifications if Growl.app is not installed 2013-10-11 08:35:57 -07:00
Chris Moeller d1f6ec850e tuurngait: Major UI Improvements 2013-10-11 07:16:47 -07:00
Chris Moeller 73524776e7 mamburu: Added a toolbar button to shuffle the playlist 2013-10-11 05:27:19 -07:00
Chris Moeller e5a648578b mamburu: Logging improved, no more excessive logging in release builds 2013-10-11 05:03:55 -07:00
Chris Moeller 602aaa6938 Enter Full Screen menu item and separator are now hidden until the main window wakes and detects toggleFullScreen selector 2013-10-11 03:39:57 -07:00
Chris Moeller 3f35b5e07f mamburu: Expandedness state of file drawer is now persisted over app restarts 2013-10-11 03:03:23 -07:00
Chris Moeller 0ad3106355 mamburu: Added bar that shows name of currently playing entry 2013-10-11 02:09:26 -07:00
Chris Moeller 1aedb01c6b Changed feed and feedback URLs 2013-10-11 01:30:49 -07:00
Chris Moeller 555ccc9e87 Now storing all album art internally as its original format and synthesizing NSImage objects on demand 2013-10-09 13:53:13 -07:00
Chris Moeller b5fd1207b8 Now saves and loads the default playlist in an XML plist format, so loaded metadata is cached 2013-10-09 08:45:16 -07:00
Chris Moeller b4ffb2684f Removed pause on startup, since it doesn't seem to have any effect 2013-10-09 02:08:35 -07:00
Chris Moeller 3e579801a1 AppController now stores the last playback status and position in the defaults container and resumes playback on restart 2013-10-09 02:02:49 -07:00
Chris Moeller 380993ff16 Move forced metadata lookup to PlaybackController so ReplayGain information will always be available when it's needed 2013-10-07 16:15:15 -07:00
Chris Moeller 7c5eaed629 Added now playing spam hotkey, currently format hard coded 2013-10-04 04:16:09 -07:00
Chris Moeller ec0e45381e Cleaned up most of the warnings, eliminated use of deprecated APIs, and fixed the hotkeys crashing. 2013-10-03 01:00:58 -07:00
Chris Moeller 4c0cf34250 More ReplayGain support, now with metadata handling, but only if the metadata is already loaded 2013-10-02 02:30:04 -07:00
Chris Moeller 6ea103b1c3 Implemented ReplayGain support, so far only in the HighlyComplete component. 2013-10-01 23:00:16 -07:00
vspader 26d44d6f37 Fix Growl so it only shows up on non-error tracks and display album art in the notification. 2009-03-11 20:26:29 -07:00
vspader 7cbebef352 Fixed up metadata loading so metadata isn't always read when you play. 2009-03-05 20:46:42 -08:00
vspader d6a0b0670e Playback events for last.fm and growl are now done in the background via an operation queue. Removed hack to load metadata for autoplay. Now metadata is reloaded for each file you play. 2009-03-05 20:37:44 -08:00
vspader e2d590c167 Added PlaybackEventController. 2009-03-05 09:04:16 -08:00
vspader 4bd8f6142c Moved growl/scrobbler notifications into PlaybackEventController. 2009-03-05 09:03:30 -08:00
vspader 4dacefe989 Fix leak of dock image. 2009-02-28 22:28:37 -08:00
vspader 38743b7dbf Added badges to the icon to indicate the current playback status. 2009-02-28 15:54:36 -08:00
vspader 03937f480b Cleaned up modified add behavior. 2009-02-28 14:22:33 -08:00
vspader 1fcf3bb2ff Fixed up fading logic. 2009-02-28 13:19:26 -08:00
vspader fd4fa4c62d Fixed playback buttons on mini mode. Play now turns to pause. 2009-02-28 13:13:06 -08:00
vspader fda5d50712 If you change the playlist near the end of a song, it should now play the correct song. 2009-02-28 10:57:21 -08:00
vspader c96c3448d8 Volume is now saved across launches. 2009-02-28 10:19:15 -08:00
vspader 2883e93725 Removed unused method. 2009-02-28 09:52:40 -08:00
vspader a2f360177e Organized things a little better. 2009-02-22 14:57:02 -08:00
vspader 8bd1cc32d5 Fixed position slider max. 2009-02-22 14:40:22 -08:00
vspader faf0df17f2 Removed unused methods from playbackcontroller. 2009-02-22 14:29:11 -08:00
vspader a1f6139ea4 Fixed up position slider and time display. 2009-02-22 14:28:09 -08:00
vspader fcf886321f Mini window will now reopen on launch if it. 2009-02-22 11:56:28 -08:00
vspader ce2f61564c Removed old classes. 2009-02-22 11:22:51 -08:00
vspader c107c67ba7 Added dual window classes. 2009-02-22 11:22:35 -08:00
vspader f24afa4c86 Fixed up timers so they are still in effect while in the tracking runloop mode. 2009-02-09 06:16:16 +00:00
vspader c9e542f570 Added better tooltip feedback. 2009-02-09 05:53:38 +00:00
lmsilva 0df5123d05 fixed a bug introduced before, double clicking on a song in the tableview wouldnt work 2008-11-21 15:43:34 +00:00
lmsilva dda74d0608 fixed seek slider from becoming active & disabling it when STOP occurs 2008-11-21 15:14:23 +00:00
vspader 5132465651 Save previous height when hidden. 2008-06-22 19:44:09 +00:00
vspader ab6f61c591 Updated preference key. 2008-06-22 19:04:15 +00:00
vspader 2e819f4970 Remember mini mode. 2008-06-22 19:02:53 +00:00
vspader f53bfc861d Side pane say what? 2008-06-21 04:05:30 +00:00
vasfed 584710ffb1 Changed playlist behavior preferences to be pop-up buttons with choices 2008-05-18 09:38:53 +00:00
vasfed e063790e93 Updated APL plugin to use new protocol
Added support for behavior modifiers on addition/opening of files
Added Command+Control as modifier for open/enqueue
2008-05-09 21:24:49 +00:00
vspader db65925ff0 Fixed now playing in dock menu. 2008-03-13 01:21:54 +00:00
vspader 477bdbd4ef Fixed strange whitespace issue. Also, increased bottom border a bit to make it match other status bar heights. 2008-03-05 01:22:42 +00:00
vspader 58a61a7b21 Removed debugging message. 2008-03-02 19:21:35 +00:00
vspader 76e8bbb2c2 Logitech keyboards work with media keys on 10.5! Added prev/next support. 2008-03-02 19:20:08 +00:00
matthewleon 4168bb43eb Redid threading for reading file info and metadata. Still a bit buggy. 2008-03-01 18:29:14 +00:00
vspader 3cdca94207 Split status up into bunches of properties and made it a readonly property. 2008-03-01 03:29:21 +00:00
areff d59e118e1d Set default seek to 5, added menu separator to context menu, fixed silly wma crasher 2008-02-28 13:11:37 +00:00
areff 0aa5b56250 Fixed a bug in Stop after current that was causing some odd behaviour. 2008-02-26 11:59:47 +00:00
areff 89cd984b7d Moved stopAfterCurrent check to requestNextStream, so it won't interfere other than when the player is reaching the end of a track by natural means. Added menu item validation. 2008-02-25 17:02:06 +00:00
areff 761f86cf9c Added menu validation for fade entry 2008-02-23 22:55:21 +00:00
areff d2e95a50f8 Completely redesigned all menus, fixed crashers due to new PlaylistEntry structure, validated menu items, added menu entry for fading, synthesized playbackStatus, updated KnownIssues 2008-02-23 22:20:14 +00:00
vspader c31eae4541 Performance improvements for the status column. 2008-02-23 13:57:33 +00:00
vspader 3ab720427e Made stop update synchronous since there were issues when moving on to the next song. 2008-02-22 03:46:04 +00:00
vspader c6dc1fd141 Fixed #70. 2008-02-22 03:09:03 +00:00
vspader 138c575dda Clarified comparison. 2008-02-20 13:25:24 +00:00
vspader 4c8630e808 Cleaned up/fixed previous/next album. 2008-02-20 13:20:07 +00:00
vspader b15e4f626a Moved most enumerators to fast enumeration. 2008-02-20 00:54:45 +00:00
vspader eeba50f6e1 Cleaned up PlaylistEntry. 2008-02-20 00:44:40 +00:00
vspader 38e23ef442 Some more cleaning up. 2008-02-20 00:12:25 +00:00
vspader 76594c1062 Cleaned up repeat one/all code. 2008-02-19 23:49:51 +00:00
areff f20b10fdd4 Most of the Repeat logic is in place (needs some brush up here and there). Still missing Repeat Album. Disabled some annoying debug output from MADDecoder. Updated KnownIssues. 2008-02-19 19:59:35 +00:00
areff 9a43ad56f8 Added Repeat One logic to playbackController's requestNextStream. This is the only point on playback where repeat one should do anything at all, IMO. Repeat All logic added at same place, but this is only a temporary solution, as it does not heed shuffle in any way and generally feels less than optimal. Updated KnownIssues to reflect these changes. 2008-02-19 07:49:06 +00:00
matthewleon ea427c9033 Moved FontSizetoLineHeightTransformer registration code to AppControler's +initialize. 2008-02-18 09:27:27 +00:00
vspader 6dfef23ec7 Moved file tree preference to the file tree panel itself.
Removed file tree preference pane.
2008-02-18 01:46:34 +00:00
matthewleon 7f52608e6c Font size implemented through bindings. 2008-02-18 00:11:38 +00:00
vspader 1503c2868f Fixed File Tree preferences. 2008-02-17 19:27:29 +00:00
vspader 83d84a38d8 Moved File Drawer to File Tree Window. 2008-02-17 18:59:54 +00:00
areff 1b83061c49 Moved volume controls into AudioPlayer, logarithmic helper functions now have their own file, fixed broken seekbar resize 2008-02-17 18:44:11 +00:00
areff 6a915b458b Implemented fading up from pause, same key (shift-command-p) as fade down from play. Will clean code and move all audio components into the audioPlayer tomorrow, to fix the event* function names and consolidate all audio related methods. 2008-02-16 16:30:18 +00:00
areff 5228709d0f Fixed fadeout code so it sounds a bit better (timer fires faster, steady drop in volume rather than incremental) 2008-02-16 15:28:39 +00:00
matthewleon ad976c9edf Moved Spotlight Window nib loading code. 2008-02-15 22:47:27 +00:00
areff 0126a58679 Font increase/decrease now affect File Drawer too. This is experimental behaviour. 2008-02-15 22:43:34 +00:00
areff b317d0ba01 Experimental font size increase and decrease added to Cmd-+ and Cmd--, fixed small bug in skipping to previous album, updated KnownIssues 2008-02-15 15:27:34 +00:00
matthewleon 387015db22 Eliminated annoying flicker in Spotlight interface. Made tiny tweaks to PlaybackController and PlaylistController header to eliminate compiler warnings. 2008-02-14 23:09:51 +00:00
matthewleon b4804ebb5e Added initDefaults to AppController.h to get rid of annoying compiler warning. 2008-02-14 21:09:07 +00:00
areff 02836236db Added skipping to next and previous album with Alt-Right and Alt-Left 2008-02-14 19:25:01 +00:00
areff f64ebf597f Added incremental seeking with remote, volumeUp/Down now take an amount argument, seekForward/Backward now take an amount argument, fixed incremental fadeout that will not register more than one timer, added status kCogStatusFading 2008-02-13 18:03:06 +00:00
vspader 010f7de448 Added [audioPlayer volume].
Tweaked the volume control a little.
2008-02-13 01:50:39 +00:00
areff a39ce34ee9 Added fade to pause, key shift-cmd-p, changed volume controls around a bit, still needs fixing 2008-02-12 22:12:27 +00:00
matthewleon ff8cd0d773 Spotlight tweaks. 2008-02-11 09:20:52 +00:00
matthewleon e1762b2495 Put spotlight back in AppController. Should work now. 2008-02-11 07:56:26 +00:00
vspader cbfc93bd62 Removed Spotlight stuff for now to get Cog to compile agian (Sorry matthew).
Moved nib files to .xib files.
2008-02-11 00:52:07 +00:00
matthewleon 28d85a0f42 Spotlight search now works. It's a pretty buggy hack at the moment. 2008-02-10 20:34:29 +00:00
areff 64f0a25a52 Added seeking menu entries, validation of Control menu entries, updated KnownIssues 2008-02-10 18:34:23 +00:00
vspader 299285f0cd Changed undo/redo menuitems back to firstResponder. Modified PlaylistView to validate undo/redo items. 2008-02-10 17:13:30 +00:00
areff 9b05ce02d2 Added undo functionality in playlist, undo works for removals, moves and adds. 2008-02-10 16:16:45 +00:00
vspader 9fc6e4eeb1 Converted spaces to tabs. 2008-02-10 15:35:19 +00:00
matthewleon b23b18406a Added Spotlight window (File->Open with Spotlight). It doesn't work at all yet, but it shows what the basic idea is. 2008-02-10 13:48:55 +00:00
vspader be9387d30d Added patch from Andre Reffhaug for ctrl+left/right seeking. 2008-02-07 23:57:21 +00:00
vspader 2b1c305841 Added new hotness for the status bar. 2008-01-24 01:55:24 +00:00
vspader 56c8b9202f Fixed some table columns bugs. 2008-01-24 01:44:24 +00:00
vspader ef259a374f Fixed bug in inverted toolbar behaviour so it restores the content view to the correct width. 2008-01-23 03:55:20 +00:00
vspader d230f30a09 Fixed up toolbar and UI. 2008-01-23 03:03:46 +00:00
vspader 5715522470 Moved to frame-based reading/seeking instead of byte/second based. Some formats have still not been updated and are broken.
Added icons for other formats.
2007-11-24 20:16:27 +00:00
vspader f6c9658189 Removed debugging message. 2007-11-01 02:50:39 +00:00
vspader 4310532c50 Fixed bugs in miniplayer 2007-11-01 02:15:14 +00:00
vspader aa856de92b Added toolbar UI. 2007-11-01 01:53:52 +00:00
vspader 0eb32ff9f6 Fixed problem with track changes. 2007-10-21 21:01:40 +00:00
vspader 7582bbef02 Updated file drawer so it expands containers. 2007-10-16 01:22:57 +00:00
vspader 4b814bdbf0 Added back update notifications back to the file drawer.
Removed no-longer-used files.
Removed debugging messages.
2007-10-15 03:29:30 +00:00
vspader 6f6b01b15c Fixed bug where playlist saved as kss files.
Fixed bug where multi-track files were consolidated into a single entry on saving/loading a playlist.
2007-10-13 04:53:48 +00:00
vspader 88aecc7de2 Added AudioContainer plugin and made pls and m3u loaders that use it. 2007-10-09 01:20:46 +00:00
vspader 0e2da5efc7 Cleaned up converter. Added Media Keys support for apple's new multimedia keyboard (has not been tested). 2007-10-03 22:26:39 +00:00
vspader daba91b462 Removed debugging messages. 2007-07-11 01:20:32 +00:00
vspader a2b9db5f58 Fixed bug where dialogs would lose focus when the dock icon is clicked.
Fixed bug where playback would not resume when seeking to the end of a file.
Fixed bug where seek bar is enabled on launch.
2007-07-05 23:08:10 +00:00
vspader 6cf9a03009 Fix for incorrect songs being highlighted on quick next/prev. 2007-06-05 03:09:55 +00:00
vspader 759a6b0f01 Fixed slider enabling/disabling. 2007-06-03 17:09:07 +00:00
vspader 6f023124b4 Fixed escape closing the window.
Fixed window list issues.
Added file drawer button tooltip to localization.
2007-05-28 14:13:57 +00:00
vspader 5b5ce493e3 PlaylistLoader now handles playlist files like directories, and simply expands them. Makes sure only unique URL's are added! 2007-05-27 16:14:29 +00:00
vspader c28e8d058d Fixed up menu items.
Added OpenURL panel.
2007-05-26 14:43:31 +00:00
vspader 086acdc849 Fixed crash when encountering nonexistent file. 2007-05-22 23:15:07 +00:00
vspader b6227ecf1d Updated nightly script. Allow appcast selection in preferences. 2007-05-19 15:07:03 +00:00
vspader 4ed575f475 Moved PlaylistEntry number variables over to NSNumber. Removed displayIndex and lengthString, using formatters instead. Fix bug with autosaving playlist. 2007-03-14 02:28:30 +00:00
vspader 91607ea9ce Changed audioscrobbler id from tst to cog.. 2007-03-12 22:11:40 +00:00
vspader 15f1aa2ebd Cleaned up code. Added PlaylistLoader class properly, with support for m3u and pls formats. Changed default playlist to m3u. Added bugs GALORE! 2007-03-09 01:16:06 +00:00
vspader e452cbe3db Changed open URL panel to use a combobox. 2007-03-04 01:30:37 +00:00
vspader 934840ace5 Added source plugin support. Things are incredibly broken. Besides Ogg Vorbis. That should still work. 2007-03-02 01:36:52 +00:00
vspader 396ebda62a Removed Growl preferences. Growl can and should handle that on its own. 2007-02-28 02:03:37 +00:00
vspader 47fa30dc58 Reworked preferences a little to make it easier for simple panes.
Added Growl notifications for when a song is played, or when the song changes.
2007-02-28 00:35:27 +00:00
vspader ec153d3ae8 Fixed defaults for launching LastFM. 2007-02-26 05:26:48 +00:00
vspader 308b930caf Stop when the application closes. 2007-02-26 05:07:18 +00:00
vspader 35b1c886a8 Added Last.fm support for those with the last.fm client.
Fixed up remote and scrobbler preferences.
2007-02-25 02:43:56 +00:00
vspader 927b65a4a5 Merged with cog-audio-framework branch. Cog now uses plugins. 2007-02-24 20:36:27 +00:00