📄 vod.cpp
字号:
char strname[80];
char tmp[80];
char wavepath[50];
if (!LS_recsong.getfield(tmp))
return -1;
sprintf(wavepath,"/rec/%s/%s",expenseid,tmp);
if (access(wavepath,F_OK)==0)
{
remove(wavepath);
LS_recsong.removepagepp();
}
Show_RecSongs();
if (LS_recsong.m_count<=0)
{
sprintf(strname, "录音歌曲为空请回到上页.");
redrawtext(wnd,b,strname,100,420,420,25,yao20);
return -1;
}
}
int PlayBackRecSong()
{
char tmp[80];
int ret;
if (wav_playing==1)
{
while(wav_play_pthread)
{ wav_playing=0;} //循环等待播放wav线程结束
}
else
{ wav_playing=0;}
LS_recsong.seek(CurSelectSong);
if (!LS_recsong.getfield(tmp))
return -1;
sprintf(curwavfile,"/rec/%s/%s",expenseid,tmp);
if (access(curwavfile,F_OK)==0)
{
ret=pthread_create(&rec_id,NULL,play_wav_file,NULL);
if(ret!=0)
{ printf ("Create wav backplay pthread error!\n");
return -1;
}
}
}
//***************
//上一首WAV录音*
//***************
int MoveLastRecSong()
{
char tmp[80];
char *pp[5];
if (LS_recsong.pagemovelast())
{
CurSelectSong=LS_recsong.row;
LastSelectSong=LS_recsong.oldrow;
wnd->WindowRect(80,CurSelectSong*20+LEFTTOP,520,20,fgl::CYELLOW);
LS_recsong.getoldfield(tmp);
split(tmp,pp);
redrawtext(wnd,b,pp[0],80,LastSelectSong*20+LEFTTOP,520,20,song18);
// redrawtext(wnd,b,pp[1],500,LastSelectSong*20+LEFTTOP,100,20,song18);
}
}
//***************
//下一首WAV录音*
//***************
int MoveNextRecSong()
{
char tmp[80];
char *pp[5];
if (LS_recsong.pagemovenext())
{
CurSelectSong=LS_recsong.row;
LastSelectSong=LS_recsong.oldrow;
wnd->WindowRect(80,CurSelectSong*20+LEFTTOP,520,20,fgl::CYELLOW);
LS_recsong.getoldfield(tmp);
split(tmp,pp);
redrawtext(wnd,b,pp[0],80,LastSelectSong*20+LEFTTOP,520,20,song18);
}
}
bool selected=false;
//显示已点歌曲清单
int Show_select_Songs()
{
char strname[80];
int i;
char tmp[80];
char *pp[5];
if (SelSongs.m_count>0)
SelSongs.seekpage(0);
else
{
wndsonglist->bitblit(60,0*20+LEFTTOP,60,0*20+LEFTTOP,540,20,bmpsong,fgl::BITBLIT_COPY);
wndsonglist->WindowRepaintUser(60,0*20+LEFTTOP,540,20);
return -1;
}
CurSelectSong=SelSongs.row;
LastSelectSong=SelSongs.oldrow;
for(i = 0; i < MaxSongPerPage; i++)
{
if (i<=SelSongs.pagerows)
{
SelSongs.getfield(tmp);
split(tmp,pp);
if (CurSelectSong==i)
if (selected)
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],i%MaxSongPerPage,song18,2);
else
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],i%MaxSongPerPage,song18,0);
else
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],i%MaxSongPerPage,song18,1);
SelSongs.movenext();
}
else
{
wndsonglist->bitblit(60,i%MaxSongPerPage*20+LEFTTOP,60,i%MaxSongPerPage*20+LEFTTOP,540,20,bmpsong,fgl::BITBLIT_COPY);
wndsonglist->WindowRepaintUser(60,i%MaxSongPerPage*20+LEFTTOP,540,20);
}
}
if(win_name!=SONGLIST)
{
sprintf(strname, "第 %d 页 共 %d 页",(CurSongsPage+1), MaxSongsPage);
redrawtext(wndsonglist,bmpsong,strname,250,420,180,25,yao20);
}
SelSongs.pp=SelSongs.pagehead;//当前指针移到页首
if(selected)
sprintf(strname, "用上下键移动歌曲,按确认键确认,按0键删除歌曲.");
else
sprintf(strname, "按确认键选中歌曲,按0键删除歌曲.");
redrawtext_color(wndsonglist,bmpsong,strname,100,420,420,25,yao20,FGColor(237,203,146));
}
//往下移
int MoveNext()
{
char strname[80];
if (SelSongs.m_count<=0)
{
sprintf(strname, "已点歌曲为空请回到上页.");
redrawtext_color(wndsonglist,bmpsong,strname,100,420,420,25,yao20,FGColor(237,203,146));
return -1;
}
if (SelSongs.changenext())
{SelSongs.savelog();
Show_select_Songs();
}
}
//往上移
int MoveUp()
{
char strname[80];
if (SelSongs.m_count<=0)
{
sprintf(strname, "已点歌曲为空请回到上页.");
redrawtext_color(wndsonglist,bmpsong,strname,100,420,420,25,yao20,FGColor(237,203,146));
return -1;
}
if (SelSongs.changelast())
{SelSongs.savelog();
Show_select_Songs();
}
}
//删除已点歌曲
int Del_One_song()
{
int i;
int next;
char strname[80];
SelSongs.removepagepp();
SelSongs.savelog();
Show_select_Songs();
if (SelSongs.m_count<=0)
{
sprintf(strname, "已点歌曲为空请回到上页.");
redrawtext(wndsonglist,bmpsong,strname,100,420,420,25,yao20);
return -1;
}
}
//***************
//下一首已点歌曲*
//***************
int MoveSelectSongDown()
{
char tmp[80];
char *pp[5];
if (SelSongs.pagemovenext())
{
CurSelectSong=SelSongs.row;
LastSelectSong=SelSongs.oldrow;
SelSongs.getpagefield(tmp);
split(tmp,pp);
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],CurSelectSong,song18,0);
SelSongs.getoldfield(tmp);
split(tmp,pp);
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],LastSelectSong,song18,1);
}
}
//***************
//上一首已点歌曲*
//***************
int MoveSelectSongUp()
{
char tmp[80];
char *pp[5];
if (SelSongs.pagemovelast())
{
CurSelectSong=SelSongs.row;
LastSelectSong=SelSongs.oldrow;
SelSongs.getpagefield(tmp);
split(tmp,pp);
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],CurSelectSong,song18,0);
SelSongs.getoldfield(tmp);
split(tmp,pp);
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],LastSelectSong,song18,1);
}
}
//选中已点歌曲
int SelectSong()
{
char strname[80];
char tmp[256];
char *pp[5];
if (SelSongs.m_count<1)
return -1;
SelSongs.getpagefield(tmp);
printf("当前已点歌曲:%s\n",tmp);
split(tmp,pp);
if (!selected)
{
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],CurSelectSong,song18,2);
selected=true;
sprintf(strname, "用上下键移动歌曲,按确认键确认,按0键删除歌曲.");
}
else
{
selected=false;
WriteSongRow(wndsonglist,bmpsong, pp[0],pp[1],CurSelectSong,song18,0);
sprintf(strname, "按确认键选中歌曲,按0键删除歌曲.");
}
redrawtext_color(wndsonglist,bmpsong,strname,100,420,420,25,yao20,FGColor(237,203,146));
}
//*****************
//显示15首一页歌曲*
//*****************
int ShowSongs()
{
char strname[20];
int i;
char tmp[80];
char *pp[5];
if (songs.m_count>0)
songs.seekpage(CurSongsPage);
else
{
for(i = 0; i < MaxSongPerPage; i++)
{ wnd->bitblit(60,i%MaxSongPerPage*20+LEFTTOP,60,i%MaxSongPerPage*20+LEFTTOP,540,20,b,fgl::BITBLIT_COPY);
wnd->WindowRepaintUser(60,i%MaxSongPerPage*20+LEFTTOP,540,20);
}
return -1;
}
CurSelectSong=songs.row;
LastSelectSong=songs.oldrow;
for(i = 0; i < MaxSongPerPage; i++)
{
if (i<=songs.pagerows)
{
songs.getfield(tmp);
split(tmp,pp);
if (i==CurSelectSong)
WriteSongRow(wnd,b, pp[0],pp[1],i,song18,0);
else
WriteSongRow(wnd,b, pp[0],pp[1],i,song18,1);
songs.movenext();
}
else
{
wnd->bitblit(60,i%MaxSongPerPage*20+LEFTTOP,60,i%MaxSongPerPage*20+LEFTTOP,540,20,b,fgl::BITBLIT_COPY);
wnd->WindowRepaintUser(60,i%MaxSongPerPage*20+LEFTTOP,540,20);
}
}
sprintf(strname, "第 %d 页 共 %d 页",(CurSongsPage+1), MaxSongsPage);
redrawtext(wnd,b,strname,250,420,180,25,yao20);
songs.pp=songs.pagehead;//当前指针移到页首
}
bool RemoveOneSong()
{
char query[256];
char tmp[256];
char *pp[5];
if (songs.m_count>0)
{
songs.getpagefield(tmp);
split(tmp,pp);
sprintf(query,"delete membersong where id='%s'",pp[3]);
do_query(tds,query);
get_tds_one_row(tds,tmp);
songs.removepagepp();
MaxSongsPage=songs.maxpage();
if (CurSongsPage >MaxSongsPage-1)
CurSongsPage=MaxSongsPage-1;
ShowSongs();
}
}
//***************
//选中下一首歌曲*
//***************
int MoveSongDown()
{
char tmp[80];
char *pp[5];
if (songs.pagemovenext())
{
CurSelectSong=songs.row;
LastSelectSong=songs.oldrow;
songs.getpagefield(tmp);
split(tmp,pp);
WriteSongRow(wnd,b, pp[0],pp[1],CurSelectSong,song18,0);
songs.getoldfield(tmp);
split(tmp,pp);
WriteSongRow(wnd,b, pp[0],pp[1],LastSelectSong,song18,1);
}
}
//***************
//选中上一首歌曲*
//***************
int MoveSongUp()
{
char tmp[80];
char *pp[5];
if (songs.pagemovelast())
{
CurSelectSong=songs.row;
LastSelectSong=songs.oldrow;
songs.getpagefield(tmp);
split(tmp,pp);
WriteSongRow(wnd,b, pp[0],pp[1],CurSelectSong,song18,0);
songs.getoldfield(tmp);
split(tmp,pp);
WriteSongRow(wnd,b, pp[0],pp[1],LastSelectSong,song18,1);
}
}
int GetMemberID(int keycode) //得到会员号memberid
{
if ((strlen(memberid)>=15)||(keycode==-1))
{strcpy(memberid,"");}
if ((strlen(memberid)>0)&&(keycode==8))
{
fprintf(stdout,"memberid:%s strlen:%d\n",memberid,strlen(memberid));
memberid[(strlen(memberid)-1)]=0;
}
if (keycode>=48&&keycode<=57)
{
sprintf(str_key,"%d",(keycode-48));
strcat(memberid,str_key);
}
redrawtext(wnd,b,memberid,220,210,400,45,asc);
}
bool getSongs_memberid(char *fcode)
{
char query[256];
char tmp[50];
sprintf(query,"select membername from membersong where membername='%s'",fcode);
do_query(tds,query);
get_tds_one_row(tds,tmp);
if (strlen(tmp)>1)
return true;
else
return false;
}
bool AddSongToMemberSong(char songname[50],char songer[20],char songcode[10])
{
char query[256];
char tmp[256];
sprintf(query,"insert membersong (membername,songname,songer,songcode)VALUES('%s','%s','%s','%s')",mem_name,songname,songer,songcode);
do_query(tds,query);
get_tds_one_row(tds,tmp);
}
int AddSongs()
{
char strname[80];
char tmp[256];
char *pp[5];
if (songs.m_count<1)
return -1;
songs.getpagefield(tmp);
if (SelSongs.m_count>=15)
{
sprintf(strname, "已点歌曲清单已满");
notepicture.Text(wnd,b,strname,250,0,180,25,yao20,FGColor(255,255,255));
printf("链表行数:%d\n",SelSongs.m_count);
}
else
SelSongs.insert(tmp);
SelSongs.savelog();
split(tmp,pp);
printf("P0:%s p1:%s p2:%s \n",pp[0],pp[1],pp[2]); //点击率加一
UpdateHits(pp[2]);
if (MEMBERLOGINED&&MEMBERADDSONG)
{
sprintf(strname, "加入我的歌库");
notepicture.Text(wnd,b,strname,250,0,180,25,yao20,FGColor(255,255,255));
AddSongToMemberSong(pp[0],pp[1],pp[2]);
}
else
{
if (SelSongs.m_count<15)
{sprintf(strname, "已选中歌曲");
notepicture.Text(wnd,b,strname,250,0,180,25,yao20,FGColor(255,255,255));
if (strcmp(curplaycode,"NULL")==0)
{keyplay();}
}
}
}
void getSongs_id(char *fcode)
{ char query[256];
char tmp[256];
char *pp[5];
sprintf(query,"select fname,flanguage,fcode from dbsong where fcode='%s'",fcode);
do_query(tds,query);
get_tds_one_row(tds,tmp);
if (strlen(tmp)>1)
{
printf("tmp:%s \n",tmp);
SelSongs.insert(tmp);
SelSongs.savelog();
split(tmp,pp);
sprintf(ctmpsongid,"歌曲:%s",pp[0]);
notepicture.Text(wnd,b,ctmpsongid,100,0,180,25,yao20,FGColor(255,255,255));
if (strcmp(curplaycode,"NULL")==0)
keyplay();
}
else
{
notepicture.ShowNotePic(wnd,"images/noteid.jpg");
strcpy((char*)ctmpsongid,"无此歌曲");
}
}
int backspaceid()
{
if (strlen(str_id)>0)
{
str_id[(strlen(str_id)-1)]=0;
strcpy((char*)ctmpsongid,"编码:");
strcat((char*)ctmpsongid,str_id);
redrawtext_color(wnd,b,str_id,230,211,190,45,asc,FGColor(100,50,40));
}
}
int GetSongFromID() //数码点歌
{
if (strlen(str_id)==8)
{
getSongs_id(str_id);
strcpy(str_id,"");
}
redrawtext_color(wnd,b,str_id,232,213,190,45,asc,FGColor(100,50,40));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -