📄 vod.cpp
字号:
wnd->WindowRect(x,y,80,100,fgl::CYELLOW);
delete c;
}
bool getstar(int type)
{
star.removeall();
if (type==2)
do_query(tds,"select DISTINCT fhuman from dbsong where fhuman <>'' and fmethod='男生独唱' order by fhuman");
if (type==3)
do_query(tds,"select DISTINCT fhuman from dbsong where fhuman <>'' and fmethod='女生独唱' order by fhuman");
if (type==4)
do_query(tds,"select DISTINCT fhuman from dbsong where fhuman <>'' and fmethod='合唱' order by fhuman");
get_tds_res(tds,&star);
star.pagesize=8;
MaxStarPage=star.maxpage();
MaxStar=star.m_count;
printf("listsong nub:%d maxpage:%d\n" ,star.m_count,MaxStarPage);
}
bool getstarchar(char *tmp)
{
char query[256];
star.removeall();
sprintf(query,"select DISTINCT fhuman from dbsong where fmanpy='%s' order by fhuman",tmp);
do_query(tds,query);
get_tds_res(tds,&star);
star.pagesize=8;
MaxStarPage=star.maxpage();
MaxStar=star.m_count;
printf("listsong nub:%d maxpage:%d\n" ,star.m_count,MaxStarPage);
printf("query:%s\n" ,query);
if (MaxStar<1)
return false;
else
return true;
}
void ShowPage()
{ char tmpstr[50];
char tmp[20];
int i;
char *pp[5];
star.seekpage(CurPage);
for(i = CurPage*8; i < (CurPage+1)*8; i++)
{
if (!star.mEOF)
{
star.getfield(tmp);
split(tmp,pp);
strcpy(tmpstr,pp[0]);
ShowPicture(rect[i%8].x,rect[i%8].y,pp[0]);
sprintf(tmpstr,"%d.%s",(i%8+1),pp[0]);
redrawtext(wnd,b,tmpstr,rct[i%8].x-5,rct[i%8].y+3,120,20,song18);
}
else
{
strcpy(tmpstr," ");
ShowPicture(rect[i%8].x,rect[i%8].y,"FHuman");
redrawtext(wnd,b,tmpstr,rct[i%8].x-5,rct[i%8].y+3,120,20,song18);
}
star.movenext();
}
sprintf(tmpstr, "第 %d 页 共 %d 页",CurPage+1,MaxStarPage);
redrawtext(wnd,b,tmpstr,250,420,180,25,yao20);
}
//***************
//改变主窗口背景*
//***************
int ReDrawBK(fgl::FGWindow *w,int wname,int n)
{
char pathstr[256];
int i;
ln=ln+n;
if (wname!=SONGLIST)
IFDISCO=false;
if (n<0)
wname=Layer[ln];
if (n>0)
Layer[ln]=wname;
if (ln>0)
printf(":::::::::::::%d %d \n",Layer[ln],Layer[ln-1]);
printf("ln:%d \n",ln);
for (i=0;i<=ln;i++)
switch (wname)
{
case MENU:
strcpy(pathstr,"images/menu.jpg");
break;
case SONGLIST:
strcpy(pathstr,"images/songlist.jpg");
break;
case STAR:
strcpy(pathstr,"images/star.jpg");
break;
case SONGS:
strcpy(pathstr,"images/songs.jpg");
break;
case SONG:
strcpy(pathstr,"images/song.jpg");
break;
case ID:
{strcpy(pathstr,"images/id.jpg");
strcpy(str_id,"");
}
break;
case LANGUAGE:
strcpy(pathstr,"images/language.jpg");
break;
case WORDS:
strcpy(pathstr,"images/word.jpg");
break;
case WORDSLETTER:
strcpy(pathstr,"images/letter.jpg");
break;
case TOP100:
strcpy(pathstr,"images/top100.jpg");
break;
case PY:
strcpy(pathstr,"images/py.jpg");
break;
case RECSONG:
strcpy(pathstr,"images/recsong.jpg");
break;
case RECSONGLIST:
strcpy(pathstr,"images/recsonglist.jpg");
break;
case MEMBER:
strcpy(pathstr,"images/member.jpg");
break;
case ISMEMBER:
strcpy(pathstr,"images/ismember.jpg");
break;
case STARTYPE:
strcpy(pathstr,"images/startype.jpg");
break;
case STARPY:
strcpy(pathstr,"images/starpy.jpg");
break;
case IFMEMBER:
strcpy(pathstr,"images/ifmember.jpg");
break;
case LOGINNAME:
strcpy(pathstr,"images/loginname.jpg");
break;
case LOGINPASS:
strcpy(pathstr,"images/loginpass.jpg");
break;
case REGNAME:
strcpy(pathstr,"images/registername.jpg");
break;
case REGPASS:
strcpy(pathstr,"images/registerpass.jpg");
break;
case CHANGEPASS:
strcpy(pathstr,"images/changepass.jpg");
break;
case EXITMEMBER:
strcpy(pathstr,"images/exitmember.jpg");
break;
case LETTER:
strcpy(pathstr,"images/letter.jpg");
break;
case TIMEOUTUP:
strcpy(pathstr,"images/timeup.jpg");
break;
case POWEROFF:
strcpy(pathstr,"images/poweroff.jpg");
break;
}
win_name=wname;
if (wname==ISMEMBER)
MEMBERADDSONG=false;
if (wname==AD)
return 0;
if (wname==SONGLIST)
{
delete bmpsong;
bmpsong = new fgl::FGBitmap(pathstr);
w->bitblit(0,0,0,0,640,480,bmpsong,fgl::BITBLIT_COPY);
}
else
{
delete b;
b = new fgl::FGBitmap(pathstr);
w->bitblit(0,0,0,0,640,480,b,fgl::BITBLIT_COPY);
}
if(MEMBERLOGINED)
{
delete vip;
vip = new fgl::FGBitmap("images/abcd.gif");
w->bitblit(0,0,0,0,vip->GetW(),vip->GetH(),vip,fgl::BITBLIT_COPY);
}
w->WindowRepaintUser(0,0,640,480);
GetSQLTime();
}
void Jump(int wname)
{
if (wname==MENU)
{
ln=-1;
ReDrawBK(wnd,wname,1);
return ;
}
if (wname==IFMEMBER)
{
Layer[0]=MENU;
ln=0;
ReDrawBK(wnd,wname,1);
return ;
}
if (MEMBERLOGINED)
{
Layer[0]=MENU;
Layer[1]=ISMEMBER;
Layer[2]=SONG;
ln=2;
}
else
{
Layer[0]=MENU;
Layer[1]=SONG;
ln=1;
}
ReDrawBK(wnd,wname,1);
}
int MessagePic(char PicPath[256])
{
fgl::FGBitmap *c;
if (access(PicPath,F_OK)!=0) //无此头像
{return false;}
else
{
c = new fgl::FGBitmap(PicPath);
wnd->WindowPutBitmap(0, 0, 0,0,300, 100, c);
delete c;
}
}
char lang[20];
bool GetLanguage(int key)
{
switch (key-48)
{ case 1:
sprintf(lang,"%s","国语");
break;
case 2:
sprintf(lang,"%s","粤语");
break;
case 3:
sprintf(lang,"%s","闽南语");
break;
case 4:
sprintf(lang,"%s","英语");
break;
case 5:
sprintf(lang,"%s","日语");
break;
case 6:
sprintf(lang,"%s","儿歌");
break;
case 7:
sprintf(lang,"%s","民歌");
break;
case 8:
sprintf(lang,"%s","戏曲");
break;
case 9:
sprintf(lang,"%s","韩语");
break;
}
}
//***************************************
//按不同的点歌方式从数据库中取出歌曲记录*
//***************************************
void initSongsSQL(int wname, int key)
{ char query[256];
int i;
char tmp[20];
char *pp[5];
char L1[2];
char L2[2];
char L3[2];
switch (wname)
{
case DISCO:
strcpy(query,"select fname,fhuman,fcode from dbsong where fhuman='A舞曲' order by fname");
IFDISCO=true;
break;
case STAR:
star.seekpage(CurPage);
for(i=0;i<(key-49);i++)
star.movenext();
star.getfield(tmp);
split(tmp,pp);
printf(" %s ",pp[0]);
sprintf(query,"select fname,fhuman,fcode from dbsong where fhuman='%s' order by fname",pp[0]);
break;
case LANGUAGE:
switch (key-48)
{ case 1:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","国语");
break;
case 2:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","日语");
break;
case 3:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","粤语");
break;
case 4:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","儿歌");
break;
case 5:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","闽南语");
break;
case 6:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","民歌");
break;
case 7:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","英语");
break;
case 8:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","戏曲");
break;
case 9:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' order by fname","韩语");
break;
}
break;
case LETTER:
sprintf(query,"select fname,fhuman,fcode from dbsong where flanguage='%s' and fchar='%c' order by fname",lang,toascii(key));
printf("%s\n",query);
break;
case WORDSLETTER:
if (key==57)
sprintf(query,"select fname,fhuman,fcode from dbsong where len(fname)>=%d and fchar='%c' order by fname",wordlen,toascii(key));
else
sprintf(query,"select fname,fhuman,fcode from dbsong where len(fname)=%d and fchar='%c' order by fname",wordlen,toascii(key));
printf("%s\n",query);
break;
case TOP100:
if (key==49)
sprintf(query,"select fname,fhuman,fcode from tbl_top100w");
if (key==50)
sprintf(query,"select fname,fhuman,fcode from tbl_top100m");
break;
case DEFSQL:
memcpy(query,str_defsql,strlen(str_defsql));
query[strlen(str_defsql)]=0;
printf("query:%s \n",query);
break;
case CHORUS:
sprintf(query,"select fname,fhuman,fcode from dbsong where fmethod='%s' order by fname","合唱");
break;
case ISMEMBER:
sprintf(query,"select songname,songer,songcode,id from membersong where membername='%s' order by songname",mem_name);
break;
case PY:
sprintf(query,"select fname,fhuman,fcode from dbsong where py like '%s%c' order by len(fname),fname",pystr,toascii(37));
break;
}
do_query(tds,query);
get_tds_res(tds,&songs);
MaxSongs=songs.m_count;
songs.pagesize=MaxSongPerPage;
MaxSongsPage=songs.maxpage();
CurSongsPage=0;
CurSelectSong=0;
printf("Maxsong:%d MaxSongsPage:%d",MaxSongs,MaxSongsPage);
printf("%s\n",query);
}
int cleanrecsong()
{
while(LS_recsong.count()>0)
{
printf("remove:%d\n",LS_recsong.count());
LS_recsong.remove(0);
}
}
int getrecsong(char *wavpath) //得到录音目录下的wav文件
{
char tmp[20];
DIR * dir;
struct dirent * ptr;
char *delim=".";
dir =opendir(wavpath);
while((ptr = readdir(dir))!=NULL)
{
if (ptr->d_type==0)
{
LS_recsong.insert(ptr->d_name);
}
}
closedir(dir);
LS_recsong.show();
printf("wav count:%d\n",LS_recsong.count());
}
int GetAD() //得到录音目录下的wav文件
{
DIR * dir;
struct dirent * ptr;
strcpy(wavpath,"/AD");
dir =opendir(wavpath);
char *p;
LS_AD.removeall();
while((ptr = readdir(dir))!=NULL)
{
p= strstr(ptr->d_name,".jpg");
if (p!=0 )
{printf("type: %d pic :%s \n",ptr->d_type,ptr->d_name);
LS_AD.insert(ptr->d_name);
}
}
closedir(dir);
//LS_AD.show();
printf("ADs count:%d\n",LS_AD.count());
LS_AD.seekpage(0);
}
int ShowAD()
{
char pathstr[80];
char tmp[30];
if (LS_AD.count()<=0 )
return -1;
printf("row:%d \n",LS_AD.GetCurPageRow());
LS_AD.getpagefield(tmp);
sprintf(pathstr,"/AD/%s",tmp);
//printf("show ad:%s\n",pathstr);
//LS_AD.show();
delete b;
b = new fgl::FGBitmap(pathstr);
wnd->bitblit(0,0,0,0,640,480,b,fgl::BITBLIT_COPY);
wnd->WindowRepaintUser(0,0,640,480);
sprintf(pathstr, "第%d项 :共%d项 按‘上一页’ ‘下一页’ 翻阅活动内容",LS_AD.GetCurPageRow()+1, LS_AD.count());
redrawtext(wnd,b,pathstr,20,20,600,25,yao20);
}
int Show_RecSongs()
{
char strname[20];
int i;
char tmp[80];
char *pp[5];
if (LS_recsong.m_count>0)
LS_recsong.seekpage(CurSongsPage);
else
{
for(i = 0; i < MaxSongPerPage; i++)
{ wnd->bitblit(80,i%MaxSongPerPage*20+LEFTTOP,80,i%MaxSongPerPage*20+LEFTTOP,520,20,b,fgl::BITBLIT_COPY);
wnd->WindowRepaintUser(80,i%MaxSongPerPage*20+LEFTTOP,520,20);
}
return -1;
}
CurSelectSong=LS_recsong.row;
LastSelectSong=LS_recsong.oldrow;
for(i = 0; i < MaxSongPerPage; i++)
{
if (i<=LS_recsong.pagerows)
{
LS_recsong.getfield(tmp);
split(tmp,pp);
redrawtext(wnd,b,pp[0],80,i%MaxSongPerPage*20+LEFTTOP,420,20,song18);
wnd->WindowRect(80,CurSelectSong*20+LEFTTOP,520,20,fgl::CYELLOW);
LS_recsong.movenext();
}
else
{
wnd->bitblit(80,i%MaxSongPerPage*20+LEFTTOP,80,i%MaxSongPerPage*20+LEFTTOP,520,20,b,fgl::BITBLIT_COPY);
wnd->WindowRepaintUser(80,i%MaxSongPerPage*20+LEFTTOP,520,20);
}
}
sprintf(strname, "第 %d 页 共 %d 页",(CurSongsPage+1), MaxSongsPage);
redrawtext(wnd,b,strname,250,420,180,25,yao20);
LS_recsong.pp=LS_recsong.pagehead;//当前指针移到页首
}
//删除wav歌曲
int DelRecSong()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -