Commit Graph

495 Commits

Author SHA1 Message Date
clangen
2cfba1ff56 Added volume support; ALSA doesn't seem to support this natively so we do it in software. 2016-06-09 01:01:47 -07:00
clangen
a94f2e26fc AlsaOut: working stop, week, and gapless playback. If only I could figure out how to change the stream volume. 2016-06-09 00:39:53 -07:00
clangen
25fc10794b AlsaOut is producing sound! It can be paused and resumed. TODO: volume, stop.
Also fixed a small locking issue in Player.
2016-06-08 23:31:41 -07:00
clangen
a856af5630 Fleshed out basic buffering and thread loop for AlsaOut. Still not working. 2016-06-08 22:17:18 -07:00
clangen
3b7fbebcab Added stubbed AlsaOut plugin. Not even remotely close to working. 2016-06-08 20:36:50 -07:00
casey
f0bca767e2 Added back the original ALSA output plugin. PulseAudio is turning out to be a pain to implement, and has latency issues. Let's see if we can clean up and fix the original ASIO implementation. 2016-06-08 20:17:24 -07:00
clangen
2dc8fef1e2 Replaced PulseOut polling implementation with callback-driven one. Unfortunately sometimes the time doesn't update on a regular interval. 2016-06-07 01:15:14 -07:00
clangen
596d29ca4d Removed some junk from CMakeLists.txt that was causing issues on other platforms. 2016-06-06 21:21:58 -07:00
casey
85dca8aa10 Fixed a crazy bug in Player.cpp that should have been crashing every time in Linux. 2016-06-06 21:11:06 -07:00
clangen
301985a335 Couple small tweaks to make things a bit smoother going in Linux 2016-06-06 20:59:56 -07:00
clangen
26d34a596c - A bit of clean up to PulseOut
- Added volume support to PulseOut
- Tweaked Player and Transport to more accurately reflect current playback
2016-06-06 20:39:14 -07:00
clangen
1223cc4527 - Removed AlsaOut, EsdOut, no longer used and completely bit-rotted
- Cleaned up a couple type definitions
- Ensure the UI renders cleanly in Linux
- A few more fixes to PulseOut, but it's still not great.
2016-06-06 18:00:14 -07:00
clangen
3b05e294a8 PulseAudio output plugin seems to actually play stuff. But it's not pretty. 2016-06-06 02:07:50 -07:00
casey langen
33bd0240b6 Incremental work on the pulse audio output. Completely not working. 2016-06-05 20:31:15 -07:00
casey langen
9fbb2898e6 Compiles and starts in Linux. 2016-06-05 13:06:32 -07:00
Casey Langen
32191040b5 Doesn't seem to work on OS X, but not really expected to because the daemon doesn't seem to be running properly. 2016-06-05 01:50:46 -07:00
casey
d9bab19393 Renamed "aacdecoder" to "m4adecoder", because that's what it actually
ised. Updated makefiles accordingly.
2016-06-04 21:27:02 -07:00
clangen
4193eeb308 Update README.md 2016-06-04 20:49:50 -07:00
Casey Langen
5d92761bda AacDecoder is now compiling under OS X 2016-06-04 18:30:19 -07:00
casey
ae82180470 - Added a proper debug version of pdcurses for Windows.
- Tweaked the Indexer to allow files in the DB that do not have
  metadata, but have decoders.
- Bug fix to Text::Duration
2016-06-04 18:07:10 -07:00
casey
4effb493e9 Fixed the AAC/M4A decoder and upgraded its dependencies. 2016-06-04 17:34:43 -07:00
casey
6a6f7fe24d Oops, forgot to fix IDataStream's Open() method param names. 2016-06-04 14:21:27 -07:00
casey
fdd3a030c3 Cleaned up a couple of the SDK interfaces and removed comments until the
definitions have stabilized. Also fixed CD playback in windows.
2016-06-04 14:18:33 -07:00
Casey Langen
ed0e23088d Ensure Tranpsort is properly stopped after all playback has completed. 2016-06-04 13:43:14 -07:00
Casey Langen
8b14719bbc Fixed build and adjusted idle timeout for OSX 2016-06-04 12:49:20 -07:00
clangen
548c18de36 Update README.md 2016-06-03 22:29:01 -07:00
casey
4d7aa33075 Added proper support for disc number as a first-class field on Track. 2016-06-03 22:22:45 -07:00
casey
52d01ffb7b - A bit of Transport.h header cleanup
- Ensure fields are using the correct keys for queries and data access
  (we were using ALBUM_ID, ARTIST_ID, GENRE_ID incorrectly).
2016-06-03 21:05:01 -07:00
casey
15a181a281 Fixed a bug where "PlaybackStopped" was getting triggered when it didn't
need to, leading to a slightly laggy UI in some cases.
2016-06-03 20:16:30 -07:00
casey
b286d83c78 - Ensure NowPlayingLayout always scrolls to the playing item when shown
- Fixed some resize bugs in LibraryLayout
- Automatically convert ALT_ keys to M- (meta) keys for Win32 builds.
2016-06-03 18:32:25 -07:00
Casey Langen
ffcc110430 More cleanups to CMakeLists and also fixed a top-level layout issue 2016-06-03 08:55:56 -07:00
Casey Langen
efc81d352a Cleaned up CMakeLists.txt in core and box. 2016-06-03 08:29:05 -07:00
Casey Langen
be34186303 Fixed compile on OSX. 2016-06-03 08:21:33 -07:00
casey
c418305b30 Library and now playing switching seems to work? 2016-06-03 02:04:41 -07:00
casey
40bc4d31ad Incremental work on the now playing list. It sort of works now, but
things are a bit goofy.
2016-06-02 23:01:22 -07:00
casey
535367d705 - Renamed MainLayout -> ConsoleLayout
- Refactored TrackListView to not deal with PlaybackService directly.
  This is the job of the "Controller" which doesn't exist yet.
- Tweaked LibraryLayout to act more like a Controller, and start
  playback when the user presses enter.
- Added a hacked up NowPlaying layout.
2016-06-02 21:45:44 -07:00
casey
8b14ddb5e8 A couple small but important fixes:
- Don't adjust scroll position in TrackListView after a requery if the
  query contents haven't actually changed
- Ensure resizing doesn't lose the selected item in ListWindow
- Added the concept of query hashes and generalized TrackListQueryBase
  so different types of queries can be supplied to a TrackListView.
2016-06-02 18:45:16 -07:00
Casey Langen
32965dd2af Added CoreAudioOut gapless playback support. 2016-06-01 22:34:22 -07:00
casey
a8f8425f91 Gapless playback seems to be working with waveout! Not perfect for all
MP3 files, but that's to be expected. TODO: CoreAudio changes to allow
gapless playback.
2016-06-01 21:51:39 -07:00
casey
6ec0a8042b Moving to a better asynchronous model and fixing those deadlocks
uncovered a handful of bugs. Hopefully this is the last one -- ensure
the next prepared track always gets played.
2016-06-01 01:32:12 -07:00
Casey Langen
c1d902766d One final bug fix for the evening: ensure buffers are flushed from the output device as part of stop(). 2016-06-01 01:22:14 -07:00
Casey Langen
5bf48ff243 Added new file to CMakeLists.txt 2016-06-01 01:02:05 -07:00
casey
c364175f75 Rough night, found and fixed another deadlock. 2016-06-01 00:55:14 -07:00
casey
916823000c Don't wait indefinitely for WaveOut to close, and also fixed a stop-related bug. 2016-06-01 00:30:46 -07:00
casey
76445b658f Hush compiler warnings. 2016-06-01 00:15:42 -07:00
casey
4fe8f1fe10 - Don't raise the "Stopped" event in transport unless we're actually stopped (more bug fixes)
- Fixed PlaybackService to actually listen to PlaybackEvent
2016-06-01 00:14:14 -07:00
casey
9c7fdbdb87 - Fixed a bug in Transport where a "PlaybackStopped" event could be triggered erroneously
- Simplified TransportWindow to use PlaybackService.TrackChanged instead of manually querying the DB
2016-06-01 00:03:41 -07:00
casey
9f2a04bf78 A couple small color tweaks to make the currently playing track more obvious. 2016-05-31 22:36:09 -07:00
casey
adbe9bf859 - Fixed another potential deadlock in Transport.cpp
- Fixed TrackListViewQuery to set the correct track id on queried tracks
- Fixed PlaylistService to use MessageQueue to deliver results and avoid race conditions
- Tweaked TrackListView to highlight the currently playing track in yellow
2016-05-31 22:25:32 -07:00
casey
c9630312ef Added album separators in TrackListView, and cleaned up IScrollAdapter::IEntry interface in the process. 2016-05-31 21:27:49 -07:00