From a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437 Mon Sep 17 00:00:00 2001
From: Joe <bousset.rudy@gmail.com>
Date: Thu, 14 Jul 2022 15:30:10 +0200
Subject: Refactor

---
 src/c_mpd.c     | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/c_mpd.h     |  56 ++++++++++++++++++++++++++++++
 src/c_mpdview.c |  94 ++------------------------------------------------
 src/c_mpdview.h |  16 ---------
 src/c_view.c    |  88 +++++++++++++++++++++++++++++++++++++++++++++++
 src/c_view.h    |  68 ++++++++++++++++++++++++++++++++++++
 6 files changed, 319 insertions(+), 108 deletions(-)
 create mode 100644 src/c_mpd.c
 create mode 100644 src/c_mpd.h
 create mode 100644 src/c_view.c
 create mode 100644 src/c_view.h

(limited to 'src')

diff --git a/src/c_mpd.c b/src/c_mpd.c
new file mode 100644
index 0000000..04ae592
--- /dev/null
+++ b/src/c_mpd.c
@@ -0,0 +1,105 @@
+/*
+ * ========================
+ * =====    ===============
+ * ======  ================
+ * ======  ================
+ * ======  ====   ====   ==
+ * ======  ===     ==  =  =
+ * ======  ===  =  ==     =
+ * =  ===  ===  =  ==  ====
+ * =  ===  ===  =  ==  =  =
+ * ==     =====   ====   ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ *    names of its contributors may be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_mpd.c
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+
+#include "c_defines.h"
+#include "c_view.h"
+
+u8_t
+c_connect_mpd(struct mpdview_s* v)
+{
+	v->conn = mpd_connection_new(NULL, 0, 3000);
+	if (mpd_connection_get_error(v->conn) != MPD_ERROR_SUCCESS) {
+		dprintf(
+			STDERR_FILENO,
+			"%s: %s\n",
+			PROGNAME,
+			mpd_connection_get_error_message(v->conn)
+			);
+		return (RET_ERR);
+	}
+	return (RET_OK);
+}
+
+u8_t
+c_get_mpd_status(struct mpdview_s* v)
+{
+	v->status = mpd_run_status(v->conn);
+	if (v->status == NULL) {
+		dprintf(
+			STDERR_FILENO,
+			"%s: %s\n",
+			PROGNAME,
+			mpd_status_get_error(v->status)
+			);
+		return (RET_ERR);
+	}
+	v->state = mpd_status_get_state(v->status);
+	mpd_status_free(v->status);
+	v->status = NULL;
+	return (RET_OK);
+}
+
+u8_t
+c_get_mpd_song(struct mpdview_s* v)
+{
+	if (v->song != NULL) {
+		mpd_song_free(v->song);
+		v->song = NULL;
+	}
+	v->song = mpd_run_current_song(v->conn);
+	if (v->song == NULL) {
+		dprintf(
+			STDERR_FILENO,
+			"%s: %s\n",
+			PROGNAME,
+			"Could not get song"
+			);
+		return (RET_ERR);
+	}
+	return (RET_OK);
+}
diff --git a/src/c_mpd.h b/src/c_mpd.h
new file mode 100644
index 0000000..7e8eac9
--- /dev/null
+++ b/src/c_mpd.h
@@ -0,0 +1,56 @@
+/*
+ * ========================
+ * =====    ===============
+ * ======  ================
+ * ======  ================
+ * ======  ====   ====   ==
+ * ======  ===     ==  =  =
+ * ======  ===  =  ==     =
+ * =  ===  ===  =  ==  ====
+ * =  ===  ===  =  ==  =  =
+ * ==     =====   ====   ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ *    names of its contributors may be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_mpd.h
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#ifndef __C_MPD_H__
+#define __C_MPD_H__
+
+#include "c_defines.h"
+#include "c_view.h"
+
+u8_t c_connect_mpd(struct mpdview_s*);
+u8_t c_get_mpd_status(struct mpdview_s*);
+u8_t c_get_mpd_song(struct mpdview_s*);
+
+#endif /* __C_MPD_H__ */
diff --git a/src/c_mpdview.c b/src/c_mpdview.c
index 320f8e2..7e6de4e 100644
--- a/src/c_mpdview.c
+++ b/src/c_mpdview.c
@@ -59,109 +59,19 @@
 #include <mpd/client.h>
 
 #include "c_defines.h"
+#include "c_mpd.h"
 #include "c_mpdview.h"
+#include "c_view.h"
 
 
 static bool_t doexit = FALSE;
 
-static struct mpdview_s *
-c_create_view(bool_t verbose)
-{
-	struct mpdview_s* view;
-
-	view = (struct mpdview_s*)malloc(sizeof(struct mpdview_s));
-	if (view == NULL) {
-		return (NULL);
-	}
-	view->conn = NULL;
-	view->status = NULL;
-	view->song = NULL;
-	view->state = MPD_STATE_UNKNOWN;
-	view->verbose = verbose;
-	return (view);
-}
-
 static void
 c_get_music_dir(struct mpdview_s* v)
 {
 	strlcpy(v->music_dir, DEF_MUSIC_DIR, PATH_MAX);
 }
 
-static u8_t
-c_connect_mpd(struct mpdview_s* v)
-{
-	v->conn = mpd_connection_new(NULL, 0, 3000);
-	if (mpd_connection_get_error(v->conn) != MPD_ERROR_SUCCESS) {
-		dprintf(
-			STDERR_FILENO,
-			"%s: %s\n",
-			PROGNAME,
-			mpd_connection_get_error_message(v->conn)
-			);
-		return (RET_ERR);
-	}
-	return (RET_OK);
-}
-
-static void
-c_destroy_mpdview(struct mpdview_s** v)
-{
-	(*v)->state = MPD_STATE_UNKNOWN;
-	if ((*v)->song != NULL) {
-		mpd_song_free((*v)->song);
-	}
-	(*v)->song = NULL;
-	if ((*v)->status != NULL) {
-		mpd_status_free((*v)->status);
-	}
-	(*v)->status = NULL;
-	if ((*v)->conn != NULL) {
-		mpd_connection_free((*v)->conn);
-	}
-	(*v)->conn = NULL;
-	free(*v);
-	*v = NULL;
-}
-
-static u8_t
-c_get_mpd_status(struct mpdview_s* v)
-{
-	v->status = mpd_run_status(v->conn);
-	if (v->status == NULL) {
-		dprintf(
-			STDERR_FILENO,
-			"%s: %s\n",
-			PROGNAME,
-			mpd_status_get_error(v->status)
-			);
-		return (RET_ERR);
-	}
-	v->state = mpd_status_get_state(v->status);
-	mpd_status_free(v->status);
-	v->status = NULL;
-	return (RET_OK);
-}
-
-static u8_t
-c_get_mpd_song(struct mpdview_s* v)
-{
-	if (v->song != NULL) {
-		mpd_song_free(v->song);
-		v->song = NULL;
-	}
-	v->song = mpd_run_current_song(v->conn);
-	if (v->song == NULL) {
-		dprintf(
-			STDERR_FILENO,
-			"%s: %s\n",
-			PROGNAME,
-			"Could not get song"
-			);
-		return (RET_ERR);
-	}
-	return (RET_OK);
-}
-
 static void
 c_get_current_dir(struct mpdview_s* v)
 {
diff --git a/src/c_mpdview.h b/src/c_mpdview.h
index bcae458..82a3e8f 100644
--- a/src/c_mpdview.h
+++ b/src/c_mpdview.h
@@ -46,20 +46,4 @@
 #ifndef __C_MPDVIEW_H__
 #define __C_MPDVIEW_H__
 
-#include <sys/param.h>
-
-#include <mpd/client.h>
-
-#include "c_defines.h"
-
-struct mpdview_s {
-	struct mpd_connection* conn;
-	struct mpd_status* status;
-	struct mpd_song* song;
-	enum mpd_state state;
-	char		music_dir[PATH_MAX];
-	char		current_dir[PATH_MAX];
-	bool_t		verbose;
-};
-
 #endif /* __C_MPDVIEW_H__ */
diff --git a/src/c_view.c b/src/c_view.c
new file mode 100644
index 0000000..98a298c
--- /dev/null
+++ b/src/c_view.c
@@ -0,0 +1,88 @@
+/*
+ * ========================
+ * =====    ===============
+ * ======  ================
+ * ======  ================
+ * ======  ====   ====   ==
+ * ======  ===     ==  =  =
+ * ======  ===  =  ==     =
+ * =  ===  ===  =  ==  ====
+ * =  ===  ===  =  ==  =  =
+ * ==     =====   ====   ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ *    names of its contributors may be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_view.c
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "c_defines.h"
+#include "c_view.h"
+
+struct mpdview_s *
+c_create_view(bool_t verbose)
+{
+	struct mpdview_s* view;
+
+	view = (struct mpdview_s*)malloc(sizeof(struct mpdview_s));
+	if (view == NULL) {
+		return (NULL);
+	}
+	view->conn = NULL;
+	view->status = NULL;
+	view->song = NULL;
+	view->state = MPD_STATE_UNKNOWN;
+	view->verbose = verbose;
+	return (view);
+}
+
+void
+c_destroy_mpdview(struct mpdview_s** v)
+{
+	(*v)->state = MPD_STATE_UNKNOWN;
+	if ((*v)->song != NULL) {
+		mpd_song_free((*v)->song);
+	}
+	(*v)->song = NULL;
+	if ((*v)->status != NULL) {
+		mpd_status_free((*v)->status);
+	}
+	(*v)->status = NULL;
+	if ((*v)->conn != NULL) {
+		mpd_connection_free((*v)->conn);
+	}
+	(*v)->conn = NULL;
+	free(*v);
+	*v = NULL;
+}
+
diff --git a/src/c_view.h b/src/c_view.h
new file mode 100644
index 0000000..07e16fc
--- /dev/null
+++ b/src/c_view.h
@@ -0,0 +1,68 @@
+/*
+ * ========================
+ * =====    ===============
+ * ======  ================
+ * ======  ================
+ * ======  ====   ====   ==
+ * ======  ===     ==  =  =
+ * ======  ===  =  ==     =
+ * =  ===  ===  =  ==  ====
+ * =  ===  ===  =  ==  =  =
+ * ==     =====   ====   ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ *    names of its contributors may be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_view.h
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#ifndef __C_VIEW_H__
+#define __C_VIEW_H__
+
+#include <sys/param.h>
+
+#include <mpd/client.h>
+
+#include "c_defines.h"
+
+struct mpdview_s {
+	struct mpd_connection* conn;
+	struct mpd_status* status;
+	struct mpd_song* song;
+	enum mpd_state state;
+	char		music_dir[PATH_MAX];
+	char		current_dir[PATH_MAX];
+	bool_t		verbose;
+};
+
+struct mpdview_s *c_create_view(bool_t);
+void c_destroy_mpdview(struct mpdview_s**);
+
+#endif /* __C_VIEW_H__ */
-- 
cgit v1.2.3