aboutsummaryrefslogtreecommitdiff
path: root/src/aomusicplayer.cpp
AgeCommit message (Collapse)Author
2022-08-05Properly enter loop if starting point is 0, i.E undefined. (#844)Salanto
* Fix channel 0 being ignored * Allow music to properly loop * Added channel index. Co-authored-by: Leifa♥ <26681464+TrickyLeifa@users.noreply.github.com>
2022-07-30Add option to disable music streaming. (#829)Salanto
* Add option to disable streamintg This one gets a unique message to prevent people forgetting they disable it and the wondering why streaming broke. * Fix code order * Fixes the music channel still playing audio when a new stream was blocked. * Update tooltip * Update tooltip to reflect the current way the feature works.
2022-07-27Fix an extremely rare issue where loop point goes outside track bounds if ↵Crystalwarrior
loop end is not defined (#748) * Fix an incredibly edge-case loop end issue where the loop end is outside track boundaries somehow * WIP-AB Cleanup and incorrect loop bugfix Cleanup AB-Loop code * Someone has to check if AB loop works properly still cause I have no idea how this shit works and the code prior was unreadable. Don't blame me, blame whoever left this code undocumented like the hag they are. * Increase max-sample we can accept in the AB loop Also change conversion to UInt. If someone adds a bad value, it will just return 0, which I guess is fair. Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-07-23Suppress application volume when alt-tabbed (#730)Crystalwarrior
* Suppress application volume when alt-tabbed Add a "suppress_audio" slider setting, 50% by default, which decides how much audio remains when the client is not in focus Add a "muted" setting for blip, music, and sfx players Add update_audio_volume func * change "suppress" to "how much audio is suppressed" instead of "how much audio remains" * Fix last commit just flipping the behavior and being ultra wacky * Fix evidence present sound ignoring audio suppression settings Co-authored-by: stonedDiscord <Tukz@gmx.de> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com>
2022-03-25Midi music (#614)stonedDiscord
* add bassmidi everywhere but CI * hello CI please don't ban me from github * add lib and open midi files with the lib * overlooked windows CI * yes, overwrite everything * add tracker support * add file formats that bass supports * forgot .mid smh * load all plugins in one function
2022-03-25for music, stop checking if future was cancelled due to a horrible race ↵Crystalwarrior
condition with an unknown reason why it happens (#700)
2022-02-19Don't run the base content vpath shenanigans if music path is HTTPAlex Noir
2021-12-24Fix animation freeze when loading music files (#609)Salanto
* Implement async music loading * Simplify music filename parsing and fix "missing" on streams Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-07-29swap out custom UNUSED macro for Q_UNUSEDin1tiate
2021-06-06Merge branch 'master' into feature/mountingoldmud0
2021-06-05Finish mounting featureoldmud0
To pull this one off, a new class called VPath was created that denotes "virtual" paths that can exist anywhere among the list of mount points. It is functionally identical to QString, except that implicit conversion between QString and VPath is not allowed. This makes it easy to spot errors in path resolution at compile time, since get_real_path must be called to resolve a VPath into an absolute path that can be passed into a Qt function as a QString. Other functions, such as the get_*_suffix functions, also return an absolute path QString for convenience. As for the rest of the functions that return a VPath, you will need to call get_real_path yourself. Finally, a path resolution cache was added to try to avoid blowing up what is already a massive lookup cost for assets. The cache is invalidated when the mount path list is changed. Currently, this cache isn't bounded. Might need to write an LRU cache if issues arise.
2021-05-05Add musclist streaming supportSalanto
Attempt Nr. 2 - Based on #548 and #501 + Allows client to use a remote source as a last resort if the file can't be found locally. + Adds a check if the target file is missing. This implementation assumed the streaming source to be structured like a webao content respository
2021-01-27Update src/aomusicplayer.cppCrystalwarrior
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2021-01-24Revert "fix music fading being audible when volume is 0 (#416)"Crystalwarrior
This reverts commit 75c1df5312d36eabee68822bd5830777fe00ec03.
2021-01-19Merge branch 'master' into feature/timerclockCrystalwarrior
# Conflicts: # include/courtroom.h
2021-01-19unused macro and update QTime to QElapsedTimer (#417)in1tiate
2021-01-19fix music fading being audible when volume is 0 (#416)in1tiate
2021-01-10Merge branch 'master' into feature/timerclockCrystalwarrior
# Conflicts: # include/courtroom.h # src/courtroom.cpp
2021-01-05Add in support for streaming music with bassSkye Deving
2020-08-25Introduce the timer packet - "TI".Crystalwarrior
This timer will start the clock accounting for latency! Cool, right? Remove useless qDebug() for music looping
2020-08-19Reset BASS when switching devices; drop Qt Multimedia support (#262)scatterflower
* Allow changing audio device on the fly while in a server * Use default audio device if device in config doesn't exist * Automatically change audio device to default when current one is invalid * Destroy Qt Multimedia support It was decided that there was not enough attention being given to Qt Multimedia support to justify its continued maintenance simply as a libre alternative to BASS. While substantial changes to audio were being made in 2.8, the Qt Multimedia support code fell behind in disrepair. It's clear that there is no vested interest in implementing audio features twice for the sake of licensing. When it's time to switch to another audio library, it will be done unilaterally. * CI: Use BASS for Linux build Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-07-04Fix an issue where the Ambience layer would break looping points for all ↵Crystalwarrior
other channels due to loop_start and loop_end only being a single variable. (#164) This occurs due to BASS not having any private variables of its own, so it was simply using the public variables loop_start and loop_end as reference - since those changed for any new song playing on another channel, the old looping points got replaced, and the seamless looping stops working. The solution was easy - just make a loop_start/loop_end variable for every supported channel - so 4 variables in our case.
2020-05-23i don't need this 3 timessD
2020-05-23fix qt music playersD
2020-05-23forgot those on noaudiosD
2020-05-23fix up nomusicsD
2020-05-22clang 2 electric boogalooCrystalwarrior
{ BasedOnStyle: LLVM, BreakBeforeBraces: Stroustrup}
2020-05-22Clang-ify the code with this styling using Visual Studio Code:Crystalwarrior
{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Stroustrup, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All } (this is the Visual Studio preset with only "BreakBeforeBraces" changed from Allman to Stroustrup)
2019-11-04add .opus supportCrystalwarrior
2019-10-05I HAVE CONQUERED BASS HELLCrystalwarrior
BEHOLD, LOOP_START AND LOOP_END MUSIC POINTS! It reads the songname.mp3.txt file, looking for loop_start, loop_length and loop_end in samples MUSIC EFFECTS SYSTEM THAT CAN ***COMMUNICATE WITH THE SERVER***, WOAHHHHHHHHH! RIGHT-CLICK CONTEXT MENUS TO ENABLE/DISABLE SPECIFIC MUSIC EFFECTS MUSIC EFFECTS ENUMS Fix an issue with music looping
2019-10-04fucking hell it's not accurate and doesn't match the absolute quality when ↵Crystalwarrior
it's played back in audacity jesus christ will the torture ever end
2019-10-01Fix music volume being weird due to m_volume being shared by ambience and ↵Crystalwarrior
music at the same time Fix version= being wrong
2019-09-20Tweak the ambience/crosfade layer to fade in regardless of another sample ↵Crystalwarrior
being there Fix music not being looped sometimes Prevent channel less than 0 from being passed Set up a new music display element with an attached music name, it displays a scrolling text of the currently playing music Fix music packet processing issues Make SFX slider responsible for all music channels besides 0 (actual music) scrolltext.cpp code recipe was taken from https://stackoverflow.com/questions/10651514/text-scrolling-marquee-in-qlabel - thanks to leemes for that one, I only adapted it for newer C++ version and tweaked some stuff.
2019-09-20I dunno what the fuck was I doing for the past 4 hours but I made ↵Crystalwarrior
crossfading music work. Music packets can receive channel to play the song in and the crossfading option too.
2019-09-14Bass.dll functionality-based clientside music looping system by using ↵iamgoofball
channel loopable flags (no use of QTimer required) Implement Goofball's AOV loopable music server message where any value that's not -1 when the length of the handle_message packet is longer than 3 will not loop the music (still confused about this but w/e)
2019-03-12qt musicstonedDiscord
2019-03-12makes all the bass stuff optionalstonedDiscord
2018-12-26moved headers into include and cpp files into src + logo into resourceDavid Skoland