Lines Matching defs:session

33 DBG(static const char* kModuleDebugName = "session");
95 /*! \brief Keeps track of session information.
97 struct session : public list_item {
99 session(uint32 index, session* next = NULL);
210 TRACE((" session = %d\n", entries[i].session));
446 // #pragma mark - session
449 /*! \brief Creates an unitialized session object
451 session::session(uint32 index, session* next)
467 session::first_track_hint_is_set()
477 session::last_track_hint_is_set()
491 session::end_lba_is_set()
497 /*! \brief Returns true if the session is flagged as being audio.
499 If the \c control value for the session has not been set, returns
503 session::is_audio()
530 int32 session = index+1;
531 // Check for a valid session index
532 if (session < 1 || session > 99)
594 /*! \brief Stores the info for the given session (using 0 based indicies) in the
597 Returns \c B_ENTRY_NOT_FOUND if no such session exists.
604 for (session* session = (struct session*)fSessionList->First(); session;
605 session = (struct session*)session->next) {
606 if (session->is_audio()) {
608 // only one session per audio session
610 // Found an audio session. Take the start of the first
611 // track with the end of session.
612 track* track = (struct track*)session->track_list.First();
614 PRINT(("found session #%" B_PRId32 " info (audio session)"
618 off_t endLBA = session->end_lba;
632 PRINT(("Error: session #%" B_PRId32 " is an audio session "
638 for (track* track = (struct track*)session->track_list.First();
642 PRINT(("found session #%" B_PRId32 " info (data session)\n",
655 : session->end_lba;
673 PRINT(("no session #%" B_PRId32 " found!\n", index));
684 session* session = (struct session*)fSessionList->First();
685 while (session != NULL) {
686 TRACE(("session %" B_PRId32 ":\n", session->index));
687 TRACE((" first track hint: %d\n", session->first_track_hint));
688 TRACE((" last track hint: %d\n", session->last_track_hint));
689 TRACE((" end_lba: %" B_PRId64 "\n", session->end_lba));
690 TRACE((" control: %d (%s session, copy %s)\n",
691 session->control, (session->control & kControlDataTrack
693 (session->control & kControlCopyPermitted
695 TRACE((" adr: %d\n", session->adr));
696 track* track = (struct track*)session->track_list.First();
702 session = (struct session*)session->next;
708 inserts them as a new data session.
718 // Make sure TOC has only one session and that it is audio.
733 TRACE(("%s: Single audio session, checking for data track\n",
741 // Create a new endLBA point for session one.
746 // the end of our new session.
757 // Change the other points to session two.
759 entries[j].session = 2;
761 entries[i].session = 1;
768 // Change the track to session two.
769 entries[i].session = 2;
771 // Create a new endLBA point for session two.
773 entries[count].session = 2;
777 // end of the previous session.
803 // Find or create the appropriate session
804 uint8 sessionIndex = entries[i].session;
805 session* session = (struct session*)fSessionList->Find(sessionIndex);
806 if (session == NULL) {
807 session = new struct session(sessionIndex);
808 if (session == NULL)
811 fSessionList->Add(session);
819 if (!session->first_track_hint_is_set()) {
822 session->first_track_hint = firstTrackHint;
825 "for session %d\n", kModuleDebugName,
830 "found for session %d; using first value "
832 session->first_track_hint));
838 if (!session->last_track_hint_is_set()) {
841 session->last_track_hint = lastTrackHint;
844 "for session %d\n", kModuleDebugName,
849 "for session %d; using first value encountered: %d",
851 session->last_track_hint));
855 // end of session address
857 if (!session->end_lba_is_set()) {
862 session->end_lba = endLBA;
863 // We also grab the session's control and adr values
865 session->control = entries[i].control;
866 session->adr = entries[i].adr;
869 " for session %d\n", kModuleDebugName, endLBA,
874 "session %d; using first value encountered: %" B_PRId64,
875 kModuleDebugName, sessionIndex, session->end_lba));
901 // corresponding values of the parent session.
907 session->track_list.Add(track);
919 /*! \brief Bubble sorts the session list and each session's track lists,
927 session* session = (struct session*)fSessionList->First();
928 while (session != NULL) {
929 session->track_list.SortAndRemoveDuplicates();
930 session = (struct session*)session->next;
949 numbering does not restart with each session).
951 parent session
955 that do not match the values for their session; Ingo's copy
965 for (session* session = (struct session*)fSessionList->First(); session;
966 session = (struct session*)session->next) {
970 if (!session->end_lba_is_set()) {
972 "session address for session #%" B_PRId32 "\n",
973 kModuleDebugName, session->index));
978 track* track = (struct track*)session->track_list.First();
980 TRACE(("%s: Disc::_CheckForErrorsAndWarnings: error: session #%"
981 B_PRId32 "has no tracks\n", kModuleDebugName, session->index));
988 if (session->first_track_hint_is_set()
989 && session->first_track_hint != track->index) {
990 TRACE(("%s: Disc::_CheckForErrorsAndWarnings: warning: session "
993 session->index, session->first_track_hint, track->index));
997 struct track* last = (struct track*)session->track_list.Last();
998 if (session->last_track_hint_is_set() && last
999 && session->last_track_hint != last->index) {
1000 TRACE(("%s: Disc::_CheckForErrorsAndWarnings: warning: session "
1003 session->index, session->last_track_hint, last->index));
1006 // invalid session sequence
1007 if (lastSessionIndex + 1 != session->index) {
1009 "session #%" B_PRId32 " is out of sequence (should have been #%"
1010 B_PRId32 ")\n", kModuleDebugName, session->index,
1013 lastSessionIndex = session->index;
1026 if (track->control != session->control) {
1029 "match control for parent session #%" B_PRId32 " (%d, %s "
1030 "session, copy %s)\n", kModuleDebugName, track->index,
1035 session->index, session->control,
1036 (session->control & kControlDataTrack ? "data" : "audio"),
1037 (session->control & kControlCopyPermitted
1042 if (track->adr != session->adr) {
1045 "for parent session #%" B_PRId32 " (adr = %d)\n",
1046 kModuleDebugName, track->index, track->adr, session->index,
1047 session->adr));