⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vod.cpp

📁 vod vod vod vod
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	 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 + -