Files
core/ASCMediaCore3/ASCExtraData.cpp

214 lines
4.9 KiB
C++

// ASCExtraData.cpp : Implementation of CASCExtraData
#include "stdafx.h"
#include "ATLDefine.h"
#include "ASCExtraData.h"
// CASCExtraData
STDMETHODIMP CAVSExtraData::get_Year(long *pVal)
{
*pVal=ExtraInfo.Year;
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Year(long newVal)
{
ExtraInfo.Year=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Title(BSTR *pVal)
{
*pVal=ExtraInfo.Title.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Title(BSTR newVal)
{
ExtraInfo.Title=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Copyright(BSTR *pVal)
{
*pVal=ExtraInfo.Copyright.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Copyright(BSTR newVal)
{
ExtraInfo.Copyright=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Comments(BSTR *pVal)
{
*pVal=ExtraInfo.Comments.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Comments(BSTR newVal)
{
ExtraInfo.Comments=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Artist(BSTR *pVal)
{
*pVal=ExtraInfo.Artist.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Artist(BSTR newVal)
{
ExtraInfo.Artist=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Album(BSTR *pVal)
{
*pVal=ExtraInfo.Album.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Album(BSTR newVal)
{
ExtraInfo.Album=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Genre(BSTR *pVal)
{
*pVal=ExtraInfo.Genre.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Genre(BSTR newVal)
{
ExtraInfo.Genre=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Composer(BSTR *pVal)
{
*pVal=ExtraInfo.Composer.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Composer(BSTR newVal)
{
ExtraInfo.Composer=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_EncodedBy(BSTR *pVal)
{
*pVal=ExtraInfo.EncodedBy.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_EncodedBy(BSTR newVal)
{
ExtraInfo.EncodedBy=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Track(long *pVal)
{
*pVal=ExtraInfo.Track;
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Track(long newVal)
{
ExtraInfo.Track=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_URL(BSTR *pVal)
{
*pVal=ExtraInfo.URL.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_URL(BSTR newVal)
{
ExtraInfo.URL=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_OriginalArtist(BSTR* pVal)
{
*pVal=ExtraInfo.OriginalArtist.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_OriginalArtist(BSTR newVal)
{
ExtraInfo.OriginalArtist=newVal;
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_Picture(IPictureDisp** pVal)
{
*pVal = ExtraInfo.Picture;
ADDREFINTERFACE((*pVal));
return S_OK;
}
STDMETHODIMP CAVSExtraData::put_Picture( IPictureDisp* newVal)
{
RELEASEINTERFACE(ExtraInfo.Picture);
ExtraInfo.Picture = newVal;
ADDREFINTERFACE(ExtraInfo.Picture);
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_AdditionalCount( long* pVal)
{
*pVal = (long)ExtraInfo.Additional.GetCount();
return S_OK;
}
STDMETHODIMP CAVSExtraData::GetAdditional(long Index, BSTR* Name,BSTR* Value)
{
if (Index>=(long)ExtraInfo.Additional.GetCount())
return S_OK;
*Name=ExtraInfo.Additional[Index].Name.Copy();
*Value=ExtraInfo.Additional[Index].Value.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::SetAdditional(long Index, BSTR Name, BSTR Value)
{
_ExtraInfo::_Additional newAdditional;
newAdditional.Name="";
newAdditional.Value="";
while (Index>=(long)ExtraInfo.Additional.GetCount())
{
ExtraInfo.Additional.Add(newAdditional);
}
ExtraInfo.Additional[Index].Name=Name;
ExtraInfo.Additional[Index].Value=Value;
return S_OK;
}
STDMETHODIMP CAVSExtraData::DeleteAdditional(long Index)
{
ExtraInfo.Additional.RemoveAt(Index);
return S_OK;
}
STDMETHODIMP CAVSExtraData::get_MarkerCount( long* pVal)
{
*pVal = (long)ExtraInfo.Marker.GetCount();
return S_OK;
}
STDMETHODIMP CAVSExtraData::GetMarker(long Index,double* TimeStamp,double* Duration,BSTR* Label,BSTR* Note)
{
if (Index>(long)ExtraInfo.Marker.GetCount())
return S_OK;
*TimeStamp=ExtraInfo.Marker[Index].Position;
*Duration=ExtraInfo.Marker[Index].Length;
*Label=ExtraInfo.Marker[Index].Label.Copy();
*Note=ExtraInfo.Marker[Index].Note.Copy();
return S_OK;
}
STDMETHODIMP CAVSExtraData::SetMarker(long Index,double TimeStamp,double Duration,BSTR Label,BSTR Note)
{
_ExtraInfo::_Marker newMarker;
newMarker.Label="";
newMarker.Length=0;
newMarker.Note="";
newMarker.Position=0;
while (Index>=(long)ExtraInfo.Marker.GetCount())
{
ExtraInfo.Marker.Add(newMarker);
}
ExtraInfo.Marker[Index].Label=Label;
ExtraInfo.Marker[Index].Length=Duration;
ExtraInfo.Marker[Index].Note=Note;
ExtraInfo.Marker[Index].Position=TimeStamp;
return S_OK;
}
STDMETHODIMP CAVSExtraData::DeleteMarker(long Index)
{
ExtraInfo.Marker.RemoveAt(Index);
return S_OK;
}