package Ġcom . github . dan an as . camera . state machine . states Ċ Ċ import Ġcom . github . dan an as . camera . Camera Ċ import Ġcom . github . dan an as . camera . utils . exhaustive Ċ import Ġcom . github . dan an as . camera . state machine . Camera Action Ċ import Ġcom . github . dan an as . camera . state machine . Camera State Ċ import Ġcom . github . dan an as . camera . state machine . Camera StateMachine Ċ Ċ internal Ġopen Ġclass ĠOpen ed State ( ĊĠĠĠ Ġprivate Ġval Ġmachine : ĠCamera StateMachine , ĊĠĠĠ Ġprivate Ġval Ġcamera : ĠCamera Ċ ) Ġ: ĠCamera State () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Action ( action : ĠCamera Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Action . Start Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġignore Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Action . Stop Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine . state Ġ= ĠClosing State ( machine , Ġcamera , Ġrestart Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCamera Action . Callback . Opened Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine . il legal Action ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine . state Ġ= ĠClosing State ( machine , Ġcamera , Ġrestart Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Action . Callback . Disconnected Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine . state Ġ= ĠClosed State ( machine ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCamera Action . Callback . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine . state Ġ= ĠRe opening State ( machine , Ġcamera ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCamera Action . Callback . Session Configured Ġ-> Ġmachine . il legal Action ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Action . Callback . Session Failed Ġ-> Ġmachine . il legal Action ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCamera Action . Callback . Capture Started Ġ-> Ġmachine . il legal Action ( action ) ĊĠĠĠĠĠĠĠ Ġ}. exhaustive ĊĠĠĠ Ġ} Ċ } Ċ