linux 下五子棋
1.2.1 用c语言在Linux vim下编写程序,在终端下运行。
1.2.2 通过frambuffer来画棋盘,棋子及鼠标。通过鼠标来控制下棋的位置。
1.2.3 加入一个jpeg库及图片来作为终端的背景。
1.2.4通过Linux下的mplayer来播放背景音乐
音乐播放器
include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
pathName = "/home/akaedu/akplayer/music/";
// getMusicList();
dir.setPath(pathName);
musicList.append(dir.entryList());
musicList.removeFirst();
musicList.removeFirst();
musicNo = 0;
musicCount = musicList.size();
mediaObject = new Phonon::MediaObject(this);
audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory,this);
volumeSlider = new Phonon::VolumeSlider(this);
seekslider = new Phonon::SeekSlider(this);
timer = new QTimer(this);
Phonon::createPath(mediaObject,audioOutput);
ui->listWidget->addItems(musicList);
ui->progressBar->setValue(0);
connect(timer,SIGNAL(timeout()),this,SLOT(timeOutSlot()));
connect(mediaObject,SIGNAL(finished()),this,SLOT(playNext()));
play(musicNo);
timer->start(400);
volumeSlider->setAudioOutput(audioOutput);
volumeSlider->setOrientation(Qt::Horizontal);
volumeSlider->setGeometry(15,10,150, 30);
seekslider->setMediaObject(mediaObject);
seekslider->setGeometry(20,70,471,12);
QPixmap pic;
pic.load("/home/akaedu/akplayer/123.jpg");
pic = pic.scaled(QSize(611,521));
ui->label->setPixmap(pic);
}
Widget::~Widget()
{
delete ui;
}
void Widget::playNext()
{
on_pb_down_clicked();
}
void Widget::timeOutSlot()
{
ui->progressBar->setValue(100*mediaObject->currentTime()/mediaObject->totalTime()+1);
ui->lb_cu->setText(time.addMSecs(mediaObject->currentTime()).toString());
ui->lb_to->setText(time.addMSecs(mediaObject->totalTime()).toString());
time1 = QTime::currentTime();
QString text = time1.toString("hh:mm:ss");
ui->lcdNumber->display(text);
}
void Widget::play(int i)
{
QString ptr;
ptr.append(pathName);
ptr.append(musicList.at(i).toLocal8Bit().constData());
mediaObject->setCurrentSource(ptr);
ui->textEdit->setReadOnly(true);
ui->textEdit->clear();
ui->textEdit-> append(musicList.at(i));
ui->listWidget->item(i)->setSelected(true);
ui->listWidget->setCurrentRow(i);
}
//int Widget::getMusicList()
//{
// DIR *dir;
// struct dirent *ptr;
// dir = opendir(pathName);
// if(!dir){
// qDebug()<< "open dir error!";
// return -1;
// }
// while((ptr = readdir(dir)))
// {
// if(ptr->d_name[0] == '.') continue;
// musicList << ptr->d_name;
// }
// closedir(dir);
//}
void Widget::on_pB_play_clicked()
{
ui->pB_play->setDisabled(true);
ui->pB_stop->setDisabled(false);
mediaObject->play();
}
void Widget::on_listWidget_doubleClicked(const QModelIndex &index)
{
ui->pB_play->setDisabled(true);
ui->pB_stop->setDisabled(false);
play(index.row());
musicNo = index.row();
mediaObject->play();
timer->start(400);
}
void Widget::on_pB_stop_clicked()
{
ui->pB_stop->setDisabled(true);
ui->pB_play->setDisabled(false);
mediaObject->pause();
}
void Widget::on_pb_down_clicked()
{
ui->pB_play->setDisabled(true);
ui->pB_stop->setDisabled(false);
if(musicNo < musicCount - 1 && musicNo >= 0)
{
musicNo++ ;
}
else{
musicNo = 0;
}
play(musicNo);
mediaObject->play();
}
void Widget::on_pB_up_clicked()
{
ui->pB_play->setDisabled(true);
ui->pB_stop->setDisabled(false);
if(musicNo < musicCount && musicNo > 0)
{
musicNo--;
}
else{
musicNo =musicCount - 1;
}
play(musicNo);
mediaObject->play();
}
void Widget::on_pB_speed_clicked()
{
mediaObject->seek(mediaObject->currentTime()+10000);
}
void Widget::on_pB_back_clicked()
{
mediaObject->seek(mediaObject->currentTime()-10000);
}