import 'package:get/get.dart'; import 'package:tone_snap/components/base_easyloading.dart'; import 'package:tone_snap/controllers/player_controller.dart'; import 'package:tone_snap/data/models/voice_model.dart'; import 'package:tone_snap/generated/assets.dart'; import 'package:tone_snap/modules/voice/initial/initial_controller.dart'; import 'package:tone_snap/routes/app_routes.dart'; class HomeController extends GetxController { static HomeController get to => Get.find(); var playerController = PlayerController.to; var voiceList = [ VoiceModel(name: 'Child', path: Assets.audioChild, cover: Assets.changeVoiceAudioChild), VoiceModel(name: 'Boy', path: Assets.audioBoy, cover: Assets.changeVoiceAudioBoy), VoiceModel(name: 'Man', path: Assets.audioMan, cover: Assets.changeVoiceAudioMan), VoiceModel(name: 'Elder', path: Assets.audioElder, cover: Assets.changeVoiceAudioElder), // VoiceModel(name: 'Rapper', path: Assets.audioRapper, cover: Assets.changeVoiceAudioRapper), VoiceModel(name: 'Robot', path: Assets.audioRobot, cover: Assets.changeVoiceAudioRobot), VoiceModel(name: 'Girl', path: Assets.audioGirl, cover: Assets.changeVoiceAudioGirl), VoiceModel(name: 'Sexy', path: Assets.audioSexy, cover: Assets.changeVoiceAudioSexy), VoiceModel(name: 'Woman', path: Assets.audioWoman, cover: Assets.changeVoiceAudioWoman), VoiceModel(name: 'Monsters', path: Assets.audioMonsters, cover: Assets.changeVoiceAudioMonsters), ]; void onTapItem(VoiceModel item) { InitialController.to.currentPlayVoiceModel.value = item; Get.toNamed(AppRoutes.playSound, arguments: item); } Future onTapPlayBarPlay(VoiceModel item) async { if (isPlayItem(item)) { await playerController.pausePlay(); } else { if (!identical(item, InitialController.to.currentPlayVoiceModel.value)) { BaseEasyLoading.loading(); await playerController.setFilePath(item.path); BaseEasyLoading.dismiss(); InitialController.to.currentPlayVoiceModel.value = item; InitialController.to.isFavourite.value = InitialController.to.getIsFavouriteModel() != null; } await playerController.startPlay(); } } bool isPlayItem(VoiceModel item) { return playerController.isPlaying.value && identical(InitialController.to.currentPlayVoiceModel.value, item); } }