add function to clear filters on all tracks

This commit is contained in:
cloudwithax 2022-10-12 18:12:10 -04:00
parent 1e12d79d68
commit e504088da1
4 changed files with 41 additions and 31 deletions

View File

@ -27,6 +27,7 @@ from .events import *
from .exceptions import *
from .filters import *
from .objects import *
from .queue import *
from .player import Player
from .pool import *
from .queue import *

View File

@ -374,7 +374,6 @@ class LowPass(Filter):
"""Filter which supresses higher frequencies and allows lower frequencies to pass.
You can also do this with the Equalizer filter, but this is an easier way to do it.
"""
def __init__(self, *, tag: str, smoothing: float = 20):
super().__init__()

View File

@ -21,6 +21,7 @@ from .exceptions import FilterInvalidArgument, FilterTagAlreadyInUse, FilterTagI
from .filters import Filter
from .objects import Track
from .pool import Node, NodePool
from .queue import Queue
class Filters:
"""Helper class for filters"""
@ -55,6 +56,7 @@ class Filters:
self._filters = []
def get_all_payloads(self):
"""Returns a formatted dict of all the filter payloads"""
payload = {}
@ -373,7 +375,7 @@ class Player(VoiceProtocol):
self._volume = volume
return self._volume
async def add_filter(self, filter: Filter, fast_apply=False) -> Filter:
async def add_filter(self, filter: Filter, fast_apply: bool = False) -> Filter:
"""Adds a filter to the player. Takes a pomice.Filter object.
This will only work if you are using a version of Lavalink that supports filters.
If you would like for the filter to apply instantly, set the `fast_apply` arg to `True`.
@ -389,7 +391,7 @@ class Player(VoiceProtocol):
return self._filters
async def remove_filter(self, filter_tag: str, fast_apply=False) -> Filter:
async def remove_filter(self, filter_tag: str, fast_apply: bool = False) -> Filter:
"""Removes a filter from the player. Takes a filter tag.
This will only work if you are using a version of Lavalink that supports filters.
If you would like for the filter to apply instantly, set the `fast_apply` arg to `True`.
@ -405,7 +407,7 @@ class Player(VoiceProtocol):
return self._filters
async def reset_filters(self, *, fast_apply=False):
async def reset_filters(self, *, fast_apply: bool = False):
"""Resets all currently applied filters to their default parameters.
You must have filters applied in order for this to work.
If you would like the filters to be removed instantly, set the `fast_apply` arg to `True`.
@ -419,6 +421,8 @@ class Player(VoiceProtocol):
)
self._filters.reset_filters()
await self._node.send(op="filters", guildId=str(self.guild.id))
if fast_apply:
await self.seek(self.position)

View File

@ -17,6 +17,7 @@ from .exceptions import QueueEmpty, QueueException, QueueFull
class Queue(Iterable[Track]):
"""Queue for Pomice. This queue takes pomice.Track as an input and includes looping and shuffling."""
def __init__(
self,
max_size: Optional[int] = None,
@ -24,7 +25,7 @@ class Queue(Iterable[Track]):
overflow: bool = True,
):
self.max_size: Optional[int] = max_size
self._queue = [] # type: ignore
self._queue: List[Track] = [] # type: ignore
self._overflow: bool = overflow
self._loop_mode: Optional[LoopMode] = None
self._current_item: Optional[Track] = None
@ -332,3 +333,8 @@ class Queue(Iterable[Track]):
def shuffle(self):
"""Shuffles the queue."""
return random.shuffle(self._queue)
def clear_track_filters(self):
"""Clears all filters applied to tracks"""
for track in self._queue:
track.filters = None