]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
frame.c: Make debugging easier
authorGeorge Joseph <gjoseph@digium.com>
Mon, 6 Jul 2020 15:57:18 +0000 (09:57 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Thu, 6 Aug 2020 18:37:27 +0000 (13:37 -0500)
 * ast_frame_subclass2str() and ast_frame_type2str() now return
   a pointer to the buffer that was passed in instead of void.
   This makes it easier to use these functions inline in
   printf-style debugging statements.

 * Added many missing control frame entries in
   ast_frame_subclass2str.

Change-Id: Ifd0d6578e758cd644c96d17a5383ff2128c572fc
(cherry picked from commit fdcb3e2ead11243cd8becb2a9778a4fb4ac8b63c)

include/asterisk/frame.h
main/frame.c

index b618d1965f239375ad32729f35db6c938fed8f7b..dd59c6b0f7d487c03f614d4988f6dbf9a7a556b1 100644 (file)
@@ -618,9 +618,10 @@ int ast_frame_clear(struct ast_frame *frame);
  * \param slen Length of subclass buffer
  * \param moreinfo Buffer to fill with additional information
  * \param mlen Length of moreinfo buffer
+ * \return Pointer to subclass
  * \since 11
  */
-void ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, char *moreinfo, size_t mlen);
+char *ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, char *moreinfo, size_t mlen);
 
 /*!
  * \brief Copy the discription of a frame type into the provided string
@@ -628,9 +629,10 @@ void ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, ch
  * \param frame_type The frame type to be described
  * \param ftype Buffer to fill with frame type description
  * \param len Length of subclass buffer
+ * \return Pointer to ftype
  * \since 11
  */
-void ast_frame_type2str(enum ast_frame_type frame_type, char *ftype, size_t len);
+char *ast_frame_type2str(enum ast_frame_type frame_type, char *ftype, size_t len);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
index 208c82d2d209456fcb14cca6100f5fb354790b56..d8391e8f1526ffad22d51ec32b0b6701e6a8204b 100644 (file)
@@ -389,7 +389,7 @@ void ast_swapcopy_samples(void *dst, const void *src, int samples)
                dst_s[i] = (src_s[i]<<8) | (src_s[i]>>8);
 }
 
-void ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, char *moreinfo, size_t mlen)
+char *ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, char *moreinfo, size_t mlen)
 {
        switch(f->frametype) {
        case AST_FRAME_DTMF_BEGIN:
@@ -472,6 +472,85 @@ void ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, ch
                        snprintf(subclass, slen, "T38_Parameters/%s", message);
                        break;
                }
+
+               case AST_CONTROL_STREAM_STOP:
+                       ast_copy_string(subclass, "Stop stream", slen);
+                       break;
+               case AST_CONTROL_STREAM_SUSPEND:
+                       ast_copy_string(subclass, "Suspend stream", slen);
+                       break;
+               case AST_CONTROL_STREAM_RESTART:
+                       ast_copy_string(subclass, "Restart stream", slen);
+                       break;
+               case AST_CONTROL_STREAM_REVERSE:
+                       ast_copy_string(subclass, "Reverse stream", slen);
+                       break;
+               case AST_CONTROL_STREAM_FORWARD:
+                       ast_copy_string(subclass, "Forward stream", slen);
+                       break;
+               case AST_CONTROL_RECORD_CANCEL:
+                       ast_copy_string(subclass, "Cancel stream", slen);
+                       break;
+               case AST_CONTROL_RECORD_STOP:
+                       ast_copy_string(subclass, "Record stop", slen);
+                       break;
+               case AST_CONTROL_RECORD_SUSPEND:
+                       ast_copy_string(subclass, "Record suspend", slen);
+                       break;
+               case AST_CONTROL_RECORD_MUTE:
+                       ast_copy_string(subclass, "Record mute", slen);
+                       break;
+               case AST_CONTROL_SRCUPDATE:
+                       ast_copy_string(subclass, "Media source update", slen);
+                       break;
+               case AST_CONTROL_TRANSFER:
+                       ast_copy_string(subclass, "Transfer", slen);
+                       break;
+               case AST_CONTROL_CONNECTED_LINE:
+                       ast_copy_string(subclass, "Connected line update", slen);
+                       break;
+               case AST_CONTROL_REDIRECTING:
+                       ast_copy_string(subclass, "Redirect", slen);
+                       break;
+               case AST_CONTROL_CC:
+                       ast_copy_string(subclass, "CC", slen);
+                       break;
+               case AST_CONTROL_SRCCHANGE:
+                       ast_copy_string(subclass, "Media SSRC change", slen);
+                       break;
+               case AST_CONTROL_READ_ACTION:
+                       ast_copy_string(subclass, "Read action", slen);
+                       break;
+               case AST_CONTROL_AOC:
+                       ast_copy_string(subclass, "AOC", slen);
+                       break;
+               case AST_CONTROL_END_OF_Q:
+                       ast_copy_string(subclass, "Endof Q", slen);
+                       break;
+               case AST_CONTROL_INCOMPLETE:
+                       ast_copy_string(subclass, "Incomplete", slen);
+                       break;
+               case AST_CONTROL_MCID:
+                       ast_copy_string(subclass, "MCID", slen);
+                       break;
+               case AST_CONTROL_UPDATE_RTP_PEER:
+                       ast_copy_string(subclass, "Update RTP peer", slen);
+                       break;
+               case AST_CONTROL_PVT_CAUSE_CODE:
+                       ast_copy_string(subclass, "Private Cause Code", slen);
+                       break;
+               case AST_CONTROL_MASQUERADE_NOTIFY:
+                       ast_copy_string(subclass, "Masquerade notify", slen);
+                       break;
+               case AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE:
+                       ast_copy_string(subclass, "Stream topology request change", slen);
+                       break;
+               case AST_CONTROL_STREAM_TOPOLOGY_CHANGED:
+                       ast_copy_string(subclass, "Stream topology changed", slen);
+                       break;
+               case AST_CONTROL_STREAM_TOPOLOGY_SOURCE_CHANGED:
+                       ast_copy_string(subclass, "Stream topology source changed", slen);
+                       break;
                case -1:
                        ast_copy_string(subclass, "Stop generators", slen);
                        break;
@@ -562,9 +641,11 @@ void ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, ch
                ast_copy_string(subclass, "Unknown Subclass", slen);
                break;
        }
+
+       return subclass;
 }
 
-void ast_frame_type2str(enum ast_frame_type frame_type, char *ftype, size_t len)
+char *ast_frame_type2str(enum ast_frame_type frame_type, char *ftype, size_t len)
 {
        switch (frame_type) {
        case AST_FRAME_DTMF_BEGIN:
@@ -619,6 +700,8 @@ void ast_frame_type2str(enum ast_frame_type frame_type, char *ftype, size_t len)
                snprintf(ftype, len, "Unknown Frametype '%u'", frame_type);
                break;
        }
+
+       return ftype;
 }
 
 /*! Dump a frame for debugging purposes */