Example #1
0
        public async Task <(SimklHistory history, BaseItemDto item)> getHistoryFromFileName(BaseItemDto item, bool fullpath = true)
        {
            string             fname = fullpath?item.Path:Path.GetFileName(item.Path);
            SearchFileResponse mo    = await getFromFile(fname);

            SimklHistory history = new SimklHistory();

            if (item.IsMovie == true || item.Type == "Movie")
            {
                if (mo.type != "movie")
                {
                    throw new InvalidDataException("type != movie (" + mo.type + ")");
                }
                item.Name           = mo.movie.title;
                item.ProductionYear = mo.movie.year;
                history.movies.Add(mo.movie);
            }
            else if (item.IsSeries == true || item.Type == "Episode")
            {
                if (mo.type != "episode")
                {
                    throw new InvalidDataException("type != episode (" + mo.type + ")");
                }
                item.Name              = mo.episode.title;
                item.SeriesName        = mo.show.title;
                item.IndexNumber       = mo.episode.episode;
                item.ParentIndexNumber = mo.episode.season;
                item.ProductionYear    = mo.show.year;
                history.episodes.Add(mo.episode);
            }

            return(history, item);
        }
        void GetFileTest()
        {
            SearchFileRequest searchFileRequest = new SearchFileRequest()
            {
                ChannelNo = 0, Beg = new SystemTimeInfo(2017, 7, 4, 8, 0, 0), End = new SystemTimeInfo(2017, 7, 4, 13, 0, 0), Type = 0
            };
            SearchFileResponse searchFileResponse = m_howell5198client.SearchFile(searchFileRequest);

            if (searchFileResponse == null)
            {
                Console.WriteLine("SearchFile error");
                return;
            }
            Console.WriteLine("searchFileResponse: filecount:{0}", searchFileResponse.FileInfos.Length);
            if (searchFileResponse.FileInfos.Length > 0)//搜索到录像文件的话
            {
                GetFileInfoRequest getFileInfoRequest = new GetFileInfoRequest();
                getFileInfoRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileInfoRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileInfoRequest.End       = searchFileResponse.FileInfos[0].End;
                GetFileInfoResponse getFileInfoResponse = m_howell5198client.GetFileInfo(getFileInfoRequest);
                if (getFileInfoResponse == null)
                {
                    Console.WriteLine("GetFileInfo error");
                    return;
                }
                Console.WriteLine("getFileInfoResponse: FileFormatType:{0}", getFileInfoResponse.FileFormatType);
                //构建HW头
                HW_MediaInfo media = new HW_MediaInfo();
                media.Dvr_version = getFileInfoResponse.FileFormatType;
                media.Adec_code   = getFileInfoResponse.Audio_dec;
                media.Vdec_code   = getFileInfoResponse.Video_dec;
                media.Reserved[0] = (8 << 24) + (8 << 16) + (1 << 8) + 0;//au_bits+au_sampleau_sample+au_channel+reserve

                GetFileRequest getFileRequest = new GetFileRequest();
                getFileRequest.ChannelNo = searchFileResponse.FileInfos[0].ChannelNo;
                getFileRequest.Beg       = searchFileResponse.FileInfos[0].Beg;
                getFileRequest.End       = searchFileResponse.FileInfos[0].End;
                getFileRequest.Type      = searchFileResponse.FileInfos[0].Type;
                Howell5198FileStream filestream = m_howell5198client.GetFile(getFileRequest);
                filestream.FileDataReceived += howell5198client_FileDataReceived;
                filestream.StartReceive();
                Thread.Sleep(1000);
                filestream.StopReceive();
            }
        }