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(); } }
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>"); } }
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(); }
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(); }
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(); }
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(); }
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() ); } }