Commit graph

51 commits

Author SHA1 Message Date
pajlada
a240797b68
Add support for sound backends & some miniaudio changes (#4978)
Miniaudio now runs everything in a separate audio thread - this uses boost::asio's io_context.
Our miniaudio implementation is now also much simplified - it does not use its own resource manager or device. This might end up being stupid if sounds don't work after changing output device or locking or w/e
I've made the sound controller into an interface, meaning we can support multiple sound backends in Chatterino. I've added a Null sound backend that disables all sound. A QMediaPlayer or QSoundEffect or Qt backend could be added.
Miniaudio might idle & disable the device now too, not sure

I've added some unrelated changes in the form of a new setting type, and a new setting page helper function for it, which will hopefully make adding new enum settings easier in the future.
This setting stores its value as a string instead of an int, and uses magic_enum to convert between that string value and its enum value.
2023-11-26 22:06:12 +01:00
nerix
6faf63c5c4
refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
pajlada
8fe3af3522
Fix signal connection nodiscard warnings (#4818) 2023-09-16 11:52:51 +00:00
pajlada
4958d08036
Change sound backend from Qt to miniaudio (#4334)
Thanks Greenlandicsmiley, Nerixyz, Yoitsu, and helmak for helping debug & test this

* Remove QMediaPlayer includes

* Prefer local path when generating the sound path

* Update changelog entry number

* Disable pitch & spatialization control
2023-01-29 10:36:25 +01:00
Thomas Petersen
d5a0420f74
Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
nerix
1043f9f803
Remove Unnecessary Includes in Headers (#4275)
* refactor: remove unnecessary includes in headers

* fix: formatting

* chore: changelog

* fix: scrollbar

* fix: suggestions and old appbase remains

* fix: suggestion

* fix: missing Qt forward declarations

* fix: another qt include

* fix: includes for precompiled-headers=off

* Add missing `<memory>` includes

* Add missing `#pragma once`

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-31 14:41:01 +00:00
nerix
86e71c8bd9
Migrate to C++ 20 & switch to websocketpp develop branch (#4252)
* feat: c++ 20

* fix: c++ 20 deprecations

* fix(msvc): warnings

* chore: add changelog entry

* fix: formatting

* Update websocketpp to the `develop` branch

* Specify other template type in FlagsEnum != operator

* Remove the user of simple template ids in our websocketpp template class

Also standardizes the file a bit by using nested namespaces, using
pragma once

* fix: turn `MAGIC_MESSAGE_SUFFIX` into a `QString`

* hacky unhacky hacky const char hack

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-24 11:56:11 +00:00
pajlada
032f290767
Sort and force grouping of includes (#4172)
This change enforces strict include grouping using IncludeCategories

In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:

    In ChatterSet.hpp, I changed lrucache to a <>include
    In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
    In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
    In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
    clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
2022-11-27 19:32:53 +01:00
yodax
d23d5c142e
Added stream titles to windows toast notifications (#2044)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: David Myers <dave-myers@outlook.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-30 12:29:43 +00:00
Kasia
f3f340335f
Make generic version of batcher function (#3822) 2022-06-17 20:52:20 +02:00
Kasia
74ec310228
Fixed channels not being set as offline (#3767) 2022-05-28 18:10:10 +00:00
Mm2PL
00b463d298
Delete 'is live' messages from non-open channels (#3678)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-04-30 11:37:24 +00:00
Sidd
870aa74427
Use login name for NotificationController lookup (#3648)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-04-06 21:10:22 +00:00
James Upjohn
67c10fafc7
chore: replace usages of obsolete twitch struct with backing field (#3614)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-19 11:02:29 +00:00
Mm2PL
ea462f94e4
Check live status for all closed channels with notifications at once (#3442)
Use a single api call for fetching live status of fake channels; batch by 100s

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: zneix <zneix@zneix.eu>
2022-01-01 17:06:54 +00:00
Felanbird
be3609a927
Capitalize mentions of Twitch, Chatterino, and IRC in comments and text/settings (#3274) 2021-10-17 15:06:58 +02:00
apa420
dcd65b5978
/live split for channels going live (#1998)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-05-09 14:17:04 +00:00
Felanbird
032a791ec1
Fixed spelling of Suppress (#2472) 2021-02-21 16:42:59 +01:00
Paweł
acbabd2664
Added Live Notification suppression to Streamer Mode (#2342) 2021-01-10 15:01:38 +01:00
Steve Wills
df722a72c1
Switch to QT Category logging (#2206)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-11-21 16:20:10 +01:00
Leon Richardt
0eed45ae67
Chore: Proper Lambda Formatting (#2167)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-08 12:02:19 +01:00
pajlada
9a8b85e338
Twitch API: v5 to Helix migration (#1560)
There's a document in src/providers/twitch/api which describes how we interact with the Twitch API.
Keeping this up to date might be a healthy way for us to ensure we keep using the right APIs for the right job.
2020-03-14 12:13:57 +01:00
fourtf
2ebe07bace removed compat functions in SignalVector 2020-02-23 19:44:13 +01:00
fourtf
843e2ad994 refactored HighlightController 2020-02-23 19:31:43 +01:00
fourtf
4a5dc80bc6 some more refactoring 2020-02-23 17:45:59 +01:00
pajlada
3c8992cac1
Remove FMT dependency (#1472)
All occurrences of log() have been replaced with qDebug()

bonus meme: remove a bunch of std::string usages in the pubsub client

Fixes #1467
2020-01-03 20:51:37 +01:00
fourtf
22ca20ad2a renamed TwitchServer -> TwitchIrcServer 2019-09-15 13:02:02 +02:00
fourtf
7643c0d20d fixed deleting QTimer on wrong thread 2019-08-20 23:46:27 +02:00
fourtf
7697ec01b4 removed old NetworkRequest api 2019-08-20 22:16:17 +02:00
fourtf
fff979b3c0 lock SignalVector with shared_lock to allow reading on other threads 2019-07-31 22:50:12 +02:00
Rasmus Karlsson
1a7a5409ab do a full reformat according to our current .clang-format 2019-05-10 23:31:10 +02:00
23rd
9654650bee Renamed variables to clear some warnings. 2019-05-10 22:18:05 +02:00
fourtf
e259b9e39f added brace wrapping after if and for 2018-10-21 13:43:02 +02:00
apa420
bb6c2b6135 Cleaner flashing code (#774) 2018-10-07 10:55:44 +00:00
apa420
5dce212cb4 Added functionality of making the flash taskbar last until the app is focused again (#767)
* Added functionality of making the flash taskbar last until chatterino is focused again

* added it for every flash taskbar

Fixes #760
2018-10-06 15:51:13 +00:00
apa420
ca5bb104db hopefully it will now compile on linux 2018-09-01 13:01:54 +02:00
apa420
01ca055763 fixed issue where when a channel was going offline it would do a toast if the channel was notified 2018-08-29 22:22:32 +02:00
apa420
c5a88f6af3 fixed stuff 2018-08-29 19:58:55 +02:00
apa420
8ea3b6c8ee Added fakechannels 2018-08-26 13:19:09 +02:00
apa420
c4679bf048 almost implemented the faekchannels, just need to fix the timer, pls help pajlada 2018-08-25 14:13:26 +02:00
apa420
8f77dccb91 testing emoji because having windows 8 sucks 2018-08-24 18:38:27 +02:00
apa420
e58e76ef1e added more playsound stuff 2018-08-24 18:05:36 +02:00
apa420
b671fc4133 Tried chaning the color of the split when a channel is live 2018-08-14 16:29:52 +02:00
apa420
93bbe33664 Cleaned some stuff up and did some things 2018-08-12 21:05:12 +02:00
apa420
320558ee63 more stuff done, does compile, changed vector for map 2018-08-12 20:21:21 +02:00
apa420
05d5709bb9 stuff does compile 2018-08-12 18:54:32 +02:00
apa420
54166ec130 temp stuff 2018-08-12 15:29:40 +02:00
apa420
2de99ca9f5 update, should now be working Toasts for splitheader channels 2018-08-11 16:11:51 +02:00
apa420
77411f7012 WIP commit 2018-08-11 12:47:03 +02:00
apa420
5437a6dd4d update which actually let's you compile, but doesn't properly save an item after renaming it 2018-08-10 00:04:50 +02:00