コード例 #1
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::StreamStateChanged(StreamStateType streamState)
{
	emString str;

	if (streamState==STREAM_ERRORED && GetFileState()==FS_LOADED) {
		str=GetStreamErrorText();
		if (ErrorText!=str) {
			ErrorText=str;
			Signal(InfoSignal);
		}
		if (PlayState!=PS_STOPPED) {
			RemoveFromActiveList();
			PlayState=PS_STOPPED;
			Signal(PlayStateSignal);
		}
		if (PlayPos!=0) {
			PlayPos=0;
			Signal(PlayPosSignal);
		}
		if (!Image.IsEmpty()) {
			Image.Empty();
			Signal(ImageSignal);
		}
		SaveFileState();
	}
}
コード例 #2
0
ファイル: UPnP.cpp プロジェクト: MrMC/mrmc
 bool MarkWatched(const CFileItem& item, const bool watched)
 {
     if (watched) {
         CFileItem temp(item);
         temp.SetProperty("original_listitem_url", item.GetPath());
         return SaveFileState(temp, CBookmark(), watched);
     }
     else {
         CLog::Log(LOGDEBUG, "UPNP: Marking video item %s as watched", item.GetPath().c_str());
         return InvokeUpdateObject(item.GetPath().c_str(), "<upnp:playCount>1</upnp:playCount>", "<upnp:playCount>0</upnp:playCount>");
     }
 }
コード例 #3
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::SetPlayPos(int playPos)
{
	if (GetFileState()!=FS_LOADED) return;
	if (playPos<0) playPos=0;
	if (playPos>PlayLength) playPos=PlayLength;
	if (PlayPos!=playPos) {
		if (PlayState==PS_STOPPED) Pause();
		PlayPos=playPos;
		Signal(PlayPosSignal);
		SetProperty("pos",emString::Format("%d",PlayPos));
	}
	SaveFileState();
}
コード例 #4
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::SetPlayState(PlayStateType playState)
{
	if (GetFileState()!=FS_LOADED) return;
	if (PlayState==playState) return;

	PlayState=playState;
	Signal(PlayStateSignal);

	if (PlayState==PS_STOPPED) {
		RemoveFromActiveList();
		CloseStream();
		PlayPos=0;
		Signal(PlayPosSignal);
		Image.Empty();
		Signal(ImageSignal);
	}
	else {
		AddToActiveList();
		if (GetStreamState()!=STREAM_OPENING && GetStreamState()!=STREAM_OPENED) {
			if (!WarningText.IsEmpty() || !ErrorText.IsEmpty()) {
				WarningText.Empty();
				ErrorText.Empty();
				Signal(InfoSignal);
			}
			OpenStream("auto","emAv",GetFilePath());
			SetProperty("audio_volume",emString::Format("%d",AudioVolume));
			SetProperty("audio_mute",AudioMute?"on":"off");
			if (AudioVisu>=0 && AudioVisu<AudioVisus.GetCount()) {
				SetProperty("audio_visu",AudioVisus[AudioVisu].Get());
			}
			SetProperty("pos",emString::Format("%d",PlayPos));
#if 0 // ??? This did not function.
			if (AudioChannel>=0 && AudioChannel<AudioChannels.GetCount()) {
				SetProperty("audio_channel",AudioChannels[AudioChannel].Get());
			}
			if (SpuChannel>=0 && SpuChannel<SpuChannels.GetCount()) {
				SetProperty("spu_channel",SpuChannels[SpuChannel].Get());
			}
#endif
		}
		SetProperty(
			"state",
			PlayState==PS_PAUSED ? "paused" :
			PlayState==PS_SLOW ? "slow" :
			PlayState==PS_FAST ? "fast" :
			"normal"
		);
	}
	SaveFileState();
}
コード例 #5
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::SetSpuChannel(int spuChannel)
{
	int n;

	if (GetFileState()!=FS_LOADED) return;
	n=SpuChannels.GetCount();
	if (n>0) {
		if (spuChannel<0) spuChannel=0;
		if (spuChannel>=n) spuChannel=n-1;
		if (SpuChannel!=spuChannel) {
			SpuChannel=spuChannel;
			Signal(AdjustmentSignal);
			SetProperty("spu_channel",SpuChannels[spuChannel].Get());
		}
	}
	SaveFileState();
}
コード例 #6
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::SetAudioChannel(int audioChannel)
{
	int n;

	if (GetFileState()!=FS_LOADED) return;
	n=AudioChannels.GetCount();
	if (n>0) {
		if (audioChannel<0) audioChannel=0;
		if (audioChannel>=n) audioChannel=n-1;
		if (AudioChannel!=audioChannel) {
			AudioChannel=audioChannel;
			Signal(AdjustmentSignal);
			SetProperty("audio_channel",AudioChannels[audioChannel].Get());
		}
	}
	SaveFileState();
}
コード例 #7
0
ファイル: emAvFileModel.cpp プロジェクト: ackalker/eaglemode
void emAvFileModel::PropertyChanged(const emString & name, const emString & value)
{
	PlayStateType ps;
	double d;
	bool b;
	int i;

	if (name=="type") {
		b=(value=="video");
		if (Video!=b) {
			Video=b;
			Signal(InfoSignal);
		}
	}
	else if (name=="length") {
		i=atoi(value);
		if (i<0) i=0;
		if (PlayLength!=i) {
			PlayLength=i;
			Signal(InfoSignal);
			if (PlayPos>PlayLength) {
				PlayPos=PlayLength;
				Signal(PlayPosSignal);
			}
		}
	}
	else if (name=="aspect") {
		i=atoi(value);
		if (i>0) {
			d=65536.0/i;
			if (Tallness!=d) {
				Tallness=d;
				Signal(ImageSignal);
			}
		}
	}
	else if (name=="info") {
		if (InfoText!=value) {
			InfoText=value;
			Signal(InfoSignal);
		}
	}
	else if (name=="warning") {
		if (WarningText!=value) {
			WarningText=value;
			Signal(InfoSignal);
		}
	}
	else if (name=="audio_visus") {
		if (UpdateStringArray(AudioVisus,value)) {
			Signal(InfoSignal);
			if (AudioVisu>=AudioVisus.GetCount()) {
				AudioVisu=0;
				Signal(AdjustmentSignal);
			}
		}
	}
	else if (name=="audio_channels") {
		if (UpdateStringArray(AudioChannels,value)) {
			Signal(InfoSignal);
			if (AudioChannel>=AudioChannels.GetCount()) {
				AudioChannel=0;
				Signal(AdjustmentSignal);
			}
		}
	}
	else if (name=="spu_channels") {
		if (UpdateStringArray(SpuChannels,value)) {
			Signal(InfoSignal);
			if (SpuChannel>=SpuChannels.GetCount()) {
				SpuChannel=0;
				Signal(AdjustmentSignal);
			}
		}
	}
	else if (name=="state") {
		if (value=="paused") ps=PS_PAUSED;
		else if (value=="normal") ps=PS_NORMAL;
		else if (value=="fast") ps=PS_FAST;
		else if (value=="slow") ps=PS_SLOW;
		else ps=PS_STOPPED;
		if (PlayState!=ps) {
			PlayState=ps;
			Signal(PlayStateSignal);
			if (ps==PS_STOPPED) RemoveFromActiveList();
			else AddToActiveList();
			if (PlayState==PS_STOPPED && GetFileState()==FS_LOADED) {
				CloseStream();
				PlayPos=0;
				Signal(PlayPosSignal);
				Image.Empty();
				Signal(ImageSignal);
			}
		}
	}
	else if (name=="pos") {
		i=atoi(value);
		if (i<0) i=0;
		if (i>PlayLength) i=PlayLength;
		if (PlayPos!=i) {
			PlayPos=i;
			Signal(PlayPosSignal);
			if (GetStreamState()==STREAM_OPENED) SaveFileState();
		}
	}
	else if (name=="audio_volume") {
		i=atoi(value);
		if (i<0) i=0;
		if (i>100) i=100;
		if (AudioVolume!=i) {
			AudioVolume=i;
			Signal(AdjustmentSignal);
		}
	}
	else if (name=="audio_mute") {
		b=(value=="on");
		if (AudioMute!=b) {
			AudioMute=b;
			Signal(AdjustmentSignal);
		}
	}
	else if (name=="audio_visu") {
		for (i=AudioVisus.GetCount()-1; i>=0; i--) {
			if (AudioVisus[i]==value) break;
		}
		if (i>=0 && AudioVisu!=i) {
			AudioVisu=i;
			Signal(AdjustmentSignal);
		}
	}
	else if (name=="audio_channel") {
		for (i=AudioChannels.GetCount()-1; i>=0; i--) {
			if (AudioChannels[i]==value) break;
		}
		if (i>=0 && AudioChannel!=i) {
			AudioChannel=i;
			Signal(AdjustmentSignal);
		}
	}
	else if (name=="spu_channel") {
		for (i=SpuChannels.GetCount()-1; i>=0; i--) {
			if (SpuChannels[i]==value) break;
		}
		if (i>=0 && SpuChannel!=i) {
			SpuChannel=i;
			Signal(AdjustmentSignal);
		}
	}
	else {
		emDLog(
			"emAvFileModel::PropertyChanged: Unsupported property name \"%s\".",
			name.Get()
		);
	}
}