//
//  MKRPlayControlProtocol.h
//  MaoKRadioPlayer
//
//  Created by yyqxiaoyin on 2019/4/3.
//  Copyright © 2019 Muzen. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "MKRRadioResorce.h"

@protocol MKRPlayControlProtocol <NSObject>

@optional

/**
 播放
 */
- (void)play;

/**
 暂停
 */
- (void)pause;

/**
 停止
 */
- (void)stop;

/**
 上一曲
 */
- (void)previous;

/**
 下一曲
 */
- (void)next;


/**
 设置音量
 @param volume 音量值
 */
- (void)setVolume:(int)volume;

/**
 设置播放倍速

 @param rate 播放倍速值
 */
- (void)setRate:(float)rate;

/**
 当前播放的资源
 */
- (id<MKRRadioResorce>)currentPlayingSong;

/**
 当前正在播放的频道号
 */
- (NSInteger)currentPlayingChannel;

/**
 上一次播放的正式频道的频道号 临时频道不记录
 用于蓝牙设备连接上之后直接开始播放上一次程序退出前的正式频道
 或者用于在播放临时频道时 轮盘页显示在播放临时频道之前播放的某个正式频道内容
 */
- (NSInteger)lastPlayingRegulationChannel;

/**
 是否正在播放中
 */
- (BOOL)isPlaying;

/**
 获取当前设备频道的播放模式

 @param channelNO 频道号
 @return 播放模式
 */
- (MKRRadioPlayMode)playModeWithChannelNO:(NSInteger)channelNO;

/**
 快进或快退到指定秒数

 @param timeInterval 目标秒数
 */
- (void)seekToTimeInterval:(NSTimeInterval)timeInterval;


/**
 设置播放模式

 @param playMode  播放模式
 @param channelNO 频道号
 */
- (void)setPlayMode:(MKRRadioPlayMode)playMode channelNO:(NSInteger)channelNO;

/**
 播放某个频道某一首歌

 @param channelNO 频道号
 @param index 歌曲下标
 */
- (void)playSongWithChannelNO:(NSInteger)channelNO index:(NSInteger)index;


/**
 播放某个频道某一首歌
 
 @param channelNO 频道号 从第一首开始播放
 */
- (void)playSongWithChannelNO:(NSInteger)channelNO;


/**
 播放歌曲列表到临时列表

 @param songs 歌曲数组
 */
- (void)playTempSongs:(NSArray <id <MKRRadioResorce>> *)songs;

/**
 播放歌曲列表到临时列表

 @param songs 歌曲数组
 @param index 开始播放的下标
 */
- (void)playTempSongs:(NSArray <id <MKRRadioResorce>> *)songs index:(NSInteger)index;

/**
 更新播放列表

 @param newPlayList 目标播放列表
 */
- (void)updatePlayList:(NSArray <id <MKRRadioResorce>> *)newPlayList;

@end
