From d8e28b8dd71ac220ddc4ad0449d731f723055f39 Mon Sep 17 00:00:00 2001 From: SofianeLasri <alasri250@gmail.com> Date: Wed, 22 Mar 2023 15:42:35 +0100 Subject: [PATCH] Lecture unique des sons. --- radio.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/radio.py b/radio.py index 7e895ca..5e961d6 100644 --- a/radio.py +++ b/radio.py @@ -15,6 +15,10 @@ class Radio: musics = [] ads = [] news = [] + playedAds = [] + playedNews = [] + playedMusics = [] + playedMonoSolos = [] def __init__(self, radioName): self.radioPath = os.getcwd() + "/" + radioName @@ -43,7 +47,7 @@ class Radio: self.playMusic() def playMusic(self): - music = random.choice(self.musics) + music = self.chooseRandomUnplayedTrack("music") musicName = music.split("/")[-1].split(".")[0] # We choose random pattern @@ -78,11 +82,49 @@ class Radio: # We will now play the pattern for item in pattern: if item == "AD": - defs.playSound(random.choice(self.ads)) + defs.playSound(self.chooseRandomUnplayedTrack("ad")) elif item == "NEWS": - defs.playSound(random.choice(self.news)) + defs.playSound(self.chooseRandomUnplayedTrack("news")) elif item == "MONO_SOLO": - defs.playSound(random.choice(self.monoSolos)) + defs.playSound(self.chooseRandomUnplayedTrack("monoSolo")) + + def chooseRandomUnplayedTrack(self, trackType): + if trackType == "music": + if (len(self.playedMusics) == len(self.musics)): + self.playedMusics = list() + + track = random.choice(self.musics) + while track in self.playedMusics: + track = random.choice(self.musics) + self.playedMusics.append(track) + elif trackType == "ad": + if (len(self.playedAds) == len(self.ads)): + self.playedAds = list() + + track = random.choice(self.ads) + while track in self.playedAds: + track = random.choice(self.ads) + self.playedAds.append(track) + elif trackType == "news": + if (len(self.playedNews) == len(self.news)): + self.playedNews = list() + + track = random.choice(self.news) + while track in self.playedNews: + track = random.choice(self.news) + self.playedNews.append(track) + elif trackType == "monoSolo": + if (len(self.playedMonoSolos) == len(self.monoSolos)): + self.playedMonoSolos = list() + + track = random.choice(self.monoSolos) + while track in self.playedMonoSolos: + track = random.choice(self.monoSolos) + self.playedMonoSolos.append(track) + else: + raise Exception("Invalid track type") + + return track radiosStations = ["non-stop-pop", "silverlake", "funk"] -- GitLab